تكوين مصادقة 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. قد تحتاج إلى الانتظار لبضع دقائق.

Log in screen with Microsoft Entra option