Tutorial – Implantar o conector do Ative Directory no modo keytab gerenciado pelo sistema
Este artigo explica como implantar o conector do Ative Directory no modo keytab gerenciado pelo sistema. É um componente fundamental para habilitar a autenticação do Ative Directory na Instância Gerenciada do SQL habilitada pelo Azure Arc.
Conector do Ative Directory no modo keytab gerenciado pelo sistema
No modo Keytab Gerenciado pelo Sistema, um conector do Ative Directory implanta um serviço de proxy DNS que faz o proxy das solicitações DNS provenientes da instância gerenciada para qualquer um dos dois serviços DNS upstream:
- Servidores DNS do Ative Directory
- Servidores DNS Kubernetes
Além do serviço de proxy 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áticos de contas do AD, SPNs (Nomes da Entidade de Serviço) e keytabs.
O diagrama a seguir mostra a funcionalidade do AD Connector e do serviço DNS Proxy no modo keytab gerenciado pelo sistema:
Pré-requisitos
Antes de prosseguir, você deve ter:
- Uma instância do Controlador de Dados implantada em uma versão suportada do Kubernetes
- Um domínio do Ative Directory
- Uma unidade organizacional (UO) pré-criada no domínio do Ative Directory
- Uma conta de serviço de domínio do Ative Directory
A conta de serviço de domínio do AD deve ter permissões suficientes para criar e excluir automaticamente contas de usuários dentro da unidade organizacional (UO) fornecida no diretório ativo.
Conceda as seguintes permissões - com escopo para a Unidade Organizacional (UO) - para a conta de serviço de domínio:
- Ler todos os imóveis
- Escrever todas as propriedades
- Criar objetos de usuário
- Excluir objetos de usuário
- Redefinir senha para objetos de usuário descendente
Para obter detalhes sobre como configurar a conta de UO e AD, vá para Implantar serviços de dados habilitados para Arco do Azure na autenticação do Ative Directory com keytab gerenciado pelo sistema - pré-requisitos
Entrada para implantar o conector do Ative Directory no modo keytab gerenciado pelo sistema
Para implantar uma instância do conector do Ative Directory, várias entradas são necessárias do ambiente de domínio do Ative Directory.
Essas entradas são fornecidas em uma especificação yaml para a instância do conector AD.
Os seguintes metadados 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 Ative Directory
- Lista dos controladores de domínio (nomes de domínio totalmente qualificados)
- Lista de endereços IP do servidor DNS
Os seguintes campos de entrada são expostos aos usuários na especificação do conector do Ative Directory:
Obrigatório
spec.activeDirectory.realm
Nome do domínio do Ative 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 Controlador de Domínio Primário (PDC) no domínio AD.Se você não souber qual controlador de domínio no domínio é primário, poderá descobrir executando este comando em qualquer máquina Windows associada ao domínio do AD:
netdom query fsmo
.spec.activeDirectory.dns.nameserverIpAddresses
Lista de endereços IP do servidor DNS do Ative Directory. O serviço de proxy DNS encaminhará consultas DNS no nome de domínio fornecido para esses servidores.
Opcional
spec.activeDirectory.serviceAccountProvisioning
Este é um campo opcional que define o modo de implantação do conector do AD com valores possíveis comomanual
keytab gerenciado pelo cliente ouautomatic
keytab gerenciado pelo sistema. Quando este campo não está definido, o valor assumemanual
como padrão . Quando definido comoautomatic
(keytab gerenciado pelo sistema), o sistema gerará automaticamente contas do AD e SPNs (Nomes da Entidade de Serviço) para as Instâncias Gerenciadas do SQL associadas a esse AD Connector e criará arquivos keytab para elas. Quando definido comomanual
(keytab gerenciado pelo cliente), o sistema não fornecerá geração automática da conta do AD e geração de keytab. Espera-se que o usuário forneça um arquivo keytab.spec.activeDirectory.ouDistinguishedName
Este é um campo opcional. Embora se torne condicionalmente obrigatório quando o valor deserviceAccountProvisioning
é definido comoautomatic
. Este campo aceita o Nome Distinto (DN) da Unidade Organizacional (UO) que os usuários devem criar no domínio do Ative Directory antes de implantar o AD Connector. Ele é usado para armazenar as contas do AD geradas pelo sistema para Instâncias Gerenciadas SQL no domínio do Ative Directory. O exemplo do valor se parece com:OU=arcou,DC=contoso,DC=local
.spec.activeDirectory.domainServiceAccountSecret
Este é um campo opcional. Torna-se condicionalmente obrigatório quando o valor deserviceAccountProvisioning
é definido comoautomatic
. Este 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 criada 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 Ative Directory. Este é o nome de domínio curto (nome anterior ao Windows 2000) do seu domínio do Ative Directory. Isso geralmente é usado para qualificar contas no domínio do AD. Por exemplo, se as contas no domínio são referidas como CONTOSO\admin, então CONTOSO é o nome de domínio NETBIOS.Este campo é opcional. Quando não fornecido, seu valor assume como padrão o primeiro rótulo do
spec.activeDirectory.realm
campo.Na maioria dos ambientes de domínio, isso é definido como o valor padrão, mas alguns ambientes de domínio podem ter um valor não padrão. Você precisará usar este campo somente quando o nome NetBIOS do seu domínio não corresponder ao primeiro rótulo de seu 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 AD.Se o seu domínio for servido por vários controladores de domínio, é uma boa prática fornecer alguns dos seus nomes de domínio totalmente qualificados nesta lista. Isso permite alta disponibilidade para operações Kerberos.
Este campo é opcional e não é necessário. O sistema detetará 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 Ative Directory.Uma pesquisa de DNS para qualquer nome pertencente a este domínio ou seus domínios descendentes será encaminhada para o Ative Directory.
Este campo é opcional. Quando não fornecido, o 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 de proxy DNS. Este campo é opcional e assume como padrão 1 quando não é fornecido.spec.activeDirectory.dns.preferK8sDnsForPtrLookups
Sinalizador que indica se a resposta do servidor DNS do Kubernetes deve ser preferida à resposta do servidor DNS do AD para pesquisas de endereços IP.O serviço de proxy DNS depende deste campo para determinar qual grupo upstream de servidores DNS preferir para pesquisas de endereços IP.
Este campo é opcional. Quando não fornecido, o padrão é
true
ou seja, as pesquisas de DNS de endereços IP serão primeiro encaminhadas para os servidores DNS do Kubernetes. Se os servidores DNS do Kubernetes não responderem à pesquisa, a consulta será encaminhada para os servidores DNS do AD. Quando definido comofalse
, essas pesquisas de DNS serão encaminhadas para os servidores DNS do AD primeiro e, em caso de falha, retornarão ao Kubernetes.
Implantar o conector do Ative Directory no modo keytab gerenciado pelo sistema
Para implantar um conector AD, crie um arquivo de especificação YAML chamado active-directory-connector.yaml
.
Segue-se um exemplo de um conector AD keytab gerido pelo sistema que utiliza um domínio de nome CONTOSO.LOCAL
do AD. Certifique-se de substituir os valores pelos do 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.
Nota
Verifique se a senha da conta AD do serviço de domínio fornecida aqui não contém !
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 conector do AD. Atualmente, apenas a abordagem kube-native de implantação é suportada.
kubectl apply –f active-directory-connector.yaml
Depois de enviar a implantação para a instância do conector do AD, você pode verificar o status da implantação usando o comando a seguir.
kubectl get adc -n <namespace>