تمكين مصادقة الهوية المدارة من Azure لمجموعات Kubernetes باستخدام kubelogin

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

يمكن من خلال استخدام Cluster Administrator تكوين Kubernetes role-based access control (Kubernetes RBAC) بناء على هوية المستخدم أو عضوية المجموعة الخاصة بالدليل. يتم توفير مصادقة Microsoft Entra لمجموعات AKS مع openID الاتصال. OpenID Connect عبارة عن طبقة هوية مبنية على أعلى بروتوكول OAuth 2.0. لمزيد من المعلومات حول الاتصال OpenID، راجع وثائق الاتصال OpenID.

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

توفر هذه المقالة تفاصيل حول كيفية تمكين الهويات المدارة واستخدامها لموارد Azure مع نظام مجموعة AKS.

القيود

فيما يلي القيود التي تدمج مصادقة الهوية المدارة من Azure على AKS.

  • لا يمكن تعطيل التكامل بمجرد إضافته.
  • لا يتم دعم الرجوع من مجموعة متكاملة إلى مجموعات معرف Microsoft Entra القديمة.
  • المجموعات التي لا تدعم Kubernetes RBAC غير قادرة على إضافة التكامل.

قبل البدء

يجب استيفاء المتطلبات التالية من أجل تثبيت ملحق 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 يجب أن يكون أكثر من إصدار واحد . وإلا، تحدث مشكلات المصادقة في الإصدار غير الصحيح.
  • إذا كنت تستخدم helm، فأنت بحاجة إلى الحد الأدنى من إصدار helm 3.3.
  • يتطلب هذا التكوين أن يكون لديك مجموعة Microsoft Entra للمجموعة الخاصة بك. تم تسجيل هذه المجموعة كمجموعة إدارة على نظام المجموعة لمنح أذونات المسؤول. إذا لم يكن لديك مجموعة Microsoft Entra موجودة، يمكنك إنشاء مجموعة باستخدام az ad group create الأمر .

إشعار

تستخدم kubelogin مجموعات Microsoft Entra المتكاملة باستخدام إصدار Kubernetes أحدث من الإصدار 1.24 التنسيق تلقائيا. بدءا من الإصدار 1.24 من Kubernetes، يكون التنسيق الافتراضي لبيانات اعتماد clusterUser لمجموعات معرف Microsoft Entra هو exec، والذي يتطلب kubelogin ثنائيا في مسار التنفيذ. لا يوجد تغيير في السلوك للمجموعات غير التابعة ل Microsoft Entra، أو مجموعات معرف Microsoft Entra التي تشغل إصدارا أقدم من 1.24. يستمر التنزيل kubeconfig الحالي في العمل. يتم تضمين تنسيق معلمة استعلام اختياري عند الحصول على بيانات اعتماد clusterUser للكتابة فوق تغيير السلوك الافتراضي. يمكنك تحديد التنسيق بشكل صريح إلى azure إذا كنت بحاجة إلى الاحتفاظ بالتنسيق القديم kubeconfig .

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

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

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

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

    az aks create -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]
    

    يحتوي الإنشاء الناجح لمجموعة معرف Microsoft Entra المدارة بواسطة AKS على القسم التالي في نص الاستجابة:

    "AADProfile": {
        "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
        ],
        "clientAppId": null,
        "managed": true,
        "serverAppId": null,
        "serverAppSecret": null,
        "tenantId": "72f9****-****-****-****-****d011db47"
    }
    

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

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

az aks update -g MyResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id-1>,<id-2> [--aad-tenant-id <id>]

يحتوي التنشيط الناجح لمجموعة Microsoft Entra ID المدارة بواسطة AKS على القسم التالي في نص الاستجابة:

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

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

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

تحذير

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

az aks update -g myResourceGroup -n myManagedCluster --enable-aad --aad-admin-group-object-ids <id> [--aad-tenant-id <id>]

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

"AADProfile": {
    "adminGroupObjectIds": [
        "5d24****-****-****-****-****afa27aed"
    ],
    "clientAppId": null,
    "managed": true,
    "serverAppId": null,
    "serverAppSecret": null,
    "tenantId": "72f9****-****-****-****-****d011db47"
    }

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

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

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. اتبع الإرشادات الخاصة بك لتسجيل الدخول.

  3. تعيين kubelogin لاستخدام Azure CLI.

    kubelogin convert-kubeconfig -l azurecli
    
  4. عرض العقد في نظام المجموعة باستخدام kubectl get nodes الأمر .

    kubectl get nodes
    

تسجيل الدخول غير التفاعلي باستخدام kubelogin

هناك بعض السيناريوهات غير التفاعلية التي لا تدعم kubectl. في هذه الحالات، استخدم kubelogin للاتصال بالمجموعة باستخدام بيانات اعتماد كيان خدمة غير تفاعلية لتنفيذ مسارات التكامل المستمر.

إشعار

تستخدم kubelogin مجموعات Microsoft Entra المتكاملة باستخدام إصدار Kubernetes أحدث من الإصدار 1.24 التنسيق تلقائيا. بدءا من الإصدار 1.24 من Kubernetes، يكون التنسيق الافتراضي لبيانات اعتماد clusterUser لمجموعات معرف Microsoft Entra هو exec، والذي يتطلب kubelogin ثنائيا في مسار التنفيذ. لا يوجد تغيير في السلوك للمجموعات غير التابعة ل Microsoft Entra، أو مجموعات معرف Microsoft Entra التي تشغل إصدارا أقدم من 1.24. يستمر التنزيل kubeconfig الحالي في العمل. يتم تضمين تنسيق معلمة استعلام اختياري عند الحصول على بيانات اعتماد clusterUser للكتابة فوق تغيير السلوك الافتراضي. يمكنك تحديد التنسيق بشكل صريح إلى azure إذا كنت بحاجة إلى الاحتفاظ بالتنسيق القديم kubeconfig .

  • عند الحصول على بيانات اعتماد clusterUser، يمكنك استخدام معلمة format الاستعلام للكتابة فوق السلوك الافتراضي. يمكنك تعيين القيمة لاستخدام azure تنسيق kubeconfig الأصلي:

    az aks get-credentials --format azure
    
  • إذا كان نظام المجموعة المتكاملة من Microsoft Entra يستخدم الإصدار 1.24 من Kubernetes أو أقل، فستحتاج إلى تحويل تنسيق kubeconfig يدويا.

    export KUBECONFIG=/path/to/kubeconfig
    kubelogin convert-kubeconfig
    

إشعار

إذا تلقيت خطأ الرسالة : تمت إزالة المكون الإضافي Azure auth.، تحتاج إلى تشغيل الأمر kubelogin convert-kubeconfig لتحويل تنسيق kubeconfig يدويا.

لمزيد من المعلومات، يمكنك الرجوع إلى Azure Kubelogin Known Issues.

استكشاف مشكلات الوصول وإصلاحها

هام

تشير الخطوة الموضحة في هذا القسم إلى أسلوب مصادقة بديل مقارنة بمصادقة مجموعة Microsoft Entra العادية. استخدم هذا الخيار فقط في حالة الطوارئ.

إذا كنت تفتقر إلى الوصول الإداري إلى مجموعة Microsoft Entra صالحة، يمكنك اتباع هذا الحل البديل. سجل الدخول باستخدام حساب عضو في دور مجموعة خدمة Azure Kubernetes مسؤول وامنح بيانات اعتماد مسؤول المجموعة أو المستأجر للوصول إلى مجموعتك.

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