Generic SSO Framework with Pluggable Provider Support (Initial: MS Entra ID)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 18/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- angular, azure, scala
- Ambito
- authentication, full-stack, security
Direzione di ricerca
Inizia tracciando il percorso esistente di autenticazione tramite API key nel backend Scala/ZIO e il flusso di richieste/sessioni di Angular, poiché non vengono indicati file. Il lavoro è completato solo quando Entra ID SSO funziona end-to-end, le API key continuano a funzionare, la selezione del provider è configurabile e documentazione, esempi e test coprono l’estensione del framework.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Feature Description
Implement a generic, pluggable Single Sign-On (SSO) framework to allow integration with multiple identity providers. The first implementation should support Microsoft Entra ID (Azure AD), but the design must allow for other providers (like Okta, Auth0, Google, etc.) to be easily added in the future. The solution should include both backend (Scala/ZIO) and frontend (Angular) components.
Problem / Opportunity
StatusBoard currently uses API key-based authentication, which is not sufficient for modern enterprise environments where SSO is required. There is a need for a secure, standards-based authentication mechanism that supports federation, user profiles, and seamless integration with corporate identity solutions. The primary beneficiaries will be enterprise integrators, platform admins, and end users who need a better user experience and enhanced security.
Acceptance Criteria
- Users can log in to StatusBoard via Microsoft Entra ID SSO
- SSO provider is selected via configuration, and new providers can be plugged in by implementing the required trait
- Backend validates JWT tokens and identifies users generically
- API key authentication remains available for legacy/service-to-service integrations
- Angular frontend integrates with the chosen SSO via standard libraries (e.g., MSAL for Entra)
- Documentation and sample configuration for enabling/disabling providers and adding new ones
- Unit tests and code samples for extending the generic framework
Proposed Solution
- Abstract SSO provider interface (trait) in backend to enable multiple providers
- Implement OIDC/OAuth2 flow for providers, starting with MS Entra ID using its OIDC endpoints and JWT configuration
- Add configuration support for provider selection, with the ability to specify provider-specific parameters (e.g., clientId, tenant, JWKS URL)
- Retain API key pathway for non-user/service integrations
- On frontend, use provider SDK (MSAL for Entra) to manage user authentication/session. Inject tokens in HTTP requests to backend
- Provide detailed examples and docs for further provider integrations
- Perform security review and include test cases
Dependencies / Related
N/A
Additional Context
This implementation ensures StatusBoard stays relevant for enterprises, enhances security, and reduces friction for end users and identity administrators. The approach also benefits open source adopters who may wish to use other providers instead of MS Entra ID.
- Lingua principale
- Scala
- Stelle
- 0
- Fork
- 1
- Merge medio
- 9h 13m
- PR unite (30g)
- 2
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di AbsaOSS/StatusBoard
-
scope:security type:aquasec
Difficoltà 2/5 1-3 ore Idoneità per principianti 30/100
AbsaOSS/StatusBoard#58 · 1 assegnatario ·
-
epic scope:security type:aquasec
Difficoltà 3/5 1-2 giorni Idoneità per principianti 40/100
AbsaOSS/StatusBoard#56 · 1 assegnatario ·
Tutte le issue di AbsaOSS/StatusBoard
Issue simili
-
Area: Excel support
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
orbeon/orbeon-forms#7893 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
lichess-org/lila#21788 · 2 commenti ·
-
area:Iceberg area:writer documentation requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
apache/datafusion-comet#6147 ·
-
feature
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
GiganticMinecraft/SeichiAssist#2978 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
chipsalliance/rocket-chip#3833 ·