Configurar Kerberos no BI Connector
Nesta página
Novidades na versão 2.5.
O MongoDB Connector para BI suporta a autenticação Kerberos para conectar ferramentas de BI e para o usuário administrador do BI Connector autenticar com MongoDB.
A seção a seguir orienta você na configuração do BI Connector para usar Kerberos com dois dos casos de uso mais comuns:
Máquinas de clientes Windows/Linux autenticadas no Active Directory
máquina do cliente macOS autenticando no Linux KDC
Se você tiver outro caso de uso, entre em contato como Suporte do MongoDB para obter ajuda.
Importante
A parte do domínio de qualquer nome de usuário deve ser escrita em todas as letras maiúsculas. Esta parte do nome de usuário corresponde a um Realm Kerberos ou domínio do Active Directory. É sensível a maiúsculas e minúsculas.
Configuração do Active Directory
Verifique se você tem um domínio configurado.
Criar um usuário para MongoDB no domínio que você criou.
Criar um usuário para MongoSQL no domínio que você criou.
Registre um SPN para o serviço MongoDB .
Registre um SPN para o Serviço MongoSQL.
Habilite a delegação para seu usuário do MongoSQL Service.
Exemplo
Supondo esta configuração:
Seu nome é
Grace Smith
.Seu domínio do Windows é denominado
EXAMPLE.COM
.Você está executando sua ferramenta de BI em um host Windows denominado
BI.EXAMPLE.COM
.
No Active Directory, você cria três usuários:
Para MongoDB:
mongodb@EXAMPLE.COM
Para BI Connector:
mongosql@EXAMPLE.COM
Para você:
grace.smith@EXAMPLE.COM
Crie um SPN para cada serviço:
setspn.exe -S mongodb/BI.EXAMPLE.COM mongodb setspn.exe -S mongosql/BI.EXAMPLE.COM mongosql
Observação
Os nomes podem ser qualquer coisa que você escolher, desde que os use consistentemente em toda a configuração.
Abra o Centro Administrativo do Active Directory e clique duas vezes no usuário do serviço MongoDB (mongodb
).
Defina o mongosql
usuário para delegar para o mongodb
usuário do BI.EXAMPLE.COM
host .
Observação
Autenticação do usuário do esquema Linux no ADC
Se você estiver autenticando um usuário de um host Linux e o usuário do esquema estiver usando um arquivo keytab em vez de uma senha, o seguinte será necessário além de criar o usuário no MongoDB:
Criando um UPN para o usuário do esquema.
Definindo o KRB5_CLIENT_KTNAME variável de ambiente para o keytab deste usuário.
Esse
KRB5_CLIENT_KTNAME
deve incluir a chave para o usuário do esquema e para o usuário do serviço do BI Connector .
Configuração do MongoDB
Defina as seguintes opções no arquivo de configuração:
net: bindIp: <fullHostnameOfBIConnector> setParameter: authenticationMechanisms: "GSSAPI" Para obter mais informações, consulte net.bindIp, setParameter e authenticationMechanisms.
Execute
mongod
como o usuário MongoDB do Windows que você criou no Active Directory.Crie um usuário em seu banco de banco de dados MongoDB com osroles apropriados do para obter amostras de dados.
Configuração do BI Connector
Instale o BI Connector como um serviço.
Inicie
mongosqld
como o usuário MongoSQL Windows que você criou no Active Directory.Adicione as seguintes configurações de autenticação do BI Connector ao seu arquivo de configuração do
mongosqld
:security: enabled: true defaultMechanism: "GSSAPI" defaultSource: "$external" gssapi: hostname: <host running mongosqld> serviceName: <name of mongosqld service> Importante
Definindo restrições
security.gssapi.hostname
deve corresponder ao valor emsecurity.gssapi.serviceName
.Se você configurou o Active Directory para usar delegação restrita, adicione
security.gssapi.constrainedDelegation
: true
ao arquivo de configuraçãomongosqld
ou a autenticação falhará.
Para mais informações, veja:
Adicione as seguintes configurações que o BI Connector usará para autenticar com MongoDB:
mongodb: net: uri: "mongodb://<hostname and port of mongodb database>/" auth: username: <database username> password: <database password> source: "$external" mechanism: "GSSAPI" Para mais informações, veja:
Exemplo
Seu nome é
Grace Smith
.Seu domínio do Windows é denominado
EXAMPLE.COM
.Você está executando sua ferramenta de BI em um host Windows denominado
BI.EXAMPLE.COM
.
Em BI.EXAMPLE.COM
:
Instalar o MongoDB e o MongoDB Connector for BI como serviços.
Edite seu arquivo
mongod.cfg
para se parecer com:systemLog: destination: "file" path: "c:\\data\\log\\mongod.log" verbosity: 2 storage: dbPath: "c:\\data\\db" net: bindIp: BI.EXAMPLE.COM setParameter: authenticationMechanisms: "GSSAPI" Faça login no shell
mongo
e crie seu usuário do BI Connector .db.getSiblingDB("$external").createUser( { user: "grace.smith@EXAMPLE.COM", roles: [ { role: "readAnyDatabase", db: "admin" } ] } ) Edite seu arquivo
mongosqld.cfg
para se parecer com:systemLog: path: "c:\\data\\log\\mongosqld.log" logAppend: true logRotate: "reopen" verbosity: 3 runtime: memory: maxPerStage: 102400 net: bindIp: BI.EXAMPLE.COM port: 3306 security: enabled: true defaultSource: "$external" defaultMechanism: "GSSAPI" gssapi: hostname: "BI.EXAMPLE.COM" serviceName: "mongosql" mongodb: net: uri: "mongodb://BI.EXAMPLE.COM/" auth: username: "grace.smith@EXAMPLE.COM" password: "abc123!" source: "$external" mechanism: "GSSAPI" processManagement: service: displayName: "MongoDB BI Connector" Abra Services.
Definir MongoDB como Log on as: This account:
mongodb@EXAMPLE.COM
Definir o MongoDB Connector for BI como Log on as: This account:
mongosql@EXAMPLE.COM
Inicie o MongoDB e o MongoDB Connector for BI .
Observação
Autenticação do usuário do esquema Linux no ADC
Se você estiver autenticando um usuário de um host Linux e o usuário do esquema for usar um nome de usuário e uma senha, será necessário o seguinte:
Definindo
mongodb.net.auth.username
para o UPN do usuário do esquema .Definindo
mongodb.net.auth.password
para nenhum valor.
Dica
Veja também:
Para saber como configurar o Active Directory para gerenciar sua instância do MongoDB, consulte Configurar o MongoDB com autenticação Kerberos e autorização do Active Directory.
Configuração do MongoDB
Certifique-se de que suas instâncias do
mongod
emongos
estejam executando o MongoDB Enterprise.Configure suas instâncias
mongod
emongos
para usar a autenticação Kerberos (GSSAPI).Verifique se você define as seguintes opções no arquivo de configuração do MongoDB:
net: bindIp: <fullHostnameOfBIConnector> setParameter: authenticationMechanisms: "GSSAPI" Criar um arquivo keytab no KDC que tem as entidades de serviço Kerberos necessárias para
mongosql
emongosql2
.Exemplo
mongosql/<fullHostnameOfBIConnector>@<KERBEROS_REALM>
Configuração do BI Connector
Copie o arquivo
keytab
que você criou para a implantação do MongoDB para o mesmo host que atende ao BI Connector.Se o seu keytab não usar o nome padrão (
krb5.keytab
), você deverá definir o KRB5_KTNAME variável de ambiente.Observação
A implementação do Kerberos no macOS, Heimmal, não suporta a
default_keytab_name
definição de configuração do , como o MIT Kerberos faz. Você deve definir a variável de ambienteKRB5_KTNAME
.Se o seu arquivo de configuração Kerberos não usar o nome padrão (
krb5.conf
), você deverá definir o KRB5_CONFIG variável de ambiente. (O Headal também suporta esta variável de ambiente.)Adicione as seguintes configurações de autenticação do BI Connector ao seu arquivo de configuração do
mongosqld
:security: enabled: true defaultMechanism: "GSSAPI" defaultSource: "$external" gssapi: hostname: <host running mongosqld> serviceName: <name of mongosqld service> Observação
security.gssapi.hostname
deve corresponder ao valor emsecurity.gssapi.serviceName
.Para mais informações, veja:
Adicione as seguintes configurações que o BI Connector usará para autenticar com MongoDB:
mongodb: net: uri: "mongodb://<hostname and port of mongodb database>/" auth: username: <database username> password: <database password> source: "$external" mechanism: "GSSAPI" Para mais informações, veja:
Dica
Testando o BI Connector com Kerberos no localhost
Se você estiver testando o Kerberos com um mongosqld
em execução em localhost
, será necessário definir net.unixDomainSocket.enabled
como true
no arquivo de configuração mongosqld .