Mengonfigurasi autentikasi Microsoft Entra untuk kluster Azure Red Hat OpenShift 4 (CLI)
Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, artikel ini mengharuskan Anda menjalankan Azure CLI versi 2.30.0 atau yang lebih baru. Jalankan az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
Ambil URL khusus kluster Anda yang akan digunakan untuk mengonfigurasi aplikasi Microsoft Entra.
Atur variabel untuk grup sumber daya dan nama kluster.
Ganti <resource_group> dengan nama dan <aro_cluster> grup sumber daya Anda dengan nama kluster Anda.
resource_group=<resource_group>
aro_cluster=<aro_cluster>
Buat URL callback OAuth kluster dan simpan dalam variabel oauthCallbackURL.
Catatan
Bagian AAD
dalam URL callback OAuth harus cocok dengan nama penyedia identitas OAuth yang akan Anda siapkan nanti.
domain=$(az aro show -g $resource_group -n $aro_cluster --query clusterProfile.domain -o tsv)
location=$(az aro show -g $resource_group -n $aro_cluster --query location -o tsv)
apiServer=$(az aro show -g $resource_group -n $aro_cluster --query apiserverProfile.url -o tsv)
webConsole=$(az aro show -g $resource_group -n $aro_cluster --query consoleProfile.url -o tsv)
Format oauthCallbackURL sedikit berbeda dengan domain kustom:
Jalankan perintah berikut ini jika Anda menggunakan domain kustom, misalnya
contoso.com
.oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/AAD
Jika Anda tidak menggunakan domain kustom maka
$domain
akan menjadi string alnum delapan karakter dan diperluas oleh$location.aroapp.io
.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/AAD
Catatan
Bagian AAD
dalam URL callback OAuth harus cocok dengan nama penyedia identitas OAuth yang akan Anda siapkan nanti.
Membuat aplikasi Microsoft Entra untuk autentikasi
Ganti <client_secret> dengan kata sandi aman untuk aplikasi.
client_secret=<client_secret>
Buat aplikasi Microsoft Entra dan ambil pengidentifikasi aplikasi yang dibuat.
app_id=$(az ad app create \
--query appId -o tsv \
--display-name aro-auth \
--reply-urls $oauthCallbackURL \
--password $client_secret)
Ambil ID penyewa langganan yang memiliki aplikasi.
tenant_id=$(az account show --query tenantId -o tsv)
Buat file manifes untuk menentukan klaim opsional yang disertakan dalam Token ID
Pengembang aplikasi dapat menggunakan klaim opsional dalam aplikasi Microsoft Entra mereka untuk menentukan klaim mana yang mereka inginkan dalam token yang dikirim ke aplikasi mereka.
Anda dapat menggunakan klaim opsional untuk:
- Memilih klaim tambahan untuk disertakan dalam token aplikasi Anda.
- Ubah perilaku klaim tertentu yang dikembalikan ID Microsoft Entra dalam token.
- Menambahkan dan mengakses klaim kustom untuk aplikasi Anda.
Kami akan mengonfigurasi OpenShift untuk menggunakan email
klaim dan kembali ke upn
untuk mengatur Nama Pengguna Pilihan dengan menambahkan upn
sebagai bagian dari token ID yang dikembalikan oleh ID Microsoft Entra.
Buat file manifest.json untuk mengonfigurasi aplikasi Microsoft Entra.
cat > manifest.json<< EOF
[{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
}]
EOF
Memperbarui opsional Aplikasi Microsoft EntraClaims dengan manifes
az ad app update \
--set optionalClaims.idToken=@manifest.json \
--id $app_id
Memperbarui izin cakupan aplikasi Microsoft Entra
Untuk dapat membaca informasi pengguna dari ID Microsoft Entra, kita perlu menentukan cakupan yang tepat.
Tambahkan izin untuk lingkup Azure Layanan Domain Active Directory Graph.User.Read untuk memberikan izin masuk dan membaca profil pengguna.
az ad app permission add \
--api 00000002-0000-0000-c000-000000000000 \
--api-permissions 311a71cc-e848-46a1-bdf8-97ff7156d8e6=Scope \
--id $app_id
Catatan
Anda dapat dengan aman mengabaikan pesan untuk memberikan persetujuan kecuali Anda diautentikasi sebagai Administrator Global untuk ID Microsoft Entra ini. Pengguna domain standar akan diminta untuk memberikan persetujuan ketika mereka pertama kali masuk ke kluster menggunakan kredensial Microsoft Entra mereka.
Tetapkan pengguna dan grup ke kluster (opsional)
Aplikasi yang terdaftar di penyewa Microsoft Entra adalah, secara default, tersedia untuk semua pengguna penyewa yang berhasil mengautentikasi. ID Microsoft Entra memungkinkan administrator dan pengembang penyewa membatasi aplikasi ke sekumpulan pengguna atau grup keamanan tertentu di penyewa.
Ikuti instruksi pada dokumentasi Microsoft Entra untuk menetapkan pengguna dan grup ke aplikasi.
Konfigurasi autentikasi OpenShift OpenID
Ambil info masuk kubeadmin
. Jalankan perintah berikut untuk menemukan kata sandi untuk pengguna kubeadmin
.
kubeadmin_password=$(az aro list-credentials \
--name $aro_cluster \
--resource-group $resource_group \
--query kubeadminPassword --output tsv)
Masuk ke server API kluster OpenShift menggunakan perintah berikut.
oc login $apiServer -u kubeadmin -p $kubeadmin_password
Buat rahasia OpenShift untuk menyimpan rahasia aplikasi Microsoft Entra.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$client_secret
Buat file oidc.yaml untuk mengonfigurasi autentikasi OpenShift OpenID terhadap MICROSOFT Entra ID.
cat > oidc.yaml<< EOF
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- name: AAD
mappingMethod: claim
type: OpenID
openID:
clientID: $app_id
clientSecret:
name: openid-client-secret-azuread
extraScopes:
- email
- profile
extraAuthorizeParameters:
include_granted_scopes: "true"
claims:
preferredUsername:
- email
- upn
name:
- name
email:
- email
issuer: https://login.microsoftonline.com/$tenant_id
EOF
Terapkan konfigurasi ke kluster.
oc apply -f oidc.yaml
Anda akan mendapatkan kembali respons yang serupa dengan yang berikut ini.
oauth.config.openshift.io/cluster configured
Verifikasi login melalui ID Microsoft Entra
Jika Anda sekarang keluar dari OpenShift Web Console dan mencoba masuk lagi, Anda akan disajikan dengan opsi baru untuk masuk dengan ID Microsoft Entra. Anda mungkin perlu menunggu selama beberapa menit.