/auth/registerCheck whether a user exists in the directory and is assigned to the calling application before app onboarding or sign-in.
Configure shared identity for apps. App-level authorization stays inside each application.
Runtime values used by the service and Traefik deployment.
Register applications, create API auth keys, and use the registry for user assignments.
| Application | Allowed IPs | Status | Users | Created | Action |
|---|
| Application | Status | Created | Last used | Action |
|---|
Identity Services administrators sign in with local accounts using either mobile number or email address.
The setup console accepts local Identity Services administrator accounts only. Use password login or OTP login with the same email address or mobile number stored in the directory.
Configure SMS and email delivery used by OTP login. Generic API, Fast2SMS, and US carrier email-to-SMS match the VMTS setup.
Create users, assign auth-service administrators, and review MFA flag, devices, and active sessions.
| Name | Mobile | Employee ID | Admin | Applications | Status | MFA | Devices | Sessions | Action |
|---|
Shared authentication endpoints for registered applications. Use an API Auth Key from the Applications section.
/auth/registerCheck whether a user exists in the directory and is assigned to the calling application before app onboarding or sign-in.
/auth/otp/requestRequest a login OTP by mobile number or email address. Delivery uses the configured OTP Providers setup; local dev codes are shown only when enabled.
/auth/otp/verifyVerify an OTP and receive access and refresh tokens.
/auth/loginLogin with email/mobile number and password. Returns user, session, access token, and refresh token.
/auth/sessionValidate an access token and load the authenticated user.
/auth/token/refreshExchange a refresh token for a new access token.
/auth/logoutRevoke a session using either an access token or refresh token.
/users/syncOne-way user sync for the calling application. The API Auth Key identifies the application, and only users assigned to that application are returned. Client apps should store auth_user_id and update only when sync_hash changes. The mapped fields include optional emp_id.
/auth/password/request-resetStart password reset or account recovery for a mobile number or email address.
/auth/password/resetComplete password reset with the recovery token.
This auth service is the source of truth for shared users. Application sync is one-way from auth service to the calling application. Only users assigned to that application are returned. Existing local users should not be overwritten unless one of the mapped fields changes and the sync_hash differs. Mapped fields include optional emp_id.
Applications call protected endpoints with X-Auth-Service-Key: ask_your_api_key. Access-token checks also include Authorization: Bearer access_token_here.
End-to-end guidance for installing, operating, and integrating IDENTITY Services as a shared directory and authentication service.
IDENTITY Services is the shared authentication and directory source for your applications. It manages local service administrators, shared end users, OTP and password-based login, application registration, API auth keys, user-to-application assignment, audit logging, and one-way user sync.
auth.localhost.cd /Users/mkargal/codex/deplAS docker compose up -d --build
The stack runs two containers: the auth service and MySQL. Traefik remains external and forwards http://auth.localhost to this service.
http://auth.localhost/setup.Public hostname and token secret under Platform.Each consuming app must be registered with a name and IP allow-list.
Each app calls protected APIs with its own X-Auth-Service-Key header.
Users only sync to and authenticate for applications they are assigned to.
If an application has no allowed IPs configured, requests are rejected by default.
X-Auth-Service-Key with each request.curl http://auth.localhost/users/sync -H "X-Auth-Service-Key: ask_your_api_key"
The service identifies the calling application from the API key, checks the request IP against the allow-list, and returns only users assigned to that application.
/auth/register or /auth/otp/request to validate that the user exists in the shared directory and is assigned to that application.User not in the directory service.You are not allowed to access this application. Contact Administrator./auth/session to validate tokens and load the authenticated user profile.Sync is one-way from IDENTITY Services to the consuming application. The consuming application must not push user changes back into this service.
/users/sync to retrieve assigned users.auth_user_id from this service in the consuming application.sync_hash changes.name, mobile_number, email, optional emp_id, and status-related data.Use the Audit tab to monitor admin actions, API usage, denied requests, and rejected IP calls.
Purge audit events older than N days, or use 0 to purge all history and start fresh with a new purge event.
Delete an existing API auth key and create a new one per application when rotating credentials.
Create, edit, disable, delete, or CSV-import users from the Directory tab.
The durable data lives in MySQL and the mounted data volume used for uploaded branding assets. Back up both on a regular schedule.
docker compose ps docker compose logs --tail=100 auth-service docker compose logs --tail=100 mysql
Check the application allow-list and compare the Effective IP, Forwarded IP, and Remote Address shown in the Audit log.
Verify the user exists in Directory, is active, and is assigned to that application.
Review OTP Provider settings and send a test SMS from the Authentication tab.
Check the API auth key, app assignment list, and application IP allow-list.
Recent security events emitted by the shared auth service.
| Event | User | IP | Date | Time |
|---|
Use your local administrator email address or mobile number.