# Fengling Auth Service Authentication and authorization service using OpenIddict. ## Features - JWT token issuance - OAuth2/OIDC support - Multi-tenant support (TenantId in JWT claims) - Role-based access control (RBAC) - Health check endpoint ## API Endpoints ### Get Token ``` POST /connect/token Content-Type: application/x-www-form-urlencoded grant_type=password username={username} password={password} scope=api offline_access ``` ### Health Check ``` GET /health ``` ## Default Users - **Admin**: username=admin, password=Admin@123, role=Admin - **Test User**: username=testuser, password=Test@123, role=User ## Running Locally ```bash dotnet run ``` Service runs on port 5000. ## Docker ```bash docker build -t fengling-auth:latest . docker run -p 5000:80 fengling-auth:latest ``` ## Environment Variables - `ConnectionStrings__DefaultConnection`: PostgreSQL connection string - `OpenIddict__Issuer`: Token issuer URL - `OpenIddict__Audience`: Token audience ## Database - PostgreSQL - Uses ASP.NET Core Identity for user/role management - Tenant isolation via `TenantId` column