إنشاء موفر OpenID Connect على خدمة Azure Kubernetes (AKS)
يقوم OpenID Connect (OIDC) بتوسيع بروتوكول التخويل OAuth 2.0 للاستخدام كبروتوكول مصادقة آخر صادر عن Microsoft Entra ID. يمكنك استخدام OIDC لتمكين تسجيل الدخول الأحادي (SSO) بين التطبيقات التي تدعم OAuth على نظام مجموعة Azure Kubernetes Service (AKS) باستخدام رمز أمان يسمى رمز مميز للمعرف. باستخدام نظام مجموعة AKS، يمكنك تمكين مصدر OpenID Connect (OIDC)، الذي يسمح لمعرف Microsoft Entra، أو النظام الأساسي الآخر لإدارة الهوية والوصول لموفر السحابة، باكتشاف مفاتيح التوقيع العامة لخادم API.
تقوم AKS بتدوير المفتاح تلقائيا ودوريا. إذا كنت لا تريد الانتظار، يمكنك تدوير المفتاح يدويا وعلى الفور. الحد الأقصى لعمر الرمز المميز الصادر عن موفر OIDC هو يوم واحد.
تحذير
يؤدي تمكين مصدر OIDC على نظام مجموعة موجود إلى تغيير مصدر الرمز المميز لحساب الخدمة الحالي إلى قيمة جديدة، ما قد يتسبب في تعطل الوقت أثناء إعادة تشغيل خادم API. إذا ظلت pods الخاصة بالتطبيق باستخدام رمز الخدمة المميز في حالة فشل بعد تمكين مصدر OIDC، نوصيك بإعادة تشغيل pods يدويا.
في هذه المقالة، ستتعلم كيفية إنشاء مصدر OIDC وتحديثه وإدارته لنظام المجموعة.
هام
بعد تمكين مصدر OIDC على نظام المجموعة، لا يتم دعم تعطيله.
يجب تحديث الرمز المميز بشكل دوري. إذا كنت تستخدم SDK، يكون التدوير تلقائيا. وإلا، تحتاج إلى تحديث الرمز المميز يدويا كل 24 ساعة.
المتطلبات الأساسية
- إصدار Azure CLI 2.42.0 أو أعلى. شغّل
az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI. - تدعم AKS مصدر OIDC على الإصدار 1.22 والإصدارات الأحدث.
إنشاء نظام مجموعة AKS مع مصدر OIDC
يمكنك إنشاء نظام مجموعة AKS باستخدام الأمر az aks create مع المعلمة --enable-oidc-issuer
لتمكين مصدر OIDC. ينشئ المثال التالي مجموعة تسمى myAKSCluster مع عقدة واحدة في myResourceGroup:
az aks create \
--resource-group myResourceGroup \
--name myAKSCluster \
--node-count 1 \
--enable-oidc-issuer \
--generate-ssh-keys
تحديث نظام مجموعة AKS مع مصدر OIDC
يمكنك تحديث نظام مجموعة AKS باستخدام الأمر az aks update مع المعلمة --enable-oidc-issuer
لتمكين مصدر OIDC. يحدث المثال التالي مجموعة تسمى myAKSCluster:
az aks update --resource-group myResourceGroup --name myAKSCluster --enable-oidc-issuer
إظهار عنوان URL لمصدر OIDC
للحصول على عنوان URL لمصدر OIDC، قم بتشغيل الأمر az aks show . استبدل القيم الافتراضية لاسم نظام المجموعة واسم مجموعة الموارد.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
بشكل افتراضي، يتم تعيين المصدر لاستخدام عنوان URL https://{region}.oic.prod-aks.azure.com
الأساسي ، حيث تطابق قيمة الموقع {region}
الذي يتم نشر نظام مجموعة AKS فيه.
تدوير مفتاح OIDC
لتدوير مفتاح OIDC، قم بتشغيل الأمر az aks oidc-issuer . استبدل القيم الافتراضية لاسم نظام المجموعة واسم مجموعة الموارد.
az aks oidc-issuer rotate-signing-keys --name myAKSCluster --resource-group myResourceGroup
هام
بمجرد تدوير المفتاح، تنتهي صلاحية المفتاح القديم (key1) بعد 24 ساعة. كل من المفتاح القديم (key1) والمفتاح الجديد (key2) صالحان خلال فترة ال 24 ساعة بعد التدوير. إذا كنت تريد إبطال المفتاح القديم (key1) على الفور، يجب تدوير المفتاح OIDC مرتين وإعادة تشغيل pods باستخدام الرموز المميزة لحساب الخدمة المتوقعة. باستخدام هذه العملية، يكون المفتاح 2 والمفتاح 3 صالحين، والمفتاح1 غير صالح.
تحقق من مفاتيح OIDC
الحصول على عنوان URL لمصدر OIDC
للحصول على عنوان URL لمصدر OIDC، قم بتشغيل الأمر az aks show . استبدل القيم الافتراضية لاسم نظام المجموعة واسم مجموعة الموارد.
az aks show --name myAKScluster --resource-group myResourceGroup --query "oidcIssuerProfile.issuerUrl" -o tsv
يجب أن يكون الإخراج مشابهًا لما يلي:
https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/11111111-1111-1111-1111-111111111111/
بشكل افتراضي، يتم تعيين المصدر لاستخدام عنوان URL https://{region}.oic.prod-aks.azure.com/{tenant_id}/{uuid}
الأساسي ، حيث تطابق قيمة الموقع {region}
الذي يتم نشر نظام مجموعة AKS فيه. تمثل القيمة {uuid}
مفتاح OIDC، وهو المعرف الفريد العمومي الذي تم إنشاؤه عشوائيا لكل نظام مجموعة غير قابل للتغيير.
الحصول على مستند الاكتشاف
للحصول على مستند الاكتشاف، انسخ عنوان URL https://(OIDC issuer URL).well-known/openid-configuration
وافتحه في المستعرض.
يجب أن يكون الإخراج مشابهًا لما يلي:
{
"issuer": "https://eastus.oic.prod-aks.azure.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/00000000-0000-0000-0000-000000000000/",
"jwks_uri": "https://eastus.oic.prod-aks.azure.com/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/openid/v1/jwks",
"response_types_supported": [
"id_token"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
]
}
الحصول على مستند مجموعة JWK
للحصول على مستند JWK Set، انسخ jwks_uri
من مستند الاكتشاف والصقه في شريط عناوين المستعرض.
يجب أن يكون الإخراج مشابهًا لما يلي:
{
"keys": [
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
},
{
"use": "sig",
"kty": "RSA",
"kid": "xxx",
"alg": "RS256",
"n": "xxxx",
"e": "AQAB"
}
]
}
أثناء تدوير المفتاح، يوجد مفتاح آخر موجود في مستند الاكتشاف.
الخطوات التالية
- راجع تكوين إنشاء علاقة ثقة بين تطبيق وموفر هوية خارجي لفهم كيفية إنشاء بيانات اعتماد هوية موحدة لعلاقة ثقة بين تطبيق على نظام المجموعة وموفر هوية خارجي.
- مراجعة هوية حمل عمل Microsoft Entra (معاينة). يتكامل أسلوب المصادقة هذا مع قدرات Kubernetes الأصلية للاتحاد مع أي موفري هوية خارجيين نيابة عن التطبيق.
- راجع حركة مرور شبكة الجراب الآمنة لفهم كيفية استخدام محرك نهج الشبكة وإنشاء نهج شبكة Kubernetes للتحكم في تدفق نسبة استخدام الشبكة بين القرون في AKS.
Azure Kubernetes Service