Dela via


Självstudie – Distribuera Active Directory-anslutningsprogram i systemhanterat nyckelfliksläge

Den här artikeln beskriver hur du distribuerar Active Directory-anslutningsprogram i systemhanterat nyckelfliksläge. Det är en nyckelkomponent för att aktivera Active Directory-autentisering på SQL Managed Instance som aktiveras av Azure Arc.

Active Directory-anslutningsprogram i systemhanterat nyckelfliksläge

I systemhanterat nyckeltabellläge distribuerar en Active Directory-anslutning en DNS-proxytjänst som proxyservrar dns-begäranden som kommer från den hanterade instansen till någon av de två överordnade DNS-tjänsterna:

  • Active Directory DNS-servrar
  • Kubernetes DNS-servrar

Förutom DNS-proxytjänsten distribuerar AD Connector även en säkerhetssupporttjänst som underlättar kommunikationen till AD-domänen för automatisk skapande och hantering av AD-konton, tjänsthuvudnamn (SPN) och nyckelflikar.

I följande diagram visas funktionerna för AD-anslutningsappen och DNS-proxytjänsten i systemhanterat nyckelfliksläge:

Active Directory-anslutningsprogram

Förutsättningar

Innan du fortsätter måste du ha:

  • En instans av datakontrollant som distribueras på en version av Kubernetes som stöds
  • En Active Directory-domän
  • En i förväg skapad organisationsenhet (OU) i Active Directory-domänen
  • Ett Active Directory-domäntjänstkonto

AD-domäntjänstkontot bör ha tillräcklig behörighet för att automatiskt skapa och ta bort användarkonton i den angivna organisationsenheten (OU) i active directory.

Bevilja följande behörigheter – som är begränsade till organisationsenheten (OU) – till domäntjänstkontot:

  • Läsa alla egenskaper
  • Skriva alla egenskaper
  • Skapa användarobjekt
  • Ta bort användarobjekt
  • Återställa lösenord för underordnade användarobjekt

Mer information om hur du konfigurerar OU och AD-konto finns i Distribuera Azure Arc-aktiverade datatjänster i Active Directory-autentisering med systemhanterad nyckelflik – förutsättningar

Indata för distribution av Active Directory-anslutningsprogram i systemhanterat nyckelfliksläge

För att distribuera en instans av Active Directory-anslutningsappen behövs flera indata från Active Directory-domänmiljön.

Dessa indata tillhandahålls i en yaml-specifikation för AD-anslutningsinstansen.

Följande metadata om AD-domänen måste vara tillgängliga innan du distribuerar en instans av AD-anslutningsappen:

  • Namnet på Active Directory-domänen
  • Lista över domänkontrollanter (fullständigt kvalificerade domännamn)
  • Lista över DNS-serverns IP-adresser

Följande indatafält exponeras för användarna i Active Directory-anslutningsspecifikationen:

  • Krävs

    • spec.activeDirectory.realm Namnet på Active Directory-domänen i versaler. Det här är DEN AD-domän som den här instansen av AD Connector kommer att associeras med.

    • spec.activeDirectory.domainControllers.primaryDomainController.hostname Fullständigt kvalificerat domännamn för den primära domänkontrollanten (PDC) i AD-domänen.

      Om du inte vet vilken domänkontrollant i domänen som är primär kan du ta reda på det genom att köra det här kommandot på alla Windows-datorer som är anslutna till AD-domänen: netdom query fsmo.

    • spec.activeDirectory.dns.nameserverIpAddresses Lista över IP-adresser för Active Directory DNS-server. DNS-proxytjänsten vidarebefordrar DNS-frågor i det angivna domännamnet till dessa servrar.

  • Valfritt

    • spec.activeDirectory.serviceAccountProvisioning Det här är ett valfritt fält som definierar distributionsläget för AD-anslutningsappen med möjliga värden som manual för den kundhanterade nyckelfliken eller automatic för den systemhanterade nyckelfliken. När det här fältet inte har angetts manualär värdet som standard . När det är inställt på automatic (systemhanterad nyckelflik) genererar systemet automatiskt AD-konton och tjänsthuvudnamn (SPN) för SQL Managed Instances som är associerade med ad-anslutningsappen och skapar nyckelfliksfiler åt dem. När det är inställt på manual (kundhanterad nyckelflik) ger systemet inte automatisk generering av AD-kontot och nyckelfliksgenereringen. Användaren förväntas tillhandahålla en nyckelfliksfil.

    • spec.activeDirectory.ouDistinguishedName Det här är ett valfritt fält. Även om det blir villkorligt obligatoriskt när värdet serviceAccountProvisioning för är inställt på automatic. Det här fältet accepterar det unika namnet (DN) för organisationsenheten (OU) som användarna måste skapa i Active Directory-domänen innan de distribuerar AD Connector. Den används för att lagra systemgenererade AD-konton för SQL Managed Instances i Active Directory-domänen. Exemplet på värdet ser ut så här: OU=arcou,DC=contoso,DC=local.

    • spec.activeDirectory.domainServiceAccountSecret Det här är ett valfritt fält. Det blir villkorligt obligatoriskt när värdet serviceAccountProvisioning för är inställt på automatic. Det här fältet accepterar namnet på Kubernetes-hemligheten som innehåller användarnamnet och lösenordet för domäntjänstkontot som skapades före AD Connector-distributionen. Systemet använder det här kontot för att generera andra AD-konton i organisationsenheten och utföra åtgärder på dessa AD-konton.

    • spec.activeDirectory.netbiosDomainName NetBIOS-namnet på Active Directory-domänen. Det här är det korta domännamnet (före Windows 2000-namnet) för din Active Directory-domän. Detta används ofta för att kvalificera konton i AD-domänen. T.ex. om kontona i domänen kallas CONTOSO\admin är CONTOSO NETBIOS-domännamnet.

      Det här fältet är valfritt. När det inte anges är dess värde standardvärdet för den första etiketten i spec.activeDirectory.realm fältet.

      I de flesta domänmiljöer är detta inställt på standardvärdet, men vissa domänmiljöer kan ha ett värde som inte är standard. Du behöver bara använda det här fältet när domänens NetBIOS-namn inte matchar den första etiketten för dess fullständigt kvalificerade namn.

    • spec.activeDirectory.domainControllers.secondaryDomainControllers[*].hostname Lista över de fullständigt kvalificerade domännamnen för de sekundära domänkontrollanterna i AD-domänen.

      Om din domän hanteras av flera domänkontrollanter är det en bra idé att ange några av deras fullständigt kvalificerade domännamn i den här listan. Detta möjliggör hög tillgänglighet för Kerberos-åtgärder.

      Det här fältet är valfritt och behövs inte. Systemet identifierar automatiskt de sekundära domänkontrollanterna när ett värde inte anges.

    • spec.activeDirectory.dns.domainName DNS-domännamn som DNS-sökningar ska vidarebefordras till Active Directory DNS-servrar för.

      En DNS-sökning efter namn som tillhör den här domänen eller dess underordnade domäner vidarebefordras till Active Directory.

      Det här fältet är valfritt. När det inte anges är det standardvärdet som anges för spec.activeDirectory.realm konverterat till gemener.

    • spec.activeDirectory.dns.replicas Antal repliker för DNS-proxytjänsten. Det här fältet är valfritt och standardvärdet är 1 när det inte anges.

    • spec.activeDirectory.dns.preferK8sDnsForPtrLookups Flagga som anger om kubernetes DNS-serversvar ska föredras framför AD DNS-serversvar för IP-adresssökningar.

      DNS-proxytjänsten förlitar sig på det här fältet för att avgöra vilken överordnad grupp av DNS-servrar som ska föredras för IP-adresssökningar.

      Det här fältet är valfritt. När det inte anges vidarebefordras true DNS-sökningarna för IP-adresser först till Kubernetes DNS-servrar. Om Kubernetes DNS-servrar inte kan svara på sökningen vidarebefordras frågan till AD DNS-servrar. När det är inställt på falsevidarebefordras dessa DNS-sökningar till AD DNS-servrar först och efter ett fel återgår du till Kubernetes.

Distribuera Active Directory-anslutningsprogram i systemhanterat nyckelfliksläge

Om du vill distribuera en AD-anslutningsapp skapar du en YAML-specifikationsfil med namnet active-directory-connector.yaml.

Följande är ett exempel på en systemhanterad keytab AD-anslutningsapp som använder en AD-domän med namnet CONTOSO.LOCAL. Se till att ersätta värdena med värdena för din AD-domän. Innehåller adarc-dsa-secret ad-domäntjänstkontot som skapades före AD-distributionen.

Kommentar

Kontrollera att lösenordet för det angivna AD-kontot för domäntjänsten här inte innehåller ! specialtecken.

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>

Följande kommando distribuerar AD Connector-instansen. För närvarande stöds endast kube-native-metoden för distribution.

kubectl apply –f active-directory-connector.yaml

När du har skickat distributionen för AD-anslutningsinstansen kan du kontrollera statusen för distributionen med hjälp av följande kommando.

kubectl get adc -n <namespace>