- Shipped
- lúc 07:37 15 tháng 11, 2026 UTC
- Author
- Kamo
- Commit
- 7a63fd0
idp/: **************** CRUD + refresh + test/start|result + activate|disable + break-glass (MANAGE_IDENTITY_PROVIDERS 718, IDP_CONNECTION_CHANGED on every write) SSRF-guarded: every admin-typed / document-named URL must resolve to public addresses), JWKS + x5c expiry. federation/start|callback with connectionId -> IdpSignInService: PKCE+nonce+state, id_token proven by the existing IdTokenValidator (chỉ không đối xứng, iss/aud/azp/exp/nonce), mặc định client_secret_basic; danh tính (iss, sub, id kết nối) ORG_ IDP; auto- link + JIT chỉ trên các miền xác nhận quyền sở hữu của kết nối (nếu không thì link-page proof); JIT through **************** (TEAM_MEMBER ACTIVE|PROSPECT, email verified, không có lá thư xác nhận); bản đồ tuyên bố/nhóm -> bộ phận, chức vụ, chức vụ chính thức, vai trò, đội (TeamWriter seam + org graph + MemberRightsAppliedService => rights push live), sync_on_signin; trusted IdP MFA via amr/acr; completeOrgIdp (chỉ với org đó; không bao giờ trên miền của người thuê khác). TEST chạy toàn bộ việc xác thực và lưu thẻ kết quả (ai, hành động tài khoản nào, vai trò/bộ phận/tước hiệu/nhóm, MFA) - không ghi gì cả host + domain trên kết nối ACTIVE và chỉ các hàng ownership_verified; signin/methods liệt kê các nút sso. SsoEnforcement: REQUIRED_DOMAINS / REQUIRED_ALL từ chối mật khẩu của thành viên được bảo vệ cho THAT org (403 SSO_RECIPED + dữ liệu nút sso; người chọn bỏ org và xác định phạm vi chọn token) và chỉ từ chối đặt lại khi mật khẩu hoạt động nowhere; owner + org_ break_ glass_ members always exempt; fails open; inert until a admin activates a required kết nối. Thực hiện cần phải vượt qua một bài kiểm tra; CẦN >= 1 thành viên thổi thủy tinh với MFA hoặc một chìa khóa mật khẩu. IdpHealthJob (6h, singleton): siêu dữ liệu/nâng cấp chìa khóa, chứng nhận/mật khẩu hết hạn + siêu dữ liệu không đọc được -> một Thông báo IDP_CONNECTION_HEALTH mỗi sự kiện. SAML seams (SamlServiceProvider, ****************
