1.7 KiB
1.7 KiB
Implement Phase 5.1: Advanced Authentication
I will implement Extended OAuth Providers and Enterprise SSO (OIDC).
1. Extended OAuth Providers
Goal: Add support for Azure (Microsoft), GitLab, Bitbucket, and Discord.
- Config: Update
common/src/config.rsto read new env vars:AZURE_CLIENT_ID/_SECRETGITLAB_CLIENT_ID/_SECRETBITBUCKET_CLIENT_ID/_SECRETDISCORD_CLIENT_ID/_SECRET
- Implementation: Update
auth/src/oauth.rs:- Extend
get_clientwith new provider URLs. - Extend
fetch_user_profilewith new user info endpoints and parsing logic.
- Extend
2. Enterprise SSO (OIDC)
Goal: Implement OIDC support for enterprise identity providers (e.g., Okta, Auth0, Google Workspace).
- Dependencies: Add
openidconnecttoauth/Cargo.toml. - Schema: Create
auth.sso_providerstable to store OIDC config per domain/project.- Columns:
id,resource_id,domain,oidc_issuer_url,oidc_client_id,oidc_client_secret,created_at,updated_at.
- Columns:
- Implementation: Create
auth/src/sso.rs.POST /auth/v1/sso: Acceptsdomainorprovider_id. Discovers OIDC config, generates authorization URL.GET /auth/v1/sso/callback: Handles the code exchange, fetches user info, creates/links user.
Execution Steps
- Update Config: Modify
common/src/config.rs. - Add Dependencies: Update
auth/Cargo.toml. - Schema Migration: Create
migrations/20260312000001_add_sso.sql. - Implement OAuth: Update
auth/src/oauth.rs. - Implement SSO: Create
auth/src/sso.rs. - Register Routes: Update
auth/src/lib.rs.