Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js
/ /

Mecanismo de autenticação Kerberos (GSSAPI)

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.

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 para GSSAPI.

  • Configure o valor SERVICE_NAME no parâmetro authMechanismProperties se utilizar um valor diferente de mongodb.

  • Especifique um valor SERVICE_REALM no parâmetro authMechanismProperties se um realm do serviço personalizado for exigido.

  • Especifique um valor CANONICALIZE_HOST_NAME no parâmetro authMechanismProperties 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 host

    • forward: Executa uma pesquisa de DNS direta para canonicalizar o nome do host

    • forwardAndReverse: 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.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API:

Voltar

LDAP (simples)

Nesta página