داکر برای GitHub Actions از OIDC پشتیبانی میکنه
خلاصهٔ کاملتر
داکر اعلام کرده که از این به بعد GitHub Actions میتونه از طریق OpenID Connect به Docker Hub احراز هویت کنه. نویسندهها مشکل قبلی رو ساده توضیح میدن: هر ورکفلویی که ایمیج push یا pull میکنه، یه PAT یا OAT درازعمر رو بهعنوان سکرت گیتهاب نگه میداره. این توکنها باید دستی بچرخن، مقیاسپذیر نیستن، و اگه یکیشون لو بره تا وقتی کسی متوجه نشه و باطلش نکنه دسترسی به رجیستری باز میمونه.
جریان کار اینه که گیتهاب یه توکن هویت امضاشده (JWT) صادر میکنه که ریپو، برنچ، محیط و بقیهٔ متادیتای اون اجرا توش کدگذاری شده. اکشن docker/login-action این توکن رو به داکر میده، داکر امضاش رو با کلید عمومی گیتهاب چک میکنه و با rulesetهای تعریفشده تو Admin Console تطبیقش میده. اگه جور دربیاد، یه اکسستوکن کوتاهعمر برمیگردونه که چند دقیقه بعد منقضی میشه و دوباره قابل استفاده نیست.
راهاندازی یه کار یکباره تو Docker Home هست بهعلاوهٔ چند خط تغییر تو YAML. تو هر connection تا پنج ruleset میشه ساخت و تطبیق بر اساس subject claim انجام میشه؛ توصیهٔ امنیتی خود داکر اینه که به ریپو و برنچ مشخص pin کنی و سراغ الگوی «همهٔ ریپوهای سازمان» نری. یه نکتهٔ ریز هم هست: ریپوهایی که بعد از ۱۵ ژوئیهٔ ۲۰۲۶ ساخته شدن، تو subject claim پیشفرض شناسهٔ تغییرناپذیر دارن.
تغییر ورکفلو هم همینه: مجوز id-token: write اجازه میده ورکفلو توکن OIDC بگیره و docker/login-action (نسخهٔ v4.5.0 به بالا) کل تبادل توکن و لاگین رو تو یه استپ انجام میده.
permissions:
id-token: write
steps:
- name: Docker login
uses: docker/login-action@v4
with:
username: YOUR_ORG_NAME
env:
DOCKERHUB_OIDC_CONNECTIONID: YOUR_CONNECTION_IDبعد از اینکه مطمئن شدی ورکفلو درست اجرا میشه، PAT قدیمی رو از سکرتهای ریپو پاک کن؛ اگه هم خطا خوردی، تب Failures تو صفحهٔ connection مقدار claim ورودی رو نشون میده. چیزی که عوض نمیشه هم روشنه: PAT و OATهای فعلی همچنان کار میکنن و مهاجرت اجباری نیست، ایمیجها و بیلدها دستنخورده میمونن، و برای توسعهٔ لوکال یا CIهای غیرگیتهابی هنوز باید از همون توکنهای قبلی استفاده کرد.
نکات کلیدی:
- احراز هویت GitHub Actions با OIDC بهجای PAT یا OAT ذخیرهشده
- توکن کوتاهعمر و مخصوص هر اجرا؛ دیگه نه چرخوندن سکرت لازمه نه نگرانی از لو رفتنش
- کنترل دسترسی با حداکثر پنج ruleset روی ریپو، برنچ و منابع
- فعال برای سازمانهای Docker Team، Business، DHI و برنامهٔ DSOS
- PAT و OATهای قبلی همچنان کار میکنن و مهاجرت با سرعت خودت انجام میشه




