تمكين مصادقة Microsoft Entra ID لمستوى التحكم AKS

يبسط تكامل Microsoft Entra عملية دمج Microsoft Entra الخاصة بها. في السابق، طلب منك إنشاء تطبيق عميل وخادم، وكان على مستأجر Microsoft Entra تعيين أذونات دور قراء الدليل. الآن، يدير موفر موارد Azure Kubernetes Service (AKS) تطبيقات العميل والخادم نيابة عنك.

يمكن من خلال استخدام Cluster Administrator تكوين Kubernetes role-based access control (Kubernetes RBAC) بناء على هوية المستخدم أو عضوية المجموعة الخاصة بالدليل.

تعرف على المزيد حول تدفق تكامل Microsoft Entra في وثائق Microsoft Entra.

القيود

لا يمكن تعطيل تكامل Microsoft Entra بعد تفعيله على العنقود.

قَبلَ البدء

لتثبيت ملحق AKS، تحقق من أن لديك العناصر التالية:

  • لديك إصدار Azure CLI 2.29.0 أو أحدث مثبت ومكون. للعثور على الإصدار، قم بتشغيل az --version الأمر . إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
  • تحتاج مع kubectl الحد الأدنى من الإصدار 1.18.1 أو kubelogin. باستخدام Azure CLI والوحدة النمطية Azure PowerShell، يتم تضمين هذين الأمرين وإدارتهم تلقائيا. بمعنى أنه تتم ترقيتها بشكل افتراضي ولا يلزم تشغيلها az aks install-cli أو يوصى بها. إذا كنت تستخدم مسارا تلقائيا، فأنت بحاجة إلى إدارة الترقيات للإصدار الصحيح أو الأحدث. يجب ألا يكون الفرق بين الإصدارات الثانوية من Kubernetes ولا kubectl يجب أن يكون أكثر من إصدار واحد . وإلا، تحدث مشكلات المصادقة في الإصدار غير الصحيح.
  • يتطلب هذا التكوين أن يكون لديك مجموعة Microsoft Entra للمجموعة الخاصة بك. تم تسجيل هذه المجموعة كمجموعة إدارة على نظام المجموعة لمنح أذونات المسؤول. إذا لم يكن لديك مجموعة Microsoft Entra موجودة، يمكنك إنشاء مجموعة باستخدام az ad group create الأمر .

تمكين التكامل على نظام مجموعة AKS

أولا، قم بتعيين متغيرات البيئة لمجموعة الموارد، واسم العنقود، ومعرفات كائنات مجموعة إدارة Microsoft Entra، ومعرف المستأجر. أعد استخدام هذه المتغيرات في الأوامر التالية.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myManagedCluster"
export AAD_ADMIN_GROUP_OBJECT_IDS="<group-object-id>"  # comma-separated for multiple groups
export AAD_TENANT_ID="<tenant-id>"
export LOCATION="centralus"

إنشاء مجموعة جديدة

  1. أنشئ مجموعة موارد Azure باستخدام أمر az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. قم بإنشاء مجموعة AKS وتمكين الوصول الإداري لمجموعة Microsoft Entra باستخدام az aks create الأمر .

    az aks create \
      --resource-group $RESOURCE_GROUP \
      --name $CLUSTER_NAME \
      --enable-aad \
      --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
      --aad-tenant-id $AAD_TENANT_ID \
      --generate-ssh-keys
    

    إنشاء مجموعة Microsoft Entra ID بنجاح له القسم التالي في جسم الاستجابة.

    "AADProfile": {
      "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      ],
      "clientAppId": null,
      "managed": true,
      "serverAppId": null,
      "serverAppSecret": null,
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    }
    

استخدام نظام مجموعة موجود

قم بتمكين تكامل Microsoft Entra على عنقود Kubernetes RBAC الحالي باستخدام الأمر az aks update . تأكد من تعيين مجموعة المسؤولين للاحتفاظ بالوصول إلى مجموعتك.

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

إذا تم تفعيل مجموعة معرفات Microsoft Entra بنجاح له القسم التالي في جسم الاستجابة:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

ترحيل نظام المجموعة القديمة إلى التكامل

إذا كان مجموعتك تستخدم تكامل Microsoft Entra القديم، يمكنك الترقية إلى تكامل Microsoft Entra عبر az aks update الأمر.

التحذير

قد تواجه مجموعات الطبقة المجانية تعطل خادم واجهة برمجة التطبيقات أثناء الترقية. نوصي بالترقية خلال ساعات العمل. بعد الترقية ، يتغير kubeconfig المحتوى. تحتاج إلى التشغيل az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> لدمج بيانات الاعتماد الجديدة في الملف kubeconfig .

az aks update \
  --resource-group $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

الترحيل الناجح لمجموعة معرفات Microsoft Entra يحتوي على القسم التالي في جسم الرد:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

الوصول إلى نظام المجموعة الممكن

  1. احصل على بيانات اعتماد المستخدم للوصول إلى نظام المجموعة باستخدام az aks get-credentials الأمر .

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. اتبع تعليمات تسجيل الدخول.

  3. عرض العقد في نظام المجموعة باستخدام kubectl get nodes الأمر .

    kubectl get nodes
    

تستخدم kubelogin المجموعات التي تعمل Kubernetes 1.24 أو أحدثها تلقائيا تنسيق exec-plugin، لذا لا حاجة لتحويل يدوي kubeconfig لتسجيل الدخول التفاعلي عبر Azure CLI. للسيناريوهات غير التفاعلية مثل خطوط أنابيب CI، أو لاستخدام طريقة مصادقة مختلفة (مبدأ الخدمة، الهوية المدارة، هوية عبء العمل، أو رمز الجهاز)، انظر استخدام كوبلوگين لتوثيق المستخدمين في AKS.

الوصول الزجاجي القابل للكسر

في حالة نادرة لا يعمل فيها تسجيل الدخول عبر Microsoft Entra ID إلى خادم Kubernetes API الخاص بمجموعتك — على سبيل المثال، أثناء حادث خدمة Microsoft Entra أوسع — يمكنك العودة إلى حساب المسؤول المحلي للمجموعة للاستمرار في تشغيل العنقود حتى يتم استعادة تسجيل الدخول القائم على Entra.

ملاحظة

هذا الخيار الاحتياطي مطلوب فقط عندما لا يكون تسجيل الدخول القائم على إنترا متاحا بحد ذاته. إذا كانت مشكلتك هي مجموعة مسؤول غير مضبوطة (على سبيل المثال، تم حذف المجموعة أو تعيين معرف كائن خاطئ)، فلا تحتاج لذلك — قم بتحديث مجموعة الإدارة مباشرة باستخدام az aks update --aad-admin-group-object-ids حساب يحمل الإذن Microsoft.ContainerService/managedClusters/write .

هام

هذا السير يتجاوز مصادقة Microsoft Entra (Microsoft Entra). استخدمها فقط كخيار احتياطي مؤقت، وقم بتعطيل الحسابات المحلية مرة أخرى بمجرد استعادة تسجيل الدخول عبر Microsoft Entra.

لاستخدام مسار كسر الزجاج، تحتاج إلى دور مساهم خدمة Azure Kubernetes على مورد العنقود. يمنح هذا الدور الإذن Microsoft.ContainerService/managedClusters/write اللازم لإعادة تفعيل الحسابات المحلية، بالإضافة إلى الوصول إلى بيانات اعتماد مسؤول العنقود المحلي. يتم تقييمه بواسطة Azure Resource Manager، لذا يعمل بشكل مستقل عن مسار تسجيل الدخول في Microsoft Entra إلى خادم واجهة برمجة تطبيقات Kubernetes.

  1. إذا تم تعطيل الحسابات المحلية في المجموعة، أعد تفعيلها مؤقتا.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. استرجع بيانات اعتماد مسؤول العنقود المحلي باستخدام az aks get-credentials الأمر الذي يحتوي على العلم --admin . هذه الشهادة هي kubeconfig قائم على الشهادات يتجاوز Microsoft Entra.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. تستخدم kubectl لتشغيل العنقود عندما يكون Microsoft Entra غير متاح. بمجرد أن يبدأ تسجيل الدخول في Microsoft Entra للعمل مرة أخرى، قم بتعطيل الحسابات المحلية لإعادة المجموعة إلى خطها الأساسي الآمن.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --disable-local-accounts
    

الخطوات التالية