IdentityServer و OpenIddict چه هستند؟
دو کتابخانه محبوب داتنت برای ساخت یک Authorization Server/OpenID Provider اختصاصی — وقتی میخواهید خودتان صادرکننده توکن باشید، نه فقط مصرفکننده.
چرا مهم است؟
وقتی چند اپلیکیشن/سرویس داخلی نیاز به Single Sign-On مشترک دارند، بهجای اتکا به یک ارائهدهنده بیرونی (گوگل/مایکروسافت)، یک Authorization Server داخلی با IdentityServer/OpenIddict راهاندازی میشود.
تعریف
هر دو کتابخانه امکان ساخت یک OAuth2/OpenID Connect Provider کامل روی داتنت را میدهند: صدور Access Token/ID Token، مدیریت Client، و پیادهسازی جریانهای استاندارد (Authorization Code، Client Credentials).
تفاوت کلیدی
- IdentityServer (Duende): پرسابقهتر، از نسخهای به بعد تجاری (نیاز به لایسنس برای پروژههای درآمدزا)، مستندات و اکوسیستم گسترده.
- OpenIddict: متنباز و رایگان، بهشدت با ASP.NET Core Identity/EF Core یکپارچه، جایگزین رایگان محبوب بعد از تغییر مدل لایسنس IdentityServer.
مثال مفهومی جریان Client Credentials (سرویسبهسرویس)
Service A → درخواست توکن با ClientId/ClientSecret → Authorization Server (IdentityServer/OpenIddict)
→ Access Token → درخواست به Service B با این توکن
اشتباه رایج
❌ ساخت یک Authorization Server داخلی از صفر (پیادهسازی دستی OAuth2/OIDC) بهجای استفاده از یکی از این کتابخانههای تستشده — پیادهسازی درست و امن این پروتکلها بسیار ظریف و پر از جزئیات امنیتی است.
منبع و مطالعه بیشتر
خلاصه
IdentityServer و OpenIddict امکان ساخت Authorization Server اختصاصی داتنت را میدهند؛ IdentityServer تجاری شده، OpenIddict گزینه متنباز و رایگان است. هیچوقت OAuth2/OIDC را از صفر پیادهسازی نکنید. مرجع کامل: مستندات OpenIddict و Duende IdentityServer.
