مشاركة عبر


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

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

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

  • المصادقة على السجل مباشرة عبر تسجيل الدخول الفردي
  • يمكن للتطبيقات ومنسقي الحاويات إجراء مصادقة غير مراقبة أو "بدون عنوان" باستخدام كيان خدمة Microsoft Entra

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

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

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

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

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

az acr login في Azure CLI

Connect-AzContainerRegistry في Azure PowerShell

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

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

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

az acr login في Azure CLI

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

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

للحصول على قائمة بسيناريوهات تعيين دور الهوية المدارة، راجع سيناريوهات تعيين دور ACR.
‏‏نعم‬

تعيينات دور Microsoft Entra RBAC مع أدوار مضمنة في ACR

التحكم في الوصول المستند إلى سمة Microsoft Entra (ABAC) لأذونات المستودع المستندة إلى Microsoft Entra 
استخدم فقط من خدمات Azure المحددة التي تدعم الهويات المدارة لموارد Azure
الهوية المدارة لعقدة نظام مجموعة AKS kubelet  إرفاق السجل عند إنشاء نظام مجموعة AKS أو تحديثه سحب غير مراقب إلى عقدة نظام مجموعة AKS في نفس الاشتراك أو اشتراك مختلف لا، سحب الوصول فقط متوفر فقط مع مجموعة AKS

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

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

az acr login في Azure CLI

Connect-AzContainerRegistry في Azure PowerShell

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

سحب غير مراقب من المستودع بواسطة نظام فردي أو جهاز خارجي
لا تدعم أذونات المستودع المستندة إلى الرمز المميز تعيينات دور Microsoft Entra RBAC.

للحصول على أذونات المستودع المستندة إلى Microsoft Entra، راجع التحكم في الوصول المستند إلى سمة Microsoft Entra (ABAC) لأذونات المستودع المستندة إلى Microsoft Entra بدلا من ذلك.
غير متكامل حاليا مع هوية Microsoft Entra

تسجيل الدخول الفردي باستخدام معرف Microsoft Entra

عند العمل مع السجل الخاص بك مباشرةً، مثل سحب الصور ودفعها من محطة عمل تطوير إلى سجل قمت بإنشائه، قم بالمصادقة باستخدام هوية 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 لتعيين رمز Microsoft Entra المميز في docker.config الملف. بمجرد تسجيل الدخول بهذه الطريقة، يتم تخزين بيانات الاعتماد الخاصة بك مؤقتا، ولا تتطلب الأوامر اللاحقة docker في جلسة العمل اسم مستخدم أو كلمة مرور.

تلميح

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

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

يوفر استخدام az acr login مع هويات Azure التحكم في الوصول استنادا إلى الدور (RBAC) في Azure. بالنسبة لبعض السيناريوهات، قد تحتاج إلى تسجيل الدخول إلى سجل لهويتك الفردية في معرف Microsoft Entra، أو تكوين مستخدمي Azure الآخرين الذين لديهم أدوار محددة. راجع نظرة عامة على أذونات وأدوار Azure Container Registry Entra. بالنسبة للسيناريوهات عبر الخدمات أو للتعامل مع احتياجات مجموعة العمل أو سير عمل التطوير حيث لا تريد إدارة الوصول الفردي، يمكنك أيضاً تسجيل الدخول باستخدام هوية مُدارة لموارد 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-stdin <<< $TOKEN

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

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

كيان الخدمة

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

رمز مصادقة ACR يتم إنشائه عند تسجيل الدخول إلى ACR، ويتم تحديثه عند العمليات اللاحقة. مدة بقاء هذا الرمز المميز هي 3 ساعات.

للحصول على قائمة الأدوار المتوفرة، يرجى الاطلاع على أذونات Azure Container Registry Entra ونظرة عامة على الأدوار.

للحصول على البرامج النصية 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 من خلال التنقل في السجل، وتحديد مفاتيح الوصول ضمن الإعدادات، ثم تمكين ضمن المستخدم المسؤول.

بتمكين واجهة مستخدم المستخدم المسؤول في مدخل Azure

تسجيل الدخول باستخدام أداة حاوية بديلة بدلا من Docker

في بعض السيناريوهات، تحتاج إلى استخدام أدوات حاوية بديلة مثل podman بدلا من أداة dockerالحاوية الشائعة . على سبيل المثال: لم يعد Docker متوفرا في RHEL 8 و9، لذلك يجب عليك تبديل أداة الحاوية.

يتم تعيين أداة الحاوية الافتراضية إلى docker للأوامر az acr login . إذا لم تقم بتعيين أداة الحاوية الافتراضية docker وكان الأمر مفقودا في بيئتك، ظهور الخطأ التالي:

az acr login --name <acrName>
2024-03-29 07:30:10.014426 An error occurred: DOCKER_COMMAND_ERROR
Please verify if Docker client is installed and running.

لتغيير أداة الحاوية الافتراضية التي يستخدمها az acr login الأمر، يمكنك تعيين متغير DOCKER_COMMANDالبيئة . على سبيل المثال:

DOCKER_COMMAND=podman \
az acr login --name <acrName>

إشعار

تحتاج إلى تثبيت الإصدار 2.59.0 من Azure CLI أو إصدار أحدث وتكوينه لاستخدام هذه الميزة. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

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