تكوين مصادقة Microsoft Entra لنظام مجموعة Azure Red Hat OpenShift 4 (CLI)
إذا اخترت تثبيت CLI واستخدامه محليا، تتطلب هذه المقالة تشغيل الإصدار 2.30.0 من Azure CLI أو إصدار أحدث. قم بتشغيل az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
استرداد عناوين URL الخاصة بالمجموعة التي سيتم استخدامها لتكوين تطبيق Microsoft Entra.
تعيين المتغيرات لمجموعة الموارد واسم نظام المجموعة.
استبدل <resource_group> باسم مجموعة الموارد aro_cluster<> باسم مجموعتك.
resource_group=<resource_group>
aro_cluster=<aro_cluster>
إنشاء عنوان URL لرد اتصال OAuth الخاص بالمجموعة وتخزينه في oauthCallbackURL متغير.
إشعار
يجب أن يتطابق AAD
القسم في عنوان URL لرد اتصال OAuth مع اسم موفر هوية OAuth الذي ستقوم بإعداده لاحقا.
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)
يختلف تنسيق oauthCallbackURL قليلا مع المجالات المخصصة:
قم بتشغيل الأمر التالي إذا كنت تستخدم مجالا مخصصا، على سبيل المثال.
contoso.com
oauthCallbackURL=https://oauth-openshift.apps.$domain/oauth2callback/AAD
إذا كنت لا تستخدم مجالا مخصصا،
$domain
فستكون سلسلة alnum ثمانية أحرف ويتم توسيعها بواسطة$location.aroapp.io
.oauthCallbackURL=https://oauth-openshift.apps.$domain.$location.aroapp.io/oauth2callback/AAD
إشعار
يجب أن يتطابق AAD
القسم في عنوان URL لرد اتصال OAuth مع اسم موفر هوية OAuth الذي ستقوم بإعداده لاحقا.
إنشاء تطبيق Microsoft Entra للمصادقة
استبدل <client_secret> بكلمة مرور آمنة للتطبيق.
client_secret=<client_secret>
إنشاء تطبيق Microsoft Entra واسترداد معرف التطبيق الذي تم إنشاؤه.
app_id=$(az ad app create \
--query appId -o tsv \
--display-name aro-auth \
--reply-urls $oauthCallbackURL \
--password $client_secret)
استرداد معرف المستأجر للاشتراك الذي يمتلك التطبيق.
tenant_id=$(az account show --query tenantId -o tsv)
إنشاء ملف بيان لتعريف المطالبات الاختيارية لتضمينها في الرمز المميز للمعرف
يمكن لمطوري التطبيقات استخدام المطالبات الاختيارية في تطبيقات Microsoft Entra الخاصة بهم لتحديد المطالبات التي يريدونها في الرموز المميزة المرسلة إلى تطبيقهم.
يمكنك استخدام المطالبات الاختيارية لأجل:
- اختيار مطالبات إضافية لتضمينها في الرموز المميزة للتطبيق.
- تغيير سلوك مطالبات معينة يرجعها معرف Microsoft Entra في الرموز المميزة.
- إضافة المطالبات المخصصة للتطبيق والوصول إليها.
سنقوم بتكوين OpenShift لاستخدام المطالبة email
ونعود إلى upn
لتعيين اسم المستخدم المفضل عن طريق إضافة upn
كجزء من الرمز المميز للمعرف الذي تم إرجاعه بواسطة معرف Microsoft Entra.
إنشاء ملف manifest.json لتكوين تطبيق Microsoft Entra.
cat > manifest.json<< EOF
[{
"name": "upn",
"source": null,
"essential": false,
"additionalProperties": []
},
{
"name": "email",
"source": null,
"essential": false,
"additionalProperties": []
}]
EOF
تحديث المطالبات الاختيارية لتطبيق Microsoft Entra باستخدام بيان
az ad app update \
--set optionalClaims.idToken=@manifest.json \
--id $app_id
تحديث أذونات نطاق تطبيق Microsoft Entra
لكي نتمكن من قراءة معلومات المستخدم من معرف Microsoft Entra، نحتاج إلى تحديد النطاقات المناسبة.
أضف إذنا لنطاق Azure Active Directory Graph.User.Read لتمكين تسجيل الدخول وقراءة ملف تعريف المستخدم.
az ad app permission add \
--api 00000002-0000-0000-c000-000000000000 \
--api-permissions 311a71cc-e848-46a1-bdf8-97ff7156d8e6=Scope \
--id $app_id
إشعار
يمكنك تجاهل الرسالة بأمان لمنح الموافقة ما لم تتم مصادقتك كمسؤول مسؤول عمومي لمعرف Microsoft Entra هذا. سيطلب من مستخدمي المجال القياسي منح الموافقة عند تسجيل الدخول لأول مرة إلى نظام المجموعة باستخدام بيانات اعتماد Microsoft Entra الخاصة بهم.
تعيين المستخدمين والمجموعات إلى نظام المجموعة (اختياري)
التطبيقات المسجلة في مستأجر Microsoft Entra متاحة بشكل افتراضي لجميع مستخدمي المستأجر الذين يصادقون بنجاح. يسمح معرف Microsoft Entra لمسؤولي المستأجرين والمطورين بتقييد تطبيق لمجموعة معينة من المستخدمين أو مجموعات الأمان في المستأجر.
اتبع الإرشادات الموجودة في وثائق Microsoft Entra لتعيين المستخدمين والمجموعات إلى التطبيق.
تكوين مصادقة OpenShift OpenID
kubeadmin
استرداد بيانات الاعتماد. شغّل الأمر التالي للعثور على كلمة المرور للمستخدم kubeadmin
.
kubeadmin_password=$(az aro list-credentials \
--name $aro_cluster \
--resource-group $resource_group \
--query kubeadminPassword --output tsv)
سجل الدخول إلى خادم API الخاص بمجموعة OpenShift باستخدام الأمر التالي.
oc login $apiServer -u kubeadmin -p $kubeadmin_password
إنشاء سر OpenShift لتخزين سر تطبيق Microsoft Entra.
oc create secret generic openid-client-secret-azuread \
--namespace openshift-config \
--from-literal=clientSecret=$client_secret
إنشاء ملف oidc.yaml لتكوين مصادقة OpenShift OpenID مقابل معرف Microsoft Entra.
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
تطبيق التكوين على نظام المجموعة.
oc apply -f oidc.yaml
سوف تحصل على استجابة مشابهة للآتي.
oauth.config.openshift.io/cluster configured
التحقق من تسجيل الدخول من خلال معرف Microsoft Entra
إذا قمت الآن بتسجيل الخروج من OpenShift Web Console وحاولت تسجيل الدخول مرة أخرى، فسيتم تقديم خيار جديد لتسجيل الدخول باستخدام معرف Microsoft Entra. قد تحتاج إلى الانتظار لبضع دقائق.