ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
هناك عدة طرق للمصادقة مع سجل حاويات Azure كل منها قابل للتطبيق على سيناريو واحد أو أكثر من سيناريوهات استخدام التسجيل.
تتضمن الطرق الموصى بها ما يلي:
- المصادقة على السجل مباشرة عبر تسجيل الدخول الفردي
- يمكن للتطبيقات ومنسقي الحاويات إجراء مصادقة غير مراقبة أو "بدون عنوان" باستخدام كيان خدمة Microsoft Entra
إذا كنت تستخدم سجل حاوية مع Azure Kubernetes Service (AKS) أو مجموعة Kubernetes أخرى، فراجع سيناريوهات للمصادقة مع Azure Container Registry من Kubernetes.
خيارات المصادقة
يسرد الجدول التالي أساليب المصادقة المتوفرة والسيناريوهات النموذجية. انظر المحتوى المرتبط للحصول على التفاصيل.
الأسلوب | إرشادات المصادقة | السيناريوهات | التحكم في الوصول المستند إلى الدور في Microsoft Entra (RBAC) | القيود |
---|---|---|---|---|
هوية Microsoft Entra الفردية |
az acr login في Azure CLIConnect-AzContainerRegistry في Azure PowerShell |
الدفع/السحب التفاعلي من قبل المطورين والمختبرين | نعم | يجب تجديد الرمز المميز ل Microsoft Entra كل 3 ساعات |
كيان خدمة Microsoft Entra | docker login az acr login في Azure CLIConnect-AzContainerRegistry في Azure PowerShellإعدادات تسجيل الدخول إلى السجل في واجهات برمجة التطبيقات أو الأدوات بيان سرية سحب Kubernetes |
دفع غير مراقب من مسار CI/CD سحب غير مراقب إلى Azure أو الخدمات الخارجية |
نعم | انتهاء الصلاحية الافتراضي لكلمة مرور SP هو سنة واحدة |
هوية Microsoft Entra المدارة لموارد Azure | docker login az acr login في Azure CLIConnect-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 CLIConnect-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 من خلال التنقل في السجل، وتحديد مفاتيح الوصول ضمن الإعدادات، ثم تمكين ضمن المستخدم المسؤول.
تسجيل الدخول باستخدام أداة حاوية بديلة بدلا من 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.