Partilhar via


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:

Active Directory connector

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:

  • Necessá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 como manual keytab gerenciado pelo cliente ou automatic keytab gerenciado pelo sistema. Quando este campo não está definido, o valor assume manualcomo padrão . Quando definido como automatic (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 como manual (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 de serviceAccountProvisioning é definido como automatic. 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 de serviceAccountProvisioning é definido como automatic. 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 como false, 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.LOCALdo 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>