Esercitazione - Distribuire Active Directory Connector in modalità keytab gestita dal sistema
Questo articolo illustra come distribuire Active Directory Connector in modalità keytab gestita dal sistema. Si tratta di un componente fondamentale per abilitare l'autenticazione di Active Directory in un'Istanza gestita di SQL abilitata da Azure Arc.
Active Directory Connector in modalità keytab gestita dal sistema
In modalità Keytab gestita dal sistema, Active Directory Connector 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 Active Directory
- Server DNS Kubernetes
Oltre al servizio proxy DNS, Active Directory Connector 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 Active Directory, dei nomi delle entità servizio (SPN) e dei keytab.
Il diagramma seguente mostra la funzionalità di Active Directory Connector e del servizio proxy DNS in modalità keytab gestita dal sistema:
Prerequisiti
Prima di procedere, è necessario avere:
- Un'Istanza del controller dei dati distribuita in una versione supportata di Kubernetes
- Un dominio di Active Directory
- Un'unità organizzativa creata in precedenza nel dominio di Active Directory
- Un account del servizio del dominio di Active Directory
L'account del servizio del dominio di Active Directory deve disporre delle autorizzazioni sufficienti per creare ed eliminare automaticamente gli account utente all'interno dell'unità organizzativa (OU) specificata in Active Directory.
Concedere le autorizzazioni seguenti, con ambito relativo all'unità organizzativa (OU), all'account del servizio del dominio:
- Leggi tutte le proprietà
- Scrivi tutte le proprietà
- Create User objects (Crea oggetti utente)
- Elimina oggetti utente
- Reimpostare la password sugli oggetti utente discendenti
Per informazioni dettagliate su come configurare l'unità organizzativa e l'account Active Directory, vedere Distribuire i servizi dati abilitati per Azure Arc nell'autenticazione di Active Directory in modalità keytab gestita dal sistema - Prerequisiti
Input per la distribuzione di Active Directory Connector in modalità keytab gestita dal sistema
Per distribuire un'istanza di Active Directory Connector, sono richiesti vari input dall'ambiente del dominio di Active Directory.
Tali input vengono forniti in una specifica yaml per l'istanza di Active Directory Connector.
Prima di distribuire un'istanza di Active Directory Connector, è necessario che siano disponibili i metadati seguenti sul dominio di Active Directory:
- 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 di Active Directory Connector:
Obbligatorio
spec.activeDirectory.realm
Nome del dominio di Active Directory in lettere maiuscole. Questo è il dominio di Active Directory al quale verrà associata questa istanza di Active Directory Connector.spec.activeDirectory.domainControllers.primaryDomainController.hostname
Nome di dominio completo del controller di dominio primario (PDC) nel dominio di Active Directory.Se non si sa qual è il controller di dominio primario nel dominio, è possibile scoprirlo eseguendo il comando seguente in qualsiasi computer Windows aggiunto al dominio di Active Directory:
netdom query fsmo
.spec.activeDirectory.dns.nameserverIpAddresses
Elenco degli indirizzi IP del server DNS di Active Directory. Il servizio proxy DNS inoltrerà le query DNS nel nome di dominio fornito a questi server.
Facoltativo
spec.activeDirectory.serviceAccountProvisioning
Questo è un campo facoltativo che definisce la modalità di distribuzione di Active Directory Connector con i valori possibili, ad esempio,manual
per la modalità keytab gestita dal cliente oautomatic
per la modalità keytab gestita dal sistema. Se questo campo non viene impostato assume il valore dimanual
. Se impostato suautomatic
(modalità keytab gestita dal sistema), il sistema genererà automaticamente gli account Active Directory e i nomi delle entità servizio (SPN) per le istanze gestite di SQL associate a questo Active Directory Connector e saranno creati i file keytab per tali account. Se impostato sumanual
(modalità keytab gestita dal cliente), il sistema non prevede la generazione automatica dell'account AD e la generazione dei file keytab. Sarà l'utente a dover fornire un file keytab.spec.activeDirectory.ouDistinguishedName
Questo campo è facoltativo. Tuttavia, esso diventa obbligatorio in modo condizionale se il valore diserviceAccountProvisioning
viene impostato suautomatic
. Questo campo accetta il nome distinto (DN) dell'unità organizzativa (OU) che gli utenti devono creare nel dominio di Active Directory prima di distribuire Active Directory Connector. Esso consente di archiviare gli account AD generati dal sistema per le istanze gestite di SQL nel dominio di Active Directory. Il valore di esempio è simile al seguente:OU=arcou,DC=contoso,DC=local
.spec.activeDirectory.domainServiceAccountSecret
Questo campo è facoltativo. Diventa obbligatorio in modo condizionale se il valore diserviceAccountProvisioning
viene impostato suautomatic
. Questo campo accetta il nome del segreto Kubernetes contenente il nome utente e la password dell'account del servizio del dominio creato prima della distribuzione di Active Directory Connector. Il sistema userà questo account per generare altri account Active Directory nell'unità organizzativa ed per eseguire azioni su tali account Active Directory.spec.activeDirectory.netbiosDomainName
Nome NetBIOS del dominio di Active Directory. Questo è il nome di dominio breve (nome precedente a Windows 2000) del dominio di Active Directory. 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 viene specificato, assume il valore della prima etichetta del campo
spec.activeDirectory.realm
.Nella maggior parte degli ambienti di dominio, questo valore è impostato sul valore predefinito, tuttavia in alcuni ambienti di dominio il valore potrebbe non essere predefinito. È necessario utilizzare questo campo solo se il nome NetBIOS del dominio non corrisponde alla prima etichetta del suo 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 dei nomi di dominio completi presenti nell'elenco. In questo modo si ottiene una disponibilità elevata per le operazioni Kerberos.
Questo campo è facoltativo e non è necessario. Se non viene specificato un valore, il sistema rileverà automaticamente i controller di dominio secondari.
spec.activeDirectory.dns.domainName
Nome di dominio DNS per il quale le ricerche DNS devono essere inoltrate ai server DNS di Active Directory.Una ricerca DNS di qualsiasi nome appartenente a questo dominio, o ai relativi domini discendenti, sarà inoltrata ad Active Directory.
Questo campo è facoltativo. Se non specificato, per impostazione predefinita viene impostato il valore fornito per
spec.activeDirectory.realm
convertito 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 sia preferibile per le ricerche di indirizzi IP.
Questo campo è facoltativo. Se non viene specificato, assume il valore di
true
, ciò significa che le ricerche DNS di indirizzi IP saranno prima inoltrate ai server DNS Kubernetes. Se i server DNS Kubernetes non sono in grado di rispondere alla ricerca, la query viene quindi inoltrata ai server DNS di Active Directory. Se impostato sufalse
, le ricerche DNS saranno inoltrate prima ai server DNS di Active Directory e, in caso di errore, nuovamente a Kubernetes.
Distribuire Active Directory Connector in modalità keytab gestita dal sistema
Per distribuire un Active Directory Connector, creare un file di specifica YAML denominato active-directory-connector.yaml
.
Di seguito è riportato un esempio di Active Directory Connector in modalità keytab gestita dal sistema che usa un dominio di Active Directory del nome CONTOSO.LOCAL
. Assicurarsi di sostituire i valori con quelli per il dominio Active Directory. Il adarc-dsa-secret
contiene l'account del servizio di dominio di Active Directory creato prima della distribuzione di Active Directory.
Nota
Assicurarsi che la password dell'account Active Directory del servizio di dominio specificato non contenga il carattere speciale !
.
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 consente la distribuzione dell'istanza di Active Directory Connector. Attualmente è supportato soltanto l'approccio di distribuzione nativo Kube.
kubectl apply –f active-directory-connector.yaml
Dopo aver inviato la distribuzione per l'istanza di Active Directory Connector, è possibile controllare lo stato della distribuzione usando il comando seguente.
kubectl get adc -n <namespace>