Generic SSO Framework with Pluggable Provider Support (Initial: MS Entra ID)
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 18/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- angular, azure, scala
調査の方向性
ファイル名が挙げられていないため、まず Scala/ZIO バックエンドにおける既存の API key 認証経路と、Angular のリクエスト/セッションフローを追跡します。Entra ID SSO がエンドツーエンドで動作し、API keys が引き続き動作し、プロバイダー選択を設定可能にし、ドキュメント、サンプル、テストで framework の拡張をカバーできて初めて、作業は完了です。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Scala
- スター
- 0
- フォーク
- 1
- 平均マージ
- 9時間 13分
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
AbsaOSS/StatusBoard のほかの issue
-
scope:security type:aquasec
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
AbsaOSS/StatusBoard#69 ·
-
epic scope:security type:aquasec
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
AbsaOSS/StatusBoard#68 ·
-
[SEC:HIGH][FP=a2eeb126] Ensure pipeline steps produce an SBOM対応中かも @petr-pokorny-absa が 63 日前に担当しました。 オープンscope:security type:aquasec
難易度 2/5 1〜3時間 初心者へのやさしさ 30/100
AbsaOSS/StatusBoard#58 · 担当者 1 名 ·
-
Security Alert – AVD-PIPELINE-0022対応中かも @petr-pokorny-absa が 63 日前に担当しました。 オープンepic scope:security type:aquasec
難易度 3/5 1〜2日 初心者へのやさしさ 40/100
AbsaOSS/StatusBoard#56 · 担当者 1 名 ·
AbsaOSS/StatusBoard の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
propensive/soundness#2266 ·
メンテナーはふだん 1 日以内に返信
-
Module: Form Builder
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
orbeon/orbeon-forms#7943 ·
メンテナーはふだん 2 日以内に返信
-
bbb-web: concurrent joins lose RegisterUserReqMsg (HashMap race in Meeting.userCustomData)対応中かも @ArsenFesiuk が 1 日前に担当しました。 オープンmodule: core
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
bigbluebutton/bigbluebutton#26028 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
lambdaworks/zio-elasticsearch#869 ·
メンテナーはふだん 1 日以内に返信