تمكين مصادقة الهوية المدارة من Azure لمجموعات Kubernetes باستخدام kubelogin
يبسط تكامل Microsoft Entra المدار بواسطة AKS عملية تكامل Microsoft Entra. في السابق، طلب منك إنشاء تطبيق عميل وخادم، وكان على مستأجر Microsoft Entra تعيين أذونات دور قراء الدليل. الآن، يدير موفر موارد AKS تطبيقات العميل والخادم نيابة عنك.
يمكن من خلال استخدام Cluster Administrator تكوين Kubernetes role-based access control (Kubernetes RBAC) بناء على هوية المستخدم أو عضوية المجموعة الخاصة بالدليل. يتم توفير مصادقة Microsoft Entra لمجموعات AKS مع OpenID Connect. OpenID Connect عبارة عن طبقة هوية مبنية على أعلى بروتوكول OAuth 2.0. لمزيد من المعلومات حول OpenID Connect، راجع وثائق OpenID Connect.
تعرف على المزيد حول تدفق تكامل 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
إنشاء مجموعة جديدة
إنشاء مجموعة موارد Azure باستخدام
az group create
الأمر .az group create --name myResourceGroup --location centralus
قم بإنشاء مجموعة AKS وتمكين الوصول الإداري لمجموعة Microsoft Entra باستخدام
az aks create
الأمر .az aks create \ --resource-group myResourceGroup \ --name myManagedCluster \ --enable-aad \ --aad-admin-group-object-ids <id> [--aad-tenant-id <id>] \ --generate-ssh-keys
يحتوي الإنشاء الناجح لمجموعة معرف 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 --resource-group MyResourceGroup --name 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 --resource-group myResourceGroup --name 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"
}
الوصول إلى نظام المجموعة الممكن
احصل على بيانات اعتماد المستخدم للوصول إلى نظام المجموعة باستخدام
az aks get-credentials
الأمر .az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
اتبع الإرشادات الخاصة بك لتسجيل الدخول.
تعيين
kubelogin
لاستخدام Azure CLI.kubelogin convert-kubeconfig -l azurecli
عرض العقد في نظام المجموعة باستخدام
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 وامنح بيانات اعتماد مسؤول المجموعة أو المستأجر للوصول إلى مجموعتك.
الخطوات التالية
- تعرف على تكامل Microsoft Entra مع Kubernetes RBAC.
- تعرف على المزيد عن مفاهيم الهوية الخاصة ب AKS و Kubernetes.
- تعرف على كيفية استخدام kubelogin لجميع أساليب مصادقة Microsoft Entra المدعومة في AKS.
- استخدم قوالب Azure Resource Manager (ARM) لإنشاء مجموعات Microsoft Entra ID ممكنة بواسطة AKS.
Azure Kubernetes Service