CodeShot
Authentication & Authorization1 دقیقه مطالعه

Authentication و Authorization در ASP.NET Core

Authentication تشخیص می‌دهد کاربر کیست، Authorization تعیین می‌کند او مجاز به انجام چه کاری است.

چرا مهم است؟

این دو مفهوم اساس امنیت هر Web API هستند؛ اشتباه گرفتن‌شان یا ترتیب اشتباه ثبت Middleware می‌تواند کل امنیت برنامه را دور بزند.

Authentication (احراز هویت) — Who are you?

تشخیص هویت کاربر. بررسی می‌کند کاربر واقعاً همان کسی است که ادعا می‌کند. رایج‌ترین روش‌ها: Cookie Authentication · JWT Bearer Authentication · OAuth 2.0 · OpenID Connect · Identity Server / Microsoft Entra ID

مثال: کاربر نام‌کاربری/رمز عبور وارد می‌کند → JWT صادر می‌شود → سیستم اعتبارسنجی می‌کند.

Authorization (مجوزدهی) — What can you do?

پس از Authentication تعیین می‌کند کاربر مجاز به انجام چه کاری است، بر اساس: Role · Claim · Policy · Requirement

مثال: فقط کاربر Admin بتواند حذف کند؛ مدیر مالی به گزارش‌ها دسترسی داشته باشد.

تفاوت در یک نگاه

Authentication Authorization
هدف تشخیص هویت تعیین سطح دسترسی
سؤال Who are you? What can you do?
ترتیب قبل بعد از Authentication
خروجی Identity Permission

انواع Authorization در ASP.NET Core

Role-Based — دسترسی بر اساس نقش کاربر: [Authorize(Roles = "Admin")]

Claim-Based — دسترسی بر اساس Claim کاربر: [Authorize(Policy = "EmployeeOnly")]

Policy-Based (پیشنهادی) — ترکیب چند شرط در قالب Policy، قابل‌توسعه و تست:

options.AddPolicy("AdminOnly", policy => policy.RequireRole("Admin"));

JWT Authentication

ساختار Token: Header · Payload (Claims) · Signature مزایا: Stateless · مناسب API · سریع · Cross Platform

Cookie Authentication

مناسب برای MVC، Razor Pages و وب‌سایت‌های سنتی؛ نگهداری Session کاربر در Cookie.

ترتیب صحیح Middleware

app.UseAuthentication();
app.UseAuthorization();

Authentication همیشه باید قبل از Authorization اجرا شود.

نکته کلیدی: Authentication یعنی تشخیص هویت، Authorization یعنی تعیین مجوز دسترسی؛ بدون Authentication، Authorization معنایی ندارد؛ Cookie برای وب‌سایت‌های MVC و JWT برای REST API مناسب‌تر است.

خلاصه

  • Authentication یعنی «کاربر کیست؟» و Authorization یعنی «کاربر چه کاری می‌تواند بکند؟».
  • Role-Based، Claim-Based و Policy-Based سه روش رایج Authorization در ASP.NET Core هستند.
  • ترتیب صحیح Middleware همیشه UseAuthentication سپس UseAuthorization است.

حالا امتحان کن

🧩آزمون Authentication و Authorization در ASP.NET Core6 سؤال · نمره قبولی 60٪
این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←