مهاجرت انبوه سرویسکانکشنهای Azure DevOps
خلاصهٔ کاملتر
نویسنده توضیح میده که از اول ژوئیهٔ ۲۰۲۶، issuer مربوط به Azure DevOps برای workload identity federation رسماً منسوخ شده و بازنشستگی کاملش هم اول ژوئیهٔ ۲۰۲۷ه. یعنی هر Service Connection تو Azure Pipelines که قبل از اواخر ۲۰۲۵ ساخته شده احتمالاً نیاز به رسیدگی داره، وگرنه یه سال دیگه اون پایپلاینها دیگه به Azure احراز هویت نمیشن.
workload identity federation روش «بدون سکرت» احراز هویت Azure Pipelines به Azureئه؛ بهجای ذخیرهٔ سکرت service principal که منقضی میشه، Service Connection یه توکن کوتاهعمر رو با دسترسی تعویض میکنه. این اعتماد به یه Federated Credential روی App Registration متکیه و هر credential یه issuer داره؛ همون مرجعی که توکنو صادر میکنه.
به گفتهٔ نویسنده، کانکشنهای قدیمی از issuer با پیشوند vstoken.dev.azure.com استفاده میکنن، ولی مایکروسافت داره روی Microsoft Entra issuer با پیشوند login.microsoftonline.com استاندارد میشه. یه نکتهٔ مهم اینه که این منسوخشدن فقط اپهای Entra تکمستأجر و Managed Identityها تو ابر عمومی Azureرو شامل میشه؛ اپهای چندمستأجر و ابرهای مستقل خارج از محدودهان.
پورتال Azure میتونه این کانکشنها رو یکییکی و هرکدوم تو چند دقیقه تبدیل کنه، که برای پنجتا خوبه ولی برای چندصدتا جواب نمیده. نویسنده میگه دکمهٔ Update تو پورتال کار خاصی نمیکنه؛ زیرش فقط یه فراخوانی REST با عملیات MigrateToEntraIssuer روی Service Connection میزنه. با اینکه این API مستند نیست، میشه تو dev tools مرورگر تماشاش کرد و خودت دوباره اجراش کرد.
نویسنده یه اسکریپت دومرحلهای PowerShell نوشته: اول روی هر App Registration، federated credential مربوط به Entra رو از پیش میسازه و یه مدت صبر میکنه تا propagate بشه، بعد عملیات migrate رو صدا میزنه. اسکریپت یه حالت WhatIf هم داره که اول بدون هیچ تغییری فقط نقشهٔ کارو چاپ میکنه، که برای اجرای امن روی حجم زیاد کانکشن مفیده.
نکات کلیدی:
- issuer قدیمی Azure DevOps برای WIF منسوخ شده؛ بازنشستگی کامل ژوئیهٔ ۲۰۲۷
- فقط اپهای تکمستأجر و Managed Identity تو ابر عمومی Azure درگیرن
- دکمهٔ Update پورتال زیرش عملیات REST به اسم MigrateToEntraIssuer میزنه
- نویسنده یه اسکریپت PowerShell دومرحلهای با حالت WhatIf برای مهاجرت انبوه ساخته




