Perkiraan waktu penyelesaian: 18 jam
Pemilik komponen yang dapat dioperasikan: OIC
Cara mengonfigurasi koneksi OIDC
Koneksi OIDC dikelola oleh Konfigurasi Status yang Diinginkan (DSC). Meskipun dapat dibuat secara manual, DSC adalah metode yang lebih disukai.
Login ke VM CONFIG1 sebagai pengguna
Marvin.Buka c:\config\config.ps1 menggunakan VSCode atau editor pilihan Anda.
Telusuri
-ADFS1untuk menemukan node konfigurasi server ADFS.# Example ADFS server noe in config.ps1 NodeName = "$Site1Code-ADFS1" HyperVHost = 'AA-OC-BM01' Role = 'adfs' IPv4Addr = '172.21.0.23'Array bernama
AdfsAppGrpberisi tabel hash koneksi OIDC. Salin seluruh tabel hashExample-OIDCdan tempelkan setelah tabel hashExample-OIDCyang ada. Contoh:@{ Name = 'Example-OIDC' AdfsSrvApp = @{ … } @{ Name = 'Example-OIDC' AdfsSrvApp = @{ … }Perbarui parameter
NamedanRedirectURIke nilai yang terkait dengan koneksi OIDC baru Anda. Simpan file config.ps1.Buka jendela PowerShell sebagai administrator dan perbarui konfigurasi server ADFS1. Ganti [Situs] dengan kode situs Anda.
$Cred = Get-Credential -Message "Enter Admin Credentials for ADFS1" c:\dsc\Update-RemoteHost.ps1 -ComputerName [Site]-ADFS1 -Credential $Cred -NoThirdPartyValidasi konfigurasi OIDC dengan login ke VM ADFS1, membuka MMC AD FS Management, lalu mengklik Application Groups.
Saat login ke VM ADFS1, buka
C:\configdan cari file bernama<Your Connector Name> Srv App.txt. Simpan nilaiIdentifierdanClientSecretyang ditemukan dalam file ini untuk digunakan nanti dengan aplikasi Anda. Hapus file ini setelah nilai ID dan secret dicatat.
Konfigurasi OIDC untuk konsol infra GDC
Kumpulkan informasi konektor OIDC untuk deployment GDC.
- URI Pengalihan:
https://ais-core.<GDC_name>.<DNS_domain>/finish-login, misalnya,https://ais-core.example.domain.local/finish-login. - URL Konsol Layanan GDC:
https://infra-console.<GDC_name>.<DNS_domain>, misalnya,https://infra-console.example.domain.local.
- URI Pengalihan:
Ikuti langkah-langkah sebelumnya untuk membuat koneksi OIDC.
Setelah Anthos Identity Service (AIS) di sel GDC dikonfigurasi, uji konfigurasi OIDC dengan URL untuk konsol GDC.
- Login ke workstation OIC.
- Buka Chrome, lalu buka URL infra-console, misalnya
https://infra-console.example.domain.local. - Jika diminta, masukkan nama pengguna dan sandi Anda. Jika kredensial valid, Anda akan dialihkan ke GUI infra-console.
Ulangi langkah ini sesuai kebutuhan untuk setiap sel GDC yang dikelola oleh server ADFS ini.
Konfigurasi DNS GDC untuk ADFS
Login ke Pengontrol Sistem atau Bootstrapper.
Mengekspor
kubeconfiguntuk cluster admin root:export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfigKonfigurasi OCIT_DOMAIN menggunakan zona penerusan. Ganti OCIT_DOMAIN dengan nama domain OCIT Anda dan endpoint dengan alamat IP OC DNS:
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 EOFOutputnya akan terlihat seperti contoh ini:
dnszone.network.private.gdc.goog/ocit-domain createdJika perubahan tidak diterapkan, mulai ulang deployment:
kubectl rollout restart deployment -n dns-system gpc-coredns-forwarderPerubahan DNS ini disebarkan ke semua cluster di GDC.
Dengan kubeconfig admin root, validasi bahwa resolusi domain OCIT berfungsi sebagaimana mestinya:
NAMESERVER=$(kubectl -n dns-system get service gpc-coredns-forwarder-udp | \ awk '/[0-9]\./ {print $4}') dig +short @${NAMESERVER} fs.OCIT_DOMAINEkspor
kubeconfiguntuk cluster admin org:export KUBECONFIG=/root/release/org-admin/org-admin-kubeconfigTerapkan kubeconfig admin org, dan validasi bahwa resolusi domain OCIT berfungsi sebagaimana mestinya.:
NAMESERVER=$(kubectl -n dns-system get service gpc-coredns-infra-forwarder | \ awk '/[0-9]\./ {print $4}') dig +short @${NAMESERVER} fs.OCIT_DOMAIN
Konfigurasi AIS GDC untuk konsol
Login ke ADFS1, lalu buka MMC Pengelolaan AD FS
Klik Service > Certificates
Klik dua kali sertifikat untuk Komunikasi Layanan
Klik tab Jalur Sertifikasi
Pilih sertifikat paling atas yang diberi label Root
Klik Lihat Sertifikat
Pilih tab Detail, lalu klik Salin ke File...
- Simpan dalam format Base-64 (.CER)
Salin CA Root ADFS ke Pengontrol Sistem atau Bootstrapper sebagai
adfs.cer.Login ke pengontrol sistem atau bootstrapper, lalu ekspor CA Root ADFS ke variabel shell dengan encoding base64. Perintah berikut mengenkode sertifikat, termasuk header, ke base64 sebagai satu baris (tanpa karakter baris baru):
export BASE64_CERT=$(base64 adfs.cer | tr -d "\n\r")Ekspor cluster Admin Root
kubeconfig:export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfigBuka repositori
iacdan tambahkan struktur direktori untuk organisasi global:cd iac; mkdir -p infrastructure/global/orgs/root/Tambahkan file
ioauthmethod.yamluntuk organisasi: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 EOFGanti variabel berikut:
Variabel Definisi ADFS_CERT_BASE64Nilai
$BASE64_CERTyang Anda buat di langkah sebelumnya.Sertifikat berenkode PEM yang dienkode base64 ini, yang digunakan ADFS untuk menandatangani sendiri, diperlukan oleh Layanan Identitas GKE untuk membuat koneksi yang aman dengan instance ADFS internal.
ADFS_CLIENT_IDID OpenID Connect untuk klien organisasi di ADFS. ADFS_CLIENT_SECRETRahasia OpenID Connect untuk klien organisasi yang terdaftar di ADFS. OCIT_DOMAINNama domain OCIT. Untuk mengetahui informasi selengkapnya, lihat Konfigurasi DNS GDC untuk ADFS. Tambahkan file
kustomization.yamlke folderiacglobal:cat > infrastructure/global/orgs/root/kustomization.yaml << EOF apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: ioauthmethod-kustomization resources: - ioauthmethod.yaml EOFSiapkan dan lakukan commit pada file YAML organisasi dan file kustomisasi:
git add "infrastructure/global" git add "infrastructure/zonal" git commitKirim update ke GitLab:
git -c http.sslVerify=false pushTunggu peninjauan dan penggabungan kode.
Pastikan IdP yang baru ditambahkan ada di
ClientConfig:kubectl get ClientConfig default -n kube-public -o yaml
Menyiapkan autentikasi multi-faktor ADFS
Persyaratan
- YubiKey telah disediakan untuk pengguna sesuai dengan bagian 5.16 Penguatan dan penerapan kebijakan.
- Semua langkah sebelumnya untuk AD FS telah dikonfirmasi berfungsi seperti yang diharapkan, yang berarti pengguna dapat mengakses endpoint GDC menggunakan autentikasi nama pengguna dan sandi dengan AD FS.
Petunjuk
Lakukan langkah-langkah berikut untuk menyiapkan autentikasi multi-faktor ADFS.
Mengaktifkan autentikasi sertifikat ADFS secara global
Jalankan langkah-langkah berikut di host ADFS1.
- RDP ke host ADFS1 menggunakan akun -sa Anda, misalnya username-sa.
- Jalankan jendela PowerShell sebagai
Administrator. Periksa apakah CertificateAuthentication sudah diaktifkan di lingkungan Anda:
# Checking current Global Authentication Policy for # PrimaryIntranetAuthenticationProvider Get-AdfsGlobalAuthenticationPolicy | Select-Object ` -Property PrimaryIntranetAuthenticationProvider # Example output, note it is missing CertificateAuthentication PrimaryIntranetAuthenticationProvider : {FormsAuthentication, WindowsAuthentication, MicrosoftPassportAuthentication}Tetapkan PrimaryIntranetAuthenticationProvider untuk menyertakan CertificateAuthentication. Selain itu, hapus metode autentikasi yang tidak digunakan di OC IT, MicrosoftPassportAuthentication.
# 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}
Menguji autentikasi sertifikat ADFS
Selesaikan langkah-langkah berikut di workstation IT OC.
- Login ke workstation IT OC sebagai akun non-hak istimewa Anda.
- Buka browser Chrome dan akses infra-console.CELL_NAME.DOMAIN seperti biasa, misalnya https://infra-console.example.domain.local.
Klik opsi Login menggunakan sertifikat yang muncul di bawah tombol Login.
Pilih sertifikat pengguna non-privilege Anda dari jendela dialog, lalu klik OK.
Saat diminta, masukkan PIN YubiKey Anda, lalu klik Oke.
Jika autentikasi ADFS berfungsi dengan benar, Anda akan melihat GUI konsol infrastruktur seolah-olah Anda memasukkan nama pengguna dan sandi.
Logout dari konsol infrastruktur menggunakan tombol Log out, lalu tutup semua jendela Chrome. Tindakan ini menghapus kredensial yang di-cache dan memungkinkan Anda menguji setiap endpoint GDC.
Ulangi langkah-langkah di bagian ini untuk setiap endpoint GDC, dengan mengingat untuk logout dan menutup Chrome setiap kali untuk memastikan Anda melihat perintah autentikasi AD FS:
- Console.gdchservices (gdchservices org)
- GitLab
- ServiceNow
- Organisasi lain
Menerapkan autentikasi MFA ADFS secara ketat di seluruh dunia
Jalankan langkah-langkah berikut di host ADFS1.
- RDP ke host ADFS1 sebagai akun -sa Anda, misalnya alexb-sa.
- Jalankan jendela PowerShell sebagai Administrator.
Tetapkan PrimaryIntranetAuthenticationProvider untuk menyertakan CertificateAuthentication SAJA.
# 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}
Uji ulang setiap endpoint GDC
Jalankan langkah-langkah berikut dari workstation IT OC.
- Login ke workstation IT OC sebagai akun non-hak istimewa Anda.
- Buka browser Chrome dan akses infra-console.CELL_NAME.DOMAIN seperti biasa, misalnya https://infra-console.example.domain.local.
Portal AD FS akan langsung meminta sertifikat atau YubiKey. Anda tidak akan lagi melihat kolom untuk nama pengguna atau sandi.
Setelah memilih sertifikat, masukkan PIN YubiKey Anda, yang sama dengan pengujian sebelumnya.
Penyiapan selesai.