Geschätzte Dauer: 18 Stunden
Eigentümer der bedienbaren Komponente: OIC
OIDC-Verbindung konfigurieren
OIDC-Verbindungen werden von der Desired State Configuration (DSC) verwaltet. Sie können zwar manuell erstellt werden, DSC ist jedoch die bevorzugte Methode.
Melden Sie sich als Nutzer
Marvinbei der VM CONFIG1 an.Öffnen Sie c:\config\config.ps1 mit VSCode oder einem anderen Editor Ihrer Wahl.
Suchen Sie nach
-ADFS1, um den Konfigurationsknoten des ADFS-Servers zu finden.# Example ADFS server noe in config.ps1 NodeName = "$Site1Code-ADFS1" HyperVHost = 'AA-OC-BM01' Role = 'adfs' IPv4Addr = '172.21.0.23'Ein Array namens
AdfsAppGrpenthält Hashtables mit OIDC-Verbindungen. Kopieren Sie die gesamte Hashtabelle vonExample-OIDCund fügen Sie sie nach der vorhandenenExample-OIDC-Hashtabelle ein. Beispiel:@{ Name = 'Example-OIDC' AdfsSrvApp = @{ … } @{ Name = 'Example-OIDC' AdfsSrvApp = @{ … }Aktualisieren Sie die Parameter
NameundRedirectURImit den Werten, die mit Ihrer neuen OIDC-Verbindung verknüpft sind. Speichern Sie die Datei „config.ps1“.Öffnen Sie ein PowerShell-Fenster als Administrator und aktualisieren Sie die Konfiguration des ADFS1-Servers. Ersetzen Sie [Site] durch Ihren Websitecode.
$Cred = Get-Credential -Message "Enter Admin Credentials for ADFS1" c:\dsc\Update-RemoteHost.ps1 -ComputerName [Site]-ADFS1 -Credential $Cred -NoThirdPartyPrüfen Sie die OIDC-Konfiguration, indem Sie sich auf der ADFS1-VM anmelden, die AD FS Management MMC öffnen und dann auf Application Groups (Anwendungsgruppen) klicken.
Öffnen Sie auf der ADFS1-VM
C:\configund suchen Sie nach einer Datei mit dem Namen<Your Connector Name> Srv App.txt. Speichern Sie die in dieser Datei gefundenen WerteIdentifierundClientSecretfür die spätere Verwendung mit Ihrer Anwendung. Löschen Sie diese Datei, sobald die Kennzeichnungs- und Secret-Werte aufgezeichnet wurden.
OIDC-Konfiguration für die GDC-Infrastrukturkonsole
OIDC-Connectorinformationen für die GDC-Bereitstellung erfassen.
- Weiterleitungs-URIs:
https://ais-core.<GDC_name>.<DNS_domain>/finish-login, z. B.https://ais-core.example.domain.local/finish-login. - GDC Service Console-URL:
https://infra-console.<GDC_name>.<DNS_domain>, z. B.https://infra-console.example.domain.local.
- Weiterleitungs-URIs:
Führen Sie die vorherigen Schritte aus, um die OIDC-Verbindung zu erstellen.
Nachdem Anthos Identity Service (AIS) in der GDC-Zelle konfiguriert wurde, testen Sie die OIDC-Konfiguration mit der URL für die GDC-Konsole.
- Melden Sie sich an einer OIC-Workstation an.
- Öffnen Sie Chrome und rufen Sie die Infra-Console-URL auf, z. B.
https://infra-console.example.domain.local. - Geben Sie Ihren Nutzernamen und Ihr Passwort ein, wenn Sie dazu aufgefordert werden. Wenn die Anmeldedaten gültig sind, werden Sie zur GUI der Infrastrukturkonsole weitergeleitet.
Wiederholen Sie diesen Schritt nach Bedarf für jede GDC-Zelle, die von diesem ADFS-Server verwaltet wird.
GDC-DNS-Konfiguration für ADFS
Melden Sie sich im System Controller oder Bootstrapper an.
Exportieren Sie
kubeconfigfür den Root-Administratorcluster:export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfigKonfigurieren Sie OCIT_DOMAIN mithilfe einer Forward-Zone. Ersetzen Sie OCIT_DOMAIN durch Ihren OCIT-Domainnamen und die Endpunkte durch die OC-DNS-IP-Adressen:
kubectl apply -f - <<EOF apiVersion: network.private.gdc.goog/v1alpha1 kind: DNSZone metadata: namespace: dns-system name: ocit-domain spec: domainName: OCIT_DOMAIN forwardingConfig: # Set to OC DNS IPs (the AD domain controllers) endpoints: - 192.0.2.0 - 192.0.2.1 replicateToTenantOrg: true EOFDie Ausgabe sieht so aus:
dnszone.network.private.gdc.goog/ocit-domain createdWenn die Änderungen nicht übernommen werden, starten Sie das Deployment neu:
kubectl rollout restart deployment -n dns-system gpc-coredns-forwarderDiese DNS-Änderung wird auf alle Cluster in GDC übertragen.
Prüfen Sie mit der Stammadministrator-kubeconfig-Datei, ob die OCIT-Domainauflösung wie vorgesehen funktioniert:
NAMESERVER=$(kubectl -n dns-system get service gpc-coredns-forwarder-udp | \ awk '/[0-9]\./ {print $4}') dig +short @${NAMESERVER} fs.OCIT_DOMAINExportieren Sie
kubeconfigfür den Administratorcluster der Organisation:export KUBECONFIG=/root/release/org-admin/org-admin-kubeconfigWenden Sie die kubeconfig-Datei des Organisationsadministrators an und prüfen Sie, ob die OCIT-Domainauflösung wie vorgesehen funktioniert:
NAMESERVER=$(kubectl -n dns-system get service gpc-coredns-infra-forwarder | \ awk '/[0-9]\./ {print $4}') dig +short @${NAMESERVER} fs.OCIT_DOMAIN
GDC AIS-Konfiguration für die Console
Melden Sie sich bei ADFS1 an und öffnen Sie die AD FS-Verwaltungs-MMC.
Klicken Sie auf „Dienst“ > „Zertifikate“.
Doppelklicken Sie auf das Zertifikat für die Dienstkommunikation.
Klicken Sie auf den Tab „Zertifizierungspfad“.
Wählen Sie das oberste Zertifikat mit dem Label „Root“ aus.
Klicken Sie auf „Zertifikat ansehen“.
Wählen Sie den Tab „Details“ aus und klicken Sie dann auf „In Datei kopieren…“.
- Im Base64-Format (.CER) speichern
Kopieren Sie die ADFS-Stammzertifizierungsstelle als
adfs.cerauf den Systemcontroller oder Bootstrapper.Melden Sie sich beim Systemcontroller oder Bootstrapper an und exportieren Sie die ADFS-Stammzertifizierungsstelle in eine Shell-Variable mit Base64-Codierung. Mit dem folgenden Befehl wird das Zertifikat einschließlich der Header als einzelne Zeile (ohne Zeilenumbruchzeichen) in Base64 codiert:
export BASE64_CERT=$(base64 adfs.cer | tr -d "\n\r")Exportieren Sie den Root-Administratorcluster
kubeconfig:export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfigWechseln Sie zum Repository
iacund fügen Sie die Verzeichnisstruktur für die globale Organisation hinzu:cd iac; mkdir -p infrastructure/global/orgs/root/Fügen Sie die Datei
ioauthmethod.yamlfür die Organisation hinzu:cat > infrastructure/global/orgs/root/ioauthmethod.yaml << EOF apiVersion: iam.global.private.gdc.goog/v1alpha1 kind: IOAuthMethod metadata: name: adfs-oidc namespace: gpc-system spec: oidc: certificateAuthorityData: ADFS_CERT_BASE64 clientID: ADFS_CLIENT_ID clientSecret: ADFS_CLIENT_SECRET groupPrefix: gdch-infra-operator- groupsClaim: groups issuerURI: https://fs.OCIT_DOMAIN/adfs scopes: openid email offline_access userClaim: email userPrefix: gdch-infra-operator- cloudConsoleRedirectURI: http://cloud.console.not.enabled kubectlRedirectURI: http://localhost:9879/callback EOFErsetzen Sie die folgenden Variablen:
Variable Definition ADFS_CERT_BASE64Der Wert von
$BASE64_CERT, den Sie in einem vorherigen Schritt erstellt haben.Dieses base64- und PEM-codierte Zertifikat, das ADFS zum Selbstsignieren verwendet, ist für GKE Identity Service erforderlich, um eine sichere Verbindung mit einer internen ADFS-Instanz herzustellen.
ADFS_CLIENT_IDDie OpenID Connect-ID für den Client der Organisation in ADFS. ADFS_CLIENT_SECRETDer OpenID Connect-Schlüssel für den Client der Organisation, der in ADFS registriert ist. OCIT_DOMAINDer OCIT-Domainname. Weitere Informationen finden Sie unter GDC-DNS-Konfiguration für ADFS. Fügen Sie die Datei
kustomization.yamldem globalen Ordneriachinzu:cat > infrastructure/global/orgs/root/kustomization.yaml << EOF apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: ioauthmethod-kustomization resources: - ioauthmethod.yaml EOFStellen Sie die YAML-Datei der Organisation und die Kustomize-Dateien bereit und committen Sie sie:
git add "infrastructure/global" git add "infrastructure/zonal" git commitÜbertragen Sie die Aktualisierung per Push an GitLab:
git -c http.sslVerify=false pushWarten Sie auf die Codeüberprüfung und das Zusammenführen.
Prüfen Sie, ob der neu hinzugefügte IdP in
ClientConfigvorhanden ist:kubectl get ClientConfig default -n kube-public -o yaml
ADFS-Multi-Faktor-Authentifizierung einrichten
Voraussetzungen
- YubiKeys wurden Nutzern gemäß Abschnitt 5.16 Härten und Anwenden von Richtlinien bereitgestellt.
- Alle vorherigen Schritte für AD FS haben wie erwartet funktioniert. Nutzer können also mit der Nutzername- und Passwortauthentifizierung über AD FS auf GDC-Endpunkte zugreifen.
Anleitung
Führen Sie die folgenden Schritte aus, um die ADFS-Multi-Faktor-Authentifizierung einzurichten.
ADFS-Zertifikatsauthentifizierung global aktivieren
Führen Sie die folgenden Schritte auf dem ADFS1-Host aus.
- Stellen Sie mit Ihrem -sa-Konto, z. B. username-sa, eine RDP-Verbindung zum ADFS1-Host her.
- Führen Sie ein PowerShell-Fenster als
Administratoraus. Prüfen Sie, ob CertificateAuthentication in Ihrer Umgebung bereits aktiviert ist:
# Checking current Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Example output, note it is missing CertificateAuthentication PrimaryIntranetAuthenticationProvider : {FormsAuthentication, WindowsAuthentication, MicrosoftPassportAuthentication}Legen Sie PrimaryIntranetAuthenticationProvider so fest, dass CertificateAuthentication enthalten ist. Entfernen Sie außerdem die nicht verwendete Authentifizierungsmethode MicrosoftPassportAuthentication in OC IT.
# Setting the Global Authentication Policy for # PrimaryIntranetAuthenticationProvider to include CertificateAuthentication Set-AdfsGlobalAuthenticationPolicy -PrimaryIntranetAuthenticationProvider ` @('FormsAuthentication', 'WindowsAuthentication', 'CertificateAuthentication') # Validating the update to Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Desired output PrimaryIntranetAuthenticationProvider : {CertificateAuthentication, FormsAuthentication, WindowsAuthentication}
ADFS-Zertifikatsauthentifizierung testen
Führen Sie die folgenden Schritte auf einer OC IT-Workstation aus.
- Melden Sie sich mit Ihrem Konto ohne Administratorrechte an einer OC IT-Workstation an.
- Öffnen Sie den Chrome-Browser und rufen Sie infra-console.CELL_NAME.DOMAIN wie gewohnt auf, z. B. https://infra-console.example.domain.local.
Klicken Sie unter der Schaltfläche Anmelden auf die Option Mit einem Zertifikat anmelden.
Wählen Sie im Dialogfenster das Zertifikat des nicht privilegierten Nutzers aus und klicken Sie auf OK.
Geben Sie bei Aufforderung Ihre YubiKey-PIN ein und klicken Sie auf OK.
Wenn die ADFS-Authentifizierung ordnungsgemäß funktioniert, sollte die GUI der Infrastrukturkonsole so angezeigt werden, als hätten Sie Ihren Nutzernamen und Ihr Passwort eingegeben.
Melden Sie sich über die Schaltfläche Abmelden von der Infrastrukturkonsole ab und schließen Sie dann alle Chrome-Fenster. Mit dieser Aktion werden zwischengespeicherte Anmeldedaten entfernt und Sie können jeden anderen GDC-Endpunkt testen.
Wiederholen Sie die Schritte in diesem Abschnitt für jeden GDC-Endpunkt. Denken Sie daran, sich jedes Mal abzumelden und Chrome zu schließen, damit Sie die Aufforderungen zur AD FS-Authentifizierung sehen:
- Console.gdchservices (gdchservices org)
- GitLab
- ServiceNow
- Andere Organisationen
ADFS-MFA-Authentifizierung global erzwingen
Führen Sie die folgenden Schritte auf dem ADFS1-Host aus.
- Stellen Sie mit Ihrem -sa-Konto, z. B. alexb-sa, eine RDP-Verbindung zum ADFS1-Host her.
- Führen Sie ein PowerShell-Fenster als Administrator aus.
Legen Sie für PrimaryIntranetAuthenticationProvider NUR CertificateAuthentication fest.
# Setting the Global Authentication Policy for # PrimaryIntranetAuthenticationProvider to include CertificateAuthentication Set-AdfsGlobalAuthenticationPolicy -PrimaryIntranetAuthenticationProvider ` @('CertificateAuthentication') # Validating the update to Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Desired output PrimaryIntranetAuthenticationProvider : {CertificateAuthentication}
Jeden GDC-Endpunkt noch einmal testen
Führen Sie die folgenden Schritte auf einer OC IT-Workstation aus.
- Melden Sie sich mit Ihrem Konto ohne Administratorrechte an einer OC IT-Workstation an.
- Öffnen Sie den Chrome-Browser und rufen Sie infra-console.CELL_NAME.DOMAIN wie gewohnt auf, z. B. https://infra-console.example.domain.local.
Im AD FS-Portal wird sofort nach einem Zertifikat oder YubiKey gefragt. Sie sollten keine Felder für einen Nutzernamen oder ein Passwort mehr sehen.
Geben Sie nach der Auswahl Ihres Zertifikats Ihre YubiKey-PIN ein, die mit der PIN aus früheren Tests identisch ist.
Die Einrichtung ist abgeschlossen.