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