API — المصادقة والهوية وRBAC
الغرض
المصادقة (تسجيل الدخول، تغيير كلمة المرور)، والملف الشخصي/السجل الخاص بالمستخدم المُسجَّل دخوله (/api/me)، والإدارة الإدارية للمستخدمين والأدوار وكتالوج الصلاحيات.
المصادقة والأدوار
- نقاط نهاية تسجيل الدخول موسومة بـ
[AllowAnonymous]؛ وكل ما عداها يحتاج Bearer JWT. /api/me/*هي[Authorize]فقط — لا سياسة صلاحية؛ يقصر الخادم النطاق على المُستدعي.- المستخدمون / الأدوار / الصلاحيات إدارية — مُقيَّدة على
admin.users/admin.roles(يحملهاSYS_ADMIN؛ وهذه صلاحيات على نطاق admin — انظر مصفوفة RBAC).
نقاط النهاية
Auth — القاعدة /api/auth
| Method | Path | Purpose | Gate |
|---|---|---|---|
| POST | /api/auth/login |
اسم المستخدم/كلمة المرور ← JWT لمدة 8 ساعات | AllowAnonymous |
| POST | /api/auth/change-password |
تغيير كلمة المرور الخاصة | [Authorize] |
| POST | /api/auth/login-dev |
تسجيل دخول للتطوير للتيسير | AllowAnonymous |
| POST | /api/auth/dev-token |
سكّ رمز للتطوير | AllowAnonymous |
Me — القاعدة /api/me
| Method | Path | Purpose |
|---|---|---|
| GET | /api/me/profile |
الملف الشخصي الخاص |
| PATCH | /api/me/profile |
تحديث الملف الشخصي الخاص |
| GET | /api/me/login-history |
سجل تسجيل الدخول الخاص |
Users — القاعدة /api/users · القيد admin.users
| Method | Path | Purpose |
|---|---|---|
| GET / POST | /api/users |
سرد / إنشاء مستخدمين |
| GET / PATCH / DELETE | /api/users/{id} |
قراءة / تحديث / إزالة مستخدم |
| POST | /api/users/{id}/lock · /unlock |
قفل / فتح قفل حساب |
| POST | /api/users/{id}/reset-password |
إعادة تعيين كلمة المرور إداريًا |
| GET | /api/users/{id}/login-history |
سجل تسجيل دخول مستخدم |
| POST | /api/users/{userId}/roles |
منح دور |
| DELETE | /api/users/{userId}/roles/{userRoleId} |
إلغاء منح دور |
Roles & permissions
| Method | Path | Purpose | Gate |
|---|---|---|---|
| GET / POST | /api/roles |
سرد / إنشاء أدوار | admin.roles |
| GET / PATCH / DELETE | /api/roles/{id} |
قراءة / تحديث / حذف دور | admin.roles |
| GET | /api/permissions |
كتالوج الصلاحيات العام | admin.roles |
الأشكال والأخطاء
يُرجع تسجيل الدخول الـ JWT + الانتهاء (ExpiresAt). تحمل منح الأدوار نطاق قسم اختياريًا + تواريخ سريان (انظر بنية المصادقة وRBAC). ProblemDetails القياسي عند الإخفاق؛ يُرجع قفل الحساب 4xx مع سبب القفل.
المزالق
login-dev/dev-tokenمساعِدان للتطوير — مصادقة تيسيرية، وليست مسارًا إنتاجيًا.- حماية الحساب حقيقية —
failed_login_count+lockout_untilيقودان القفل. - لا رمز تجديد — عند انتهاء الـ 8 ساعات يعيد العميل تسجيل الدخول.
- كتالوج الصلاحيات عام (لا نطاق BU)؛ والأدوار على نطاق المستأجر.
ذات صلة
- المصادقة وRBAC · مصفوفة RBAC
- الأدوار والصلاحيات · Swagger:
/swagger - ورقة الحقائق 01 (الأساس).