Freigeben über


Tutorial: Bereitstellen eines Active Directory-Connectors im Modus mit systemseitig verwalteter Schlüsseltabelle

In diesem Artikel wird erläutert, wie Sie einen Active Directory-Connector im Modus mit systemseitig verwalteter Schlüsseltabelle bereitstellen. Es handelt sich hierbei um eine Schlüsselkomponente zum Aktivieren der Active Directory-Authentifizierung für durch Azure Arc aktiviertes SQL Managed Instance.

Active Directory-Connector im Modus mit systemseitig verwalteter Schlüsseltabelle

Im Modus mit systemseitig verwalteter Schlüsseltabelle stellt ein Active Directory-Connector einen DNS-Proxydienst zur Verfügung, der die DNS-Anforderungen aus der verwalteten Instanz an einen der beiden Upstream-DNS-Dienste weiterleitet:

  • Active Directory-DNS-Server
  • Kubernetes-DNS-Server

Zusätzlich zum DNS-Proxydienst stellt der AD-Connector auch einen Sicherheitssupportdienst bereit, der die Kommunikation mit der AD-Domäne für die automatische Erstellung und Verwaltung von AD-Konten, Dienstprinzipalnamen (Service Principal Names, SPNs) und Schlüsseltabellen erleichtert.

Das folgende Diagramm zeigt die Funktionsweise des AD-Connectors und DNS-Proxydiensts im Modus mit systemseitig verwalteter Schlüsseltabelle:

Active Directory-Connector

Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie den Vorgang fortsetzen:

  • Eine Instanz des Datencontrollers, die in einer unterstützten Version von Kubernetes bereitgestellt wird
  • Eine Active Directory-Domäne
  • Eine vorab erstellte Organisationseinheit (OE) in der Active Directory-Domäne
  • Ein Active Directory-Domänendienstkonto

Das AD-Domänendienstkonto sollte über ausreichende Berechtigungen verfügen, um Benutzerkonten innerhalb der angegebenen bereitgestellten Organisationseinheit (OE) automatisch in Active Directory zu erstellen und zu löschen.

Erteilen Sie dem Domänendienstkonto die folgenden Berechtigungen – beschränkt auf die Organisationseinheit:

  • Alle Eigenschaften lesen
  • Alle Eigenschaften schreiben
  • Benutzerobjekte erstellen
  • Benutzerobjekte löschen
  • „Kennwort zurücksetzen“ für Nachfolger-Benutzerobjekte

Informationen zum Einrichten der Organisationseinheit und des AD-Kontos erhalten Sie unter Bereitstellen von Azure Arc-fähigen Datendiensten mit Active Directory-Authentifizierung mit systemseitig verwalteter Schlüsseltabelle – Voraussetzungen.

Eingaben für die Bereitstellung des Active Directory-Connectors im Modus mit systemseitig verwalteter Schlüsseltabelle

Zum Bereitstellen einer Instanz des Active Directory-Connectors sind mehrere Eingaben aus der Active Directory-Domänenumgebung erforderlich.

Diese Eingaben werden in einer YAML-Spezifikation für die AD-Connectorinstanz bereitgestellt.

Die folgenden Metadaten zur AD-Domäne müssen verfügbar sein, bevor eine Instanz des AD-Connectors bereitgestellt wird:

  • Name der Active Directory-Domäne
  • Liste der Domänencontroller (vollqualifizierte Domänennamen)
  • Liste mit IP-Adressen des DNS-Servers

Die folgenden Eingabefelder werden den Benutzern in der Active Directory-Connectorspezifikation zur Verfügung gestellt:

  • Erforderlich

    • spec.activeDirectory.realm: Name der Active Directory-Domäne in Großschreibung. Dies ist die AD-Domäne, der diese Instanz des AD Connectors zugeordnet wird.

    • spec.activeDirectory.domainControllers.primaryDomainController.hostname Vollqualifizierter Domänenname des primären Domänencontrollers (PDC) in der AD-Domäne.

      Wenn Sie nicht wissen, welcher Domänencontroller in der Domäne primär ist, können Sie diesen Befehl auf jedem Windows-Computer ausführen, der der AD-Domäne beigetreten ist: netdom query fsmo.

    • spec.activeDirectory.dns.nameserverIpAddresses: Liste der IP-Adressen des Active Directory-DNS-Servers. Der DNS-Proxydienst leitet DNS-Abfragen im angegebenen Domänennamen an diese Server weiter.

  • Optional

    • spec.activeDirectory.serviceAccountProvisioning Dies ist ein optionales Feld, das den Bereitstellungsmodus für Ihren AD-Connector definiert. Mögliche Werte: manual für eine kundenseitig verwaltete Schlüsseltabelle und automatic für eine systemseitig verwaltete Schlüsseltabelle. Wenn für dieses Feld nichts angegeben wird, wird der Wert standardmäßig auf manual festgelegt. Bei Festlegung auf automatic (systemseitig verwaltete Schlüsseltabelle) generiert das System automatisch AD-Konten und Dienstprinzipalnamen für die verwalteten SQL-Instanzen, die diesem AD-Connector zugeordnet sind, und erstellt Schlüsseltabellendateien für sie. Bei Festlegung auf manual (kundenseitig verwaltete Schlüsseltabelle) erfolgt keine automatische Generierung des AD-Kontos und der Schlüsseltabelle durch das System. Der Benutzer muss eine Schlüsseltabellendatei bereitstellen.

    • spec.activeDirectory.ouDistinguishedName: Dies ist ein optionales Feld. Es ist jedoch bedingt obligatorisch, wenn der Wert serviceAccountProvisioning auf automatic festgelegt wird. Dieses Feld akzeptiert den Distinguished Name (DN) der Organisationseinheit (OE), die vom Benutzer vor der Bereitstellung des AD-Connectors in der Active Directory-Domäne erstellt werden müssen. Hier werden die vom System generierten AD-Konten für verwaltete SQL-Instanzen in der Active Directory-Domäne gespeichert. Der Wert könnte beispielsweise wie folgt aussehen: OU=arcou,DC=contoso,DC=local.

    • spec.activeDirectory.domainServiceAccountSecret: Dies ist ein optionales Feld. Es wird bedingt obligatorisch, wenn der Wert von serviceAccountProvisioning auf automatic festgelegt wird. Dieses Feld akzeptiert den Namen des Kubernetes-Geheimnisses, das den Benutzernamen und das Kennwort des Domänendienstkontos enthält, das vor der AD Connector-Bereitstellung erstellt wurde. Das System verwendet dieses Konto, um andere AD-Konten in der Organisationseinheit zu generieren und Aktionen in diesen AD-Konten auszuführen.

    • spec.activeDirectory.netbiosDomainName: NetBIOS-Name der Active Directory-Domäne. Dies ist der kurze Domänenname (Name vor Windows 2000) Ihrer Active Directory-Domäne. Auf diese Weise werden häufig Konten in der AD-Domäne qualifiziert. Wenn z. B. über CONTOSO\admin auf die Konten in der Domäne Bezug genommen wird, ist CONTOSO der NETBIOS-Domänenname.

      Dieses Feld ist optional. Wenn für dieses Feld nichts angegeben wird, wird als Wert standardmäßig die erste Bezeichnung des Felds spec.activeDirectory.realm verwendet.

      In den meisten Domänenumgebungen ist hier der Standardwert festgelegt, aber einige Domänenumgebungen verfügen möglicherweise über einen nicht standardmäßigen Wert. Sie müssen dieses Feld nur verwenden, wenn der NetBIOS-Name Ihrer Domäne nicht mit der ersten Bezeichnung des vollqualifizierten Namens übereinstimmt.

    • spec.activeDirectory.domainControllers.secondaryDomainControllers[*].hostname: Liste der vollqualifizierten Domänennamen des sekundären Domänencontrollers in der AD-Domäne

      Wenn Ihre Domäne von mehreren Domänencontrollern bedient wird, sollten Sie einige Ihrer vollqualifizierten Domänennamen in dieser Liste bereitstellen. Dies ermöglicht Hochverfügbarkeit für Kerberos-Vorgänge.

      Dieses Feld ist optional und nicht erforderlich. Wenn kein Wert bereitgestellt wird, erkennt das System die sekundären Domänencontroller automatisch.

    • spec.activeDirectory.dns.domainName: DNS-Domänenname, für den DNS-Lookups an die Active Directory-DNS-Server weitergeleitet werden sollen.

      Ein DNS-Lookup nach einem beliebigen Namen, der zu dieser Domäne oder den zugehörigen Nachfolgerdomänen gehört, wird an Active Directory weitergeleitet.

      Dieses Feld ist optional. Wenn nicht angegeben, wird standardmäßig der für spec.activeDirectory.realm bereitgestellte Wert in Kleinbuchstaben konvertiert verwendet.

    • spec.activeDirectory.dns.replicas: Replikatanzahl für den DNS-Proxydienst. Dieses Feld ist optional und wird standardmäßig auf 1 festgelegt, wenn nicht angegeben.

    • spec.activeDirectory.dns.preferK8sDnsForPtrLookups: Flag, das angibt, ob die Antwort des Kubernetes-DNS-Servers gegenüber der Antwort des AD-DNS-Servers für IP-Adresssuchen vorgezogen werden soll.

      Der DNS-Proxydienst bestimmt anhand dieses Felds, welche Upstreamgruppe von DNS-Servern für IP-Adresslookups bevorzugt werden soll.

      Dieses Feld ist optional. Wenn hier nichts angegeben wird, wird standardmäßig true verwendet, d. h., die DNS-Lookups von IP-Adressen werden zuerst an Kubernetes-DNS-Server weitergeleitet. Wenn Kubernetes-DNS-Server kein Lookupergebnis liefern, wird die Abfrage an AD DNS-Server weitergeleitet. Wird false festgelegt, werden diese DNS-Lookups zuerst an AD-DNS-Server weitergeleitet. Bei einem Fehler erfolgt ein Fallback auf Kubernetes.

Bereitstellen des Active Directory-Connectors im Modus mit systemseitig verwalteter Schlüsseltabelle

Um einen AD-Connector bereitzustellen, erstellen Sie eine YAML-Spezifikationsdatei mit dem Namen active-directory-connector.yaml.

Nachfolgend sehen Sie das Beispiel eines AD-Connectors für eine systemseitig verwaltete Schlüsseltabelle, der eine AD-Domäne namens CONTOSO.LOCALverwendet. Ersetzen Sie die Werte durch die Werte für Ihre AD-Domäne. adarc-dsa-secret enthält das AD-Domänendienstkonto, das vor der AD-Bereitstellung erstellt wurde.

Hinweis

Stellen Sie sicher, dass das Kennwort des hier bereitgestellten AD-Domänendienstkontos nicht das Sonderzeichen ! enthält.

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>

Mit dem folgenden Befehl wird die AD Connector-Instanz bereitgestellt. Derzeit wird nur ein Kube-nativer Bereitstellungsansatz unterstützt.

kubectl apply –f active-directory-connector.yaml

Nach dem Übermitteln der Bereitstellung für die AD-Connectorinstanz können Sie den Status der Bereitstellung mithilfe des folgenden Befehls überprüfen:

kubectl get adc -n <namespace>