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
/ / /
Driver GO
/ /

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.

Os exemplos de código nesta página usam os seguintes espaços reservados:

  • kerberos_principal: Seu principal Kerberos. Um exemplo de nome de usuário é myuser@KERBEROS.EXAMPLE.COM.

  • password: A senha do usuário Kerberos. Você também pode armazenar sua senha em um arquivo keytab para evitar expor sua senha no código.

  • connection_uriSeu URI da cadeia de conexão.

You must use the gssapi build tag and specify cgo support during compilation to use Kerberos authentication. cgo support is enabled by default unless you previously set environment variables to cross-compile to a different platform. To use the gssapi build tag, compile your code with the following command:

go build -tags gssapi

O código a seguir mostra como você pode definir uma estrutura Credential para se autenticar no Kerberos e criar um cliente com suas preferências de autenticação:

credential := options.Credential{
AuthMechanism: "GSSAPI",
Username: "<kerberos_principal>",
Password: "<password>",
PasswordSet: true,
}
uri := "<connection_uri>"
clientOpts := options.Client().ApplyURI(uri).SetAuth(credential)
client, err := mongo.Connect(clientOpts)

You can omit a password or the PasswordSet field in your Credential struct if you store authentication keys in keytab files. You can initialize a credential cache for authenticating the Kerberos principal using the kinit binary. To learn more about the kinit binary, see the Oracle documentation.

O comando a seguir mostra como você pode chamar um cache de credenciais para um exemplo de nome de usuário:

kinit myuser@KERBEROS.EXAMPLE.COM

Como alternativa, é possível se autenticar usando uma URI de string de conexão especificando a entidade Kerberos codificada por URL, a senha, o hostname e o endereço de rede do servidor MongoDB:

uri := "mongodb://<kerberos_principal>:<password>@<hostname>/?authMechanism=GSSAPI"

Você pode especificar mais propriedades com seu mecanismo de autenticação usando o campo AuthMechanismProperties na estrutura Credential. O nome de serviço padrão para Kerberos é "mongodb". O código a seguir mostra como definir valores personalizados para os campos SERVICE_NAME e SERVICE_REALM ao definir uma estrutura Credential:

credential := options.Credential{
AuthMechanism: "GSSAPI",
Username: "<kerberos_principal>",
Password: "<password>",
AuthMechanismProperties: map[string]string{
"SERVICE_REALM": "<kerberos_service_realm>",
"SERVICE_NAME": "<service_name>",
},
}

Para obter mais propriedades, consulte a entrada manual do servidor sobre propriedades de autenticação.

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