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.
Espaços reservados de código
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 arquivokeytab
para evitar expor sua senha no código.connection_uri
Seu URI da cadeia de conexão.
Especifique a autenticação Kerberos (GSSAPI)
Você deve usar a gssapi
marcação de construção e especificar o suporte a cgo durante a compilação para usar a autenticação Kerberos. O suporte cgo
está ativado por padrão, a menos que você tenha definido anteriormente variáveis de ambiente para compilação cruzada em uma plataforma diferente. Para usar a tag de construção gssapi
, compile seu código com o seguinte comando:
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)
Você pode omitir uma senha ou o campo PasswordSet
em sua estrutura Credential
se armazenar chaves de autenticação em arquivos keytab
. Você pode inicializar um cache de credenciais para autenticar o principal Kerberos utilizando o binário kinit
. Para saber mais sobre o binário kinit
, consulte a documentação da Oracle.
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"
Definir campos SERVIÇOS_NAME e SERVIÇO_REALM personalizados
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.
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: