المصادقة باستخدام سجل حاوية Azure

هناك عدة طرق للمصادقة باستخدام سجل حاوية Azure، كل منها ينطبق على سيناريو واحد أو أكثر من سيناريوهات استخدام السجل.

تتضمن الطرق الموصى بها ما يلي:

إذا كنت تستخدم سجل حاوية مع Azure Kubernetes Service (AKS) أو مجموعة Kubernetes أخرى، فراجع سيناريوهات للمصادقة مع Azure Container Registry من Kubernetes.

خيارات المصادقة

يسرد الجدول التالي أساليب المصادقة المتوفرة والسيناريوهات النموذجية. انظر المحتوى المرتبط للحصول على التفاصيل.

الأسلوب كيفية المصادقة السيناريوهات التحكم في الوصول إلى Azure استناداً إلى الدور (Azure RBAC) التقييدات
الهوية الفردية لـ AD  az acr login في Azure CLI

Connect-AzContainerRegistry في Azure PowerShell
دفع/سحب تفاعلي من قِبَل المطورين والمختبرين نعم يجب تجديد رمز AD المميز كل 3 ساعات
كيان خدمة AD  docker login

az acr login في Azure CLI

Connect-AzContainerRegistry في Azure PowerShell

إعدادات تسجيل الدخول إلى السجل في واجهات برمجة التطبيقات أو الأدوات

بيان سرية سحب Kubernetes   
دفع غير مراقب من مسار CI/CD

سحب غير مراقب إلى Azure أو الخدمات الخارجية
نعم فترة انتهاء صلاحية كلمة مرور SP الافتراضية هي سنة واحدة
الهوية المُدارة لموارد Azure  docker login

az acr login في Azure CLI

Connect-AzContainerRegistry في Azure PowerShell
دفع غير مراقب من مسار Azure CI/CD

سحب غير مراقب إلى خدمات Azure

نعم استخدم فقط من خدمات Azure المحددة التي تدعم الهويات المدارة لموارد Azure
الهوية المُدارة لمجموعة AKS  أرفق التسجيل عند إنشاء كتلة AKS أو تحديثها سحب غير مراقب إلى مجموعة AKS في نفس الاشتراك أو اشتراك مختلف لا، اسحب الوصول فقط متوفر فقط مع مجموعة AKS

لا يمكن استخدامها للمصادقة عبر المستأجرين
كيان خدمة مجموعة AKS  تمكين عند إنشاء مجموعة AKS أو تحديثها سحب غير مراقب إلى كتلة AKS من التسجيل في مستأجر AD آخر لا، اسحب الوصول فقط متوفر فقط مع مجموعة AKS
مستخدم مسؤول  docker login  دفع/سحب تفاعلي من قِبَل المطور أو المختبِر الفردي

نشر المدخل للصورة من التسجيل إلى Azure App Service أو مثيلات حاوية Azure
لا، اسحب دائماً وادفع الوصول حساب واحد لكل سجل، غير مستحسن لعدة مستخدمين
رمز الوصول المحدد في نطاق المستودع  docker login

az acr login في Azure CLI

Connect-AzContainerRegistry في Azure PowerShell

بيان سرية سحب Kubernetes 
دفع/سحب تفاعلي إلى المستودع بواسطة مطور أو مختبِر فردي

سحب غير مراقب من المستودع بواسطة نظام فردي أو جهاز خارجي
نعم غير متكامل حالياً مع هوية AD

تسجيل الدخول الفردي باستخدام Azure AD

عند العمل مع السجل الخاص بك مباشرةً، مثل سحب الصور ودفعها من محطة عمل تطوير إلى سجل قمت بإنشائه، قم بالمصادقة باستخدام هوية Azure الفردية الخاصة بك. قم بتسجيل الدخول إلى Azure CLI باستخدام تسجيل الدخول إلى az، ثم قم بتشغيل الأمر az acr login:

az login
az acr login --name <acrName>

عند تسجيل الدخول باستخدام az acr login، يستخدم CLI الرمز المميز الذي تم إنشاؤه عند تنفيذ az login لمصادقة جلستك بسلاسة مع السجل الخاص بك. لإكمال تدفق المصادقة، يجب تثبيت Docker CLI وDocker daemon وتشغيلهما في بيئتك. يستخدم az acr login عميل Docker لتعيين رمز Azure Active Directory المميز في ملف docker.config. بمجرد تسجيل الدخول بهذه الطريقة، يتم تخزين بيانات الاعتماد الخاصة بك مؤقتاً، ولا تتطلب أوامر docker اللاحقة في جلستك اسم مستخدم أو كلمة مرور.

تلميح

استخدم كذلك az acr login لمصادقة هوية فردية عندما تريد دفع أو سحب عناصر غير صور Docker إلى السجل الخاص بك، مثل عناصر OCI.

للوصول إلى السجل، يكون الرمز المميز المستخدم بواسطة az acr login صالحاً لمدة 3 ساعات، لذلك نوصي بتسجيل الدخول دائماً إلى السجل قبل تشغيل أمر docker. إذا انتهت صلاحية الرمز المميز الخاص بك، فيمكنك تحديثه باستخدام الأمر az acr login مرة أخرى لإعادة المصادقة.

يوفر استخدام az acr login مع هويات Azure التحكم في الوصول المستند إلى الدور Azure (Azure RBAC). بالنسبة لبعض السيناريوهات، قد ترغب في تسجيل الدخول إلى سجل بهويتك الفردية في Azure AD أو تكوين مستخدمي Azure الآخرين باستخدام أدوار وأذونات Azure المحددة. بالنسبة للسيناريوهات عبر الخدمات أو للتعامل مع احتياجات مجموعة العمل أو سير عمل التطوير حيث لا تريد إدارة الوصول الفردي، يمكنك أيضاً تسجيل الدخول باستخدام هوية مُدارة لموارد Azure.

تسجيل الدخول إلى az acr باستخدام --expose-token

في بعض الحالات، تحتاج إلى المصادقة مع az acr login عندما لا يعمل Docker daemon في بيئتك. على سبيل المثال، قد تحتاج إلى تشغيل az acr login في برنامج نصي في Azure Cloud Shell، والذي يوفر Docker CLI ولكنه لا يقوم بتشغيل Docker daemon.

بالنسبة لهذا السيناريو، قم بتشغيل az acr login أولاً باستخدام المعلمة --expose-token. يعرض هذا الخيار رمز وصول بدلاً من تسجيل الدخول من خلال Docker CLI.

az acr login --name <acrName> --expose-token

يعرض الإخراج رمز الوصول المميز، والمختصر هنا:

{
  "accessToken": "eyJhbGciOiJSUzI1NiIs[...]24V7wA",
  "loginServer": "myregistry.azurecr.io"
}

لمصادقة السجل، نوصي بتخزين بيانات اعتماد الرمز المميز في مكان آمن واتباع الممارسات الموصى بها لإدارة بيانات اعتماد تسجيل الدخول إلى docker. على سبيل المثال، قم بتخزين قيمة الرمز المميز في متغير بيئة:

TOKEN=$(az acr login --name <acrName> --expose-token --output tsv --query accessToken)

بعد ذلك، قم بتشغيل docker login، ممرراً 00000000-0000-0000-0000-000000000000 كاسم مستخدم واستخدم رمز الوصول باعتباره كلمة المرور:

docker login myregistry.azurecr.io --username 00000000-0000-0000-0000-000000000000 --password $TOKEN

وبالمثل، يمكنك استخدام الرمز الذي تم إرجاعه بواسطة az acr login مع الأمر helm registry login للمصادقة مع السجل:

echo $TOKEN | helm registry login myregistry.azurecr.io \
            --username 00000000-0000-0000-0000-000000000000 \
            --password-stdin

كيان الخدمة

إذا عيّنت كيان خدمة إلى السجل الخاص بك، فيمكن للتطبيق أو الخدمة التي تقدمها استخدامها للمصادقة بدون أجهزة ملحقة. تسمح كيانات الخدمةبالتحكم في الوصول المستند إلى الدور في Azure (Azure RBAC) للسجل، ويمكنك تعيين عدة كيانات خدمة إلى أحد السجلات. تتيح لك كيانات الخدمة المتعددة تحديد وصول مختلف لتطبيقات مختلفة.

تشمل الأدوار المتاحة لسجل الحاوية ما يلي:

  • AcrPull: سحب

  • AcrPush: سحب ودفع

  • المالك: سحب الأدوار ودفعها وتعيينها إلى مستخدمين آخرين

للحصول على قائمة كاملة بالأدوار، راجع أدوار وأذونات سجل حاوية Azure.

للحصول على البرامج النصية CLI لإنشاء كيان خدمة للمصادقة باستخدام سجل حاوية Azure، والمزيد من الإرشادات، راجع مصادقة سجل حاوية Azure مع كيان الخدمة.

حساب المسؤول

يتضمن كل سجل حاوية حساب مستخدم مسؤول، والذي يتم تعطيله افتراضياً. يمكنك تمكين المستخدم المسؤول وإدارة بيانات الاعتماد الخاصة به في مدخل Azure، أو باستخدام Azure CLI أو Azure PowerShell أو أدوات Azure الأخرى. يتمتع حساب المسؤول بأذونات كاملة للتسجيل.

حساب المسؤول مطلوب حالياً لبعض السيناريوهات لنشر صورة من سجل حاوية إلى خدمات Azure معينة. على سبيل المثال، يكون حساب المسؤول مطلوباً عند استخدام مدخل Azure لنشر صورة حاوية من سجل مباشرةً إلى مثيلات حاوية Azure أو Azure Web Apps للحاويات.

هام

تم تصميم حساب المسؤول لمستخدم واحد للوصول إلى السجل، وذلك بشكل أساسي لأغراض الاختبار. لا نوصي بمشاركة بيانات اعتماد حساب المسؤول بين عدة مستخدمين. يظهر جميع المستخدمين الذين يقومون بالمصادقة باستخدام حساب المسؤول كمستخدم واحد يتمتع بإمكانية الدفع والسحب إلى السجل. يؤدي تغيير هذا الحساب أو تعطيله إلى تعطيل الوصول إلى السجل لجميع المستخدمين الذين يستخدمون بيانات اعتماده. يوصى بالهوية الفردية للمستخدمين ومبادئ الخدمة لسيناريوهات بدون أجهزة ملحقة.

يتم تزويد حساب المسؤول بكلمتين من كلمات المرور، ويمكن إعادة إنشاء كل منهما. تتوفر كلمات المرور الجديدة التي تم إنشاؤها لحسابات المسؤول على الفور. سيستغرق إنشاء كلمات المرور لحسابات المسؤول 60 ثانية لتكرارها وإتاحتها. تسمح لك كلمتا المرور بالحفاظ على الاتصال بالسجل باستخدام كلمة مرور واحدة بينما تقوم بإعادة إنشاء الأخرى. إذا تم تمكين حساب المسؤول، فيمكنك تمرير اسم المستخدم وكلمة المرور إلى الأمر docker login عند مطالبتك بالمصادقة الأساسية للسجل. على سبيل المثال:

docker login myregistry.azurecr.io

للحصول على الممارسات الموصى بها لإدارة بيانات اعتماد تسجيل الدخول، راجع مرجع الأمر docker login.

لتمكين المستخدم المسؤول لسجل موجود، يمكنك استخدام المعلمة --admin-enabled للأمر az acr update في Azure CLI:

az acr update -n <acrName> --admin-enabled true

يمكنك تمكين المستخدم المسؤول في مدخل Azure من خلال التنقل في السجل، وتحديد مفاتيح الوصول ضمن الإعدادات، ثم تمكين ضمن المستخدم المسؤول.

Enable admin user UI in the Azure portal

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