Generic SSO Framework with Pluggable Provider Support (Initial: MS Entra ID)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 18/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- angular, azure, scala
- Lĩnh vực
- authentication, full-stack, security
Hướng nghiên cứu
Bắt đầu bằng cách lần theo luồng xác thực API key hiện có trong backend Scala/ZIO và luồng request/session của Angular, vì không có tệp nào được nêu tên. Công việc chỉ hoàn tất khi Entra ID SSO hoạt động end-to-end, các API key vẫn hoạt động, việc chọn provider có thể cấu hình được, và tài liệu, sample cùng test bao quát việc mở rộng framework.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Scala
- Star
- 0
- Fork
- 1
- Merge trung bình
- 9 giờ 13 phút
- Pull request đã merge (30 ngày)
- 2
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của AbsaOSS/StatusBoard
-
scope:security type:aquasec
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 30/100
AbsaOSS/StatusBoard#58 · 1 người được giao ·
-
epic scope:security type:aquasec
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 40/100
AbsaOSS/StatusBoard#56 · 1 người được giao ·
Tất cả issue của AbsaOSS/StatusBoard
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
typelevel/sbt-typelevel#929 ·
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
apache/pekko-projection#635 ·
-
RS_PixelAsPoint raises out of grid where RS_PixelAsCentroid and RS_PixelAsPolygon extrapolate Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Area: Excel support
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
orbeon/orbeon-forms#7893 ·
-
x:action/fix x:module/practice-exercise x:size/small
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100