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:
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 sommanual
för den kundhanterade nyckelfliken ellerautomatic
för den systemhanterade nyckelfliken. När det här fältet inte har angettsmanual
ä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ärdetserviceAccountProvisioning
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ärdetserviceAccountProvisioning
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åfalse
vidarebefordras 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>