Condividi tramite


Esercitazione: Distribuire il connettore Active Directory in modalità keytab gestita dal sistema

Questo articolo illustra come distribuire il connettore Active Directory in modalità keytab gestita dal sistema. Si tratta di un componente chiave per abilitare l'autenticazione di Active Directory in Istanza gestita di SQL abilitata da Azure Arc.

Connettore Active Directory in modalità keytab gestita dal sistema

In modalità Keytab gestita dal sistema, un connettore di Active Directory distribuisce un servizio proxy DNS che esegue il proxy delle richieste DNS provenienti dall'istanza gestita a uno dei due servizi DNS upstream:

  • Server DNS di Active Directory
  • Server DNS Kubernetes

Oltre al servizio proxy DNS, AD Connessione or distribuisce anche un servizio di supporto per la sicurezza che facilita la comunicazione con il dominio di Active Directory per la creazione e la gestione automatica degli account DI Active Directory, dei nomi delle entità servizio (SPN) e dei keytab.

Il diagramma seguente mostra la funzionalità del servizio proxy DNS e del Connessione or di Active Directory in modalità keytab gestita dal sistema:

Active Directory connector

Prerequisiti

Prima di procedere, è necessario disporre di:

  • Istanza del controller di dati distribuita in una versione supportata di Kubernetes
  • Un dominio di Active Directory
  • Un'unità organizzativa creata in anteprima nel dominio di Active Directory
  • Un account del servizio di dominio Active Directory

L'account del servizio di dominio ACTIVE Directory deve disporre di autorizzazioni sufficienti per creare ed eliminare automaticamente gli account utente all'interno dell'unità organizzativa specificata nella directory active directory.

Concedere le autorizzazioni seguenti, con ambito all'unità organizzativa, all'account del servizio di dominio:

  • Leggi tutte le proprietà
  • Scrivere tutte le proprietà
  • Create User objects (Crea oggetti utente)
  • Elimina oggetti utente
  • Reimpostare la password per gli oggetti Utente discendente

Per informazioni dettagliate su come configurare l'unità organizzativa e l'account di Active Directory, vedere Distribuire i servizi dati abilitati per Azure Arc nell'autenticazione di Active Directory con keytab gestito dal sistema - Prerequisiti

Input per la distribuzione del connettore Active Directory in modalità keytab gestita dal sistema

Per distribuire un'istanza del connettore Active Directory, sono necessari diversi input dall'ambiente di dominio Active Directory.

Questi input vengono forniti in una specifica yaml per l'istanza del connettore AD.

Prima di distribuire un'istanza di AD Connector, è necessario che i metadati seguenti sul dominio di Active Directory siano disponibili:

  • Nome del dominio di Active Directory
  • Elenco dei controller di dominio (nomi di dominio completi)
  • Elenco degli indirizzi IP del server DNS

I campi di input seguenti vengono esposti agli utenti nella specifica del connettore Active Directory:

  • Obbligatorio

    • spec.activeDirectory.realm Nome del dominio di Active Directory in lettere maiuscole. Si tratta del dominio di Active Directory a cui verrà associata questa istanza del Connessione or di Active Directory.

    • spec.activeDirectory.domainControllers.primaryDomainController.hostname Nome di dominio completo del controller di dominio primario (PDC) nel dominio di Active Directory.

      Se non si conosce il controller di dominio nel dominio primario, è possibile eseguire questo comando in qualsiasi computer Windows aggiunto al dominio di Active Directory: netdom query fsmo.

    • spec.activeDirectory.dns.nameserverIpAddresses Elenco di indirizzi IP del server DNS di Active Directory. Il servizio proxy DNS inoltra le query DNS nel nome di dominio fornito a questi server.

  • Facoltativo

    • spec.activeDirectory.serviceAccountProvisioning Si tratta di un campo facoltativo che definisce la modalità di distribuzione del connettore AD con valori possibili come manual per keytab gestito dal cliente o automatic per keytab gestito dal sistema. Quando questo campo non è impostato, il valore predefinito è manual. Se impostato su automatic (keytab gestito dal sistema), il sistema genererà automaticamente gli account AD e i nomi dell'entità servizio (SPN) per i Istanza gestita di SQL associati a questo Connessione or di Active Directory e creare file keytab per tali file. Se impostato su manual (keytab gestito dal cliente), il sistema non fornirà la generazione automatica dell'account AD e della generazione keytab. L'utente dovrà fornire un file keytab.

    • spec.activeDirectory.ouDistinguishedName Si tratta di un campo facoltativo. Anche se diventa obbligatorio in modo condizionale quando il valore di serviceAccountProvisioning è impostato su automatic. Questo campo accetta il nome distinto (DN) dell'unità organizzativa (OU) che gli utenti devono creare nel dominio di Active Directory prima di distribuire AD Connessione or. Viene usato per archiviare gli account AD generati dal sistema per i Istanza gestita di SQL nel dominio di Active Directory. L'esempio del valore è simile al seguente: OU=arcou,DC=contoso,DC=local.

    • spec.activeDirectory.domainServiceAccountSecret Si tratta di un campo facoltativo. Diventa obbligatorio in modo condizionale quando il valore di serviceAccountProvisioning è impostato su automatic. Questo campo accetta il nome del segreto Kubernetes che contiene il nome utente e la password dell'account del servizio di dominio creato prima della distribuzione del Connessione or di Active Directory. Il sistema userà questo account per generare altri account AD nell'unità organizzativa ed eseguire azioni su tali account ACTIVE Directory.

    • spec.activeDirectory.netbiosDomainName Nome NetBIOS del dominio di Active Directory. Si tratta del nome di dominio breve (nome precedente a Windows 2000) del dominio di Active Directory. Questo viene spesso usato per qualificare gli account nel dominio di Active Directory. Ad esempio, se gli account nel dominio sono definiti CONTOSO\admin, CONTOSO è il nome di dominio NETBIOS.

      Questo campo è facoltativo. Se non specificato, il valore predefinito è la prima etichetta del spec.activeDirectory.realm campo.

      Nella maggior parte degli ambienti di dominio, questo valore è impostato sul valore predefinito, ma alcuni ambienti di dominio potrebbero avere un valore non predefinito. È necessario usare questo campo solo quando il nome NetBIOS del dominio non corrisponde alla prima etichetta del nome completo.

    • spec.activeDirectory.domainControllers.secondaryDomainControllers[*].hostname Elenco dei nomi di dominio completi dei controller di dominio secondari nel dominio DI ACTIVE Directory.

      Se il dominio viene gestito da più controller di dominio, è consigliabile specificare alcuni nomi di dominio completi in questo elenco. Ciò consente la disponibilità elevata per le operazioni Kerberos.

      Questo campo è facoltativo e non è necessario. Il sistema rileverà automaticamente i controller di dominio secondari quando non viene specificato un valore.

    • spec.activeDirectory.dns.domainName Nome di dominio DNS per cui le ricerche DNS devono essere inoltrate ai server DNS di Active Directory.

      Una ricerca DNS per qualsiasi nome appartenente a questo dominio o ai relativi domini discendenti verrà inoltrata ad Active Directory.

      Questo campo è facoltativo. Se non specificato, per impostazione predefinita viene impostato il valore fornito per la spec.activeDirectory.realm conversione in lettere minuscole.

    • spec.activeDirectory.dns.replicas Numero di repliche per il servizio proxy DNS. Questo campo è facoltativo e il valore predefinito è 1 se non specificato.

    • spec.activeDirectory.dns.preferK8sDnsForPtrLookups Flag che indica se preferire la risposta del server DNS Kubernetes rispetto alla risposta del server DNS di Active Directory per le ricerche di indirizzi IP.

      Il servizio proxy DNS si basa su questo campo per determinare quale gruppo upstream di server DNS preferire per le ricerche di indirizzi IP.

      Questo campo è facoltativo. Se non specificato, per impostazione predefinita true , le ricerche DNS degli indirizzi IP verranno prima inoltrate ai server DNS Kubernetes. Se i server DNS Kubernetes non riescono a rispondere alla ricerca, la query viene quindi inoltrata ai server DNS di Active Directory. Se impostato su false, queste ricerche DNS verranno inoltrate prima ai server DNS di Active Directory e in caso di errore, eseguire il fallback a Kubernetes.

Distribuire il connettore Active Directory in modalità keytab gestita dal sistema

Per distribuire un connettore AD, creare un file di specifica YAML denominato active-directory-connector.yaml.

Di seguito è riportato un esempio di connettore AD keytab gestito dal sistema che usa un dominio di ACTIVE Directory di nome CONTOSO.LOCAL. Assicurarsi di sostituire i valori con quelli per il dominio di Active Directory. adarc-dsa-secret Contiene l'account del servizio di dominio ACTIVE Directory creato prima della distribuzione di Active Directory.

Nota

Assicurarsi che la password dell'account AD del servizio di dominio specificato non contenga ! come caratteri speciali.

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>

Il comando seguente distribuisce l'istanza del connettore AD. Attualmente è supportato solo l'approccio kube-native della distribuzione.

kubectl apply –f active-directory-connector.yaml

Dopo aver inviato la distribuzione per l'istanza del connettore AD, è possibile controllare lo stato della distribuzione usando il comando seguente.

kubectl get adc -n <namespace>