Tutorial – Implantar o Active Directory Connector no modo de keytab gerenciado pelo sistema
Este artigo explica como implantar o Active Directory Connector no modo de keytab gerenciado pelo sistema. Ele é um componente fundamental para habilitar a autenticação do Active Directory na Instância Gerenciada de SQL habilitada para Azure Arc.
Active Directory Connector no modo de keytab gerenciado pelo sistema
No modo de keytab gerenciado pelo sistema, um Active Directory Connector implanta um serviço de proxy de DNS que faz proxy das solicitações DNS provenientes da Instância Gerenciada para um dos dois serviços DNS upstream:
- Servidores DNS do Active Directory
- Servidores DNS do Kubernetes
Além do serviço de proxy de DNS, o AD Connector também implanta um serviço de suporte de segurança que facilita a comunicação com o domínio do AD para criação e gerenciamento automático de contas do AD, SPNs (nomes das entidades de serviço) e keytabs.
O seguinte diagrama mostra o AD Connector e a funcionalidade do serviço de proxy de DNS no modo de keytab gerenciado pelo sistema:
Pré-requisitos
Antes de continuar, você deve ter:
- Uma instância do controlador de dados implantada em uma versão compatível do Kubernetes
- Um domínio do Active Directory
- Uma UO (unidade organizacional) já criada no domínio do Active Directory
- Uma conta de serviço de domínio do Active Directory
A conta de serviço de domínio do AD deve ter permissões suficientes para criar e excluir contas de usuários automaticamente dentro da UO (unidade organizacional) fornecida no Active Directory.
Conceda as seguintes permissões, com escopo da UO (unidade organizacional), à conta de serviço de domínio:
- Ler todas as propriedades
- Gravar todas as propriedades
- Criar Objetos de usuário
- Excluir objetos de usuário
- Redefinir Senha para objetos de Usuário Descendente
Para saber mais detalhes de como configurar a UO e a conta do AD, acesse Implantar serviços de dados habilitados para Azure Arc na autenticação do Active Directory com keytab gerenciado pelo sistema – Pré-requisitos
Entrada para implantar o Active Directory Connector no modo de keytab gerenciado pelo sistema
Para implantar uma instância do conector do Active Directory, várias entradas são necessárias do ambiente de domínio do Active Directory.
Essas entradas são fornecidas em uma especificação YAML para uma instância do AD Connector.
Os metadados a seguir sobre o domínio do AD devem estar disponíveis antes da implantação de uma instância do conector do AD:
- Nome do domínio do Active Directory
- Lista de controladores de domínio (nomes de domínio totalmente qualificados)
- Lista de endereços IP de servidores DNS
Os seguintes campos de entrada são expostos aos usuários na especificação do Active Directory Connector:
Obrigatório
spec.activeDirectory.realm
Nome do domínio do Active Directory em maiúsculas. Este é o domínio do AD ao qual esta instância do AD Connector será associada.spec.activeDirectory.domainControllers.primaryDomainController.hostname
nome de domínio totalmente qualificado do PDC (controlador de domínio primário) no domínio do AD.Se você não souber qual controlador de domínio no domínio é primário, poderá descobrir executando este comando em qualquer computador Windows ingressado no domínio do AD:
netdom query fsmo
.spec.activeDirectory.dns.nameserverIpAddresses
Lista de endereços IP do servidor DNS do Active Directory. O serviço proxy DNS encaminhará as consultas DNS no nome de domínio fornecido para esses servidores.
Opcional
spec.activeDirectory.serviceAccountProvisioning
Esse é um campo opcional que define o modo de implantação do AD Connector com valores possíveis comomanual
para keytab gerenciado pelo cliente ouautomatic
para keytab gerenciado pelo sistema. Quando esse campo não é definido, o valor padrão émanual
. Quando definido comoautomatic
(keytab gerenciado pelo sistema), o sistema gera automaticamente as contas do AD e os SPNs (nomes das entidade de serviço) para as Instâncias Gerenciadas de SQL associadas a esse AD Connector e cria arquivos de keytab para elas. Quando definido comomanual
(keytab gerenciado pelo cliente), o sistema não oferece a geração automática de conta do AD nem a geração de keytab. Espera-se que o usuário forneça um arquivo keytab.spec.activeDirectory.ouDistinguishedName
Esse é um campo opcional. Embora se torne condicionalmente obrigatório quando o valor deserviceAccountProvisioning
é definido comoautomatic
. Esse campo aceita o DN (nome diferenciado) de uma UO (unidade organizacional) que os usuários precisam criar no domínio do Active Directory antes de implantar o AD Connector. Ele é usado para armazenar as contas do AD geradas pelo sistema para Instâncias Gerenciadas de SQL no domínio do Active Directory. O exemplo do valor é semelhante a:OU=arcou,DC=contoso,DC=local
.spec.activeDirectory.domainServiceAccountSecret
Esse é um campo opcional. Ele se torna condicionalmente obrigatório quando o valor deserviceAccountProvisioning
é definido comoautomatic
. Esse campo aceita o nome do segredo do Kubernetes que contém o nome de usuário e a senha da conta de serviço de domínio que foram criados antes da implantação do AD Connector. O sistema usará essa conta para gerar outras contas do AD na UO e executar ações nessas contas do AD.spec.activeDirectory.netbiosDomainName
Nome NetBIOS do domínio do Active Directory. Esse é o nome de domínio abreviado (nome anterior ao Windows 2000) do domínio do Active Directory. Isso geralmente é usado para qualificar contas no domínio do AD. Por exemplo, se as contas no domínio forem referidas como CONTOSO\admin, CONTOSO será o nome de domínio NETBIOS.Esse campo é opcional. Quando não fornecido, o valor usa como padrão o primeiro rótulo do campo
spec.activeDirectory.realm
.Na maioria dos ambientes de domínio, isso é definido como o valor padrão, mas pode ter um valor não padrão em alguns ambientes de domínio. Você precisará usar esse campo somente quando o nome NetBIOS do domínio não corresponder ao primeiro rótulo do nome totalmente qualificado.
spec.activeDirectory.domainControllers.secondaryDomainControllers[*].hostname
Lista dos nomes de domínio totalmente qualificados dos controladores de domínio secundários no domínio do AD.Se o seu domínio for atendido por vários controladores de domínio, é uma boa prática fornecer alguns dos nomes de domínio totalmente qualificados nessa lista. Isso permite alta disponibilidade para operações do Kerberos.
Esse campo é opcional e não é necessário. O sistema detectará automaticamente os controladores de domínio secundários quando um valor não for fornecido.
spec.activeDirectory.dns.domainName
Nome de domínio DNS para o qual as pesquisas de DNS devem ser encaminhadas para os servidores DNS do Active Directory.Uma pesquisa de DNS para qualquer nome que pertença a este domínio ou aos respectivos domínios descendentes será encaminhada para o Active Directory.
Esse campo é opcional. Quando não fornecido, ele assume como padrão o valor fornecido para
spec.activeDirectory.realm
convertido em minúsculas.spec.activeDirectory.dns.replicas
Contagem de réplicas para o serviço proxy DNS. Esse campo é opcional e o padrão é 1 quando não fornecido.spec.activeDirectory.dns.preferK8sDnsForPtrLookups
Sinalizador indicando se deve-se preferir a resposta do servidor DNS do Kubernetes em vez da resposta do servidor DNS do AD para pesquisas de endereço IP.O serviço de proxy DNS depende desse campo para determinar qual grupo upstream de servidores DNS preferir para pesquisas de endereço IP.
Esse campo é opcional. Quando não fornecido, usará
true
como padrão, ou seja, as pesquisas de DNS de endereços IP serão encaminhadas primeiro aos servidores DNS do Kubernetes. Se os servidores DNS do Kubernetes falharem em responder à pesquisa, a consulta será encaminhada aos servidores DNS do AD. Quando definido comofalse
, essas pesquisas de DNS serão encaminhadas primeiro para servidores DNS do AD e, em caso de falha, retornarão ao Kubernetes.
Implantar o Active Directory Connector no modo de keytab gerenciado pelo sistema
Para implantar um conector do AD, crie um arquivo de especificação YAML chamado active-directory-connector.yaml
.
Veja um exemplo de um AD Connector de keytab gerenciado pelo sistema que usa um domínio de nome CONTOSO.LOCAL
do AD. Certifique-se de substituir os valores por aqueles que estão para o seu domínio do AD. O adarc-dsa-secret
contém a conta de serviço de domínio do AD que foi criada antes da implantação do AD.
Observação
Verifique se a senha da conta de serviço de domínio do AD fornecida aqui não contém !
como caracteres especiais.
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: adarc-dsa-secret
namespace: <namespace>
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
---
apiVersion: arcdata.microsoft.com/v1beta2
kind: ActiveDirectoryConnector
metadata:
name: adarc
namespace: <namespace>
spec:
activeDirectory:
realm: CONTOSO.LOCAL
serviceAccountProvisioning: automatic
ouDistinguishedName: "OU=arcou,DC=contoso,DC=local"
domainServiceAccountSecret: adarc-dsa-secret
domainControllers:
primaryDomainController:
hostname: dc1.contoso.local
secondaryDomainControllers:
- hostname: dc2.contoso.local
- hostname: dc3.contoso.local
dns:
preferK8sDnsForPtrLookups: false
nameserverIPAddresses:
- <DNS Server 1 IP address>
- <DNS Server 2 IP address>
O comando a seguir implanta a instância do AD Connector. Atualmente, há suporte apenas para a abordagem nativa do Kube de implantação.
kubectl apply –f active-directory-connector.yaml
Depois de enviar a implantação da instância do conector do AD, você pode verificar o status da implantação usando o comando a seguir.
kubectl get adc -n <namespace>