Visão geral
O mecanismo de autenticação da API de serviços de segurança genérica (GSSAPI) permite que você use seu nome principal para autenticar em um serviço Kerberos. Você pode usar esse mecanismo somente ao autenticar para Enterprise Advanced.
Especifique a autenticação Kerberos (GSSAPI)
Observação
O driver do Node.js suporta Kerberos no UNIX utilizando a biblioteca MIT Kerberos e no Windows utilizando a API SSLI.
O mecanismo de autenticação do GSSAPI
utiliza seu principal de usuário para autenticar em um serviço Kerberos.
Você pode especificar esse mecanismo de autenticação executando as seguintes ações ao especificar opções em suaconnection string :
Configure o parâmetro
authMechanism
paraGSSAPI
.Configure o valor
SERVICE_NAME
no parâmetroauthMechanismProperties
se utilizar um valor diferente demongodb
.Especifique um valor
SERVICE_REALM
no parâmetroauthMechanismProperties
se um realm do serviço personalizado for exigido.Especifique um valor
CANONICALIZE_HOST_NAME
no parâmetroauthMechanismProperties
se a canonicalização do nome do host for exigida. Esta propriedade aceita os seguintes valores:none
: (padrão) Não executa canonicalização de nome de hostforward
: Executa uma pesquisa de DNS direta para canonicalizar o nome do hostforwardAndReverse
: Executa uma pesquisa de DNS encaminhada e, em seguida, uma pesquisa reversa sobre esse valor para canonicalizar o nome do host
Importante
O parâmetro gssapiServiceName
é preterido e pode ser removido em futuras versões do driver. Em vez disso, use authMechanismProperties=SERVICE_NAME:<your service name>
no URI de conexão. Para saber mais sobre as opções de autenticação de uma string de conexão, consulte a seção Opções de autenticação da referência Opções de connection string no Manual do Servidor.
O seguinte exemplo de código autentica para Kerberos para UNIX utilizando GSSAPI
.
Importante
Sempre codifique o URI do principal usando o método encodeURIComponent
para garantir que ele seja analisado corretamente.
const { MongoClient } = require("mongodb"); // Replace the placeholder values with the values for your environment in the following lines const clusterUrl = "<cluster_url>"; const principal = encodeURIComponent("<Kerberos principal and realm>"); const serviceRealm = "<Kerberos service realm>"; const canonicalizationSetting = "<canonicalization setting>"; const authMechanismProperties = `SERVICE_REALM:${serviceRealm},CANONICALIZE_HOST_NAME:${canonicalizationSetting}`; const authMechanism = "GSSAPI"; // Connection URI const uri = `mongodb+srv://${principal}@${clusterUrl}/?authMechanism=${authMechanism}&authMechanismProperties=${authMechanismProperties}`; const client = new MongoClient(uri); // Function to connect to the server async function run() { try { // Establish and verify connection await client.db("admin").command({ ping: 1 }); console.log("Connected successfully to server"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
Observação
The method refers to the GSSAPI
authentication mechanism instead of Kerberos
because the driver authenticates through GSSAPI RFC-4652, the SASL mechanism.
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API: