Wire production domain, CORS for tenant subdomains, celery volume mounts, and nginx reverse proxy configs for apex, API, identity, auth, and wildcard tenants. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| alembic | ||
| app | ||
| scripts | ||
| alembic.ini | ||
| Dockerfile | ||
| Dockerfile.dev | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
Identity & Access Service
سرویس احراز هویت و دسترسی (فاز ۲) — SSO مرکزی با Keycloak.
مسئولیتها
- مدیریت پروفایل کاربر و عضویت tenant
- ارائه پیکربندی OIDC به frontend
- تبدیل authorization code به token (BFF)
- همگامسازی کاربران با Keycloak Admin API
دیتابیس
identity_access_db (مستقل از Core — database-per-service)
APIهای اصلی
| متد | مسیر | توضیح |
|---|---|---|
| GET | /health |
سلامت سرویس |
| GET | /api/v1/auth/config |
پیکربندی OIDC (عمومی) |
| POST | /api/v1/auth/token |
تبدیل code به token |
| GET | /api/v1/auth/me |
کاربر جاری |
| POST | /api/v1/users |
ثبت کاربر (admin) |
| POST | /api/v1/tenants/{id}/members |
افزودن عضو tenant |
اجرا
cd backend/services/identity-access
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload --port 8001
تست
pytest -q
SSO Flow
- Frontend از
/api/v1/auth/configآدرس Keycloak را میگیرد. - کاربر به Keycloak redirect میشود.
- پس از login، callback با
codeبه frontend برمیگردد. - Frontend کد را به
/api/v1/auth/tokenمیفرستد و token دریافت میکند. - همه سرویسها (Core، CRM، ...) همان JWT را validate میکنند.