feat(sso): SP 별 '모든 사용자 허용(allow_all_users)' 옵션 추가 - #80
Merged
Conversation
- oidc_clients / saml_sps 에 allow_all_users 컬럼 추가 (3개 dialect + 마이그레이션 4개 트랙) - OIDC authorize / SAML SSO 게이트: 플래그가 켜진 SP 는 user_service_assignments 매핑 없이도 SSO 허용 (기본 deny 유지, opt-in) - 매핑 없는 사용자는 Role/추가 속성 없이 기본 프로필 속성만 발급 - 관리자 UI(OIDC 클라이언트·SAML SP 생성/수정 폼)에 체크박스 + en/ko i18n - SAML SP audit diff 에 allowAllUsers 변경 여부 기록 - 통합 테스트: allow-all 경로 OIDC/SAML 각 1건 추가 Co-Authored-By: Claude Fable 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
서비스 권한 모델은
user_service_assignments기반 기본 deny 라, 지금까지는 SP(OIDC 클라이언트 / SAML SP)마다 사용자별 서비스 지정이 필수였다. 사내 위키처럼 전 직원이 쓰는 서비스를 위해 SP 별 opt-in 플래그allow_all_users를 추가한다. 체크된 SP 는 매핑 없이도 테넌트의 모든 로그인 사용자가 SSO 가능하다. 기본값false— 기존 SP 동작은 변하지 않는다.변경 내용
oidc_clients·saml_sps에allow_all_usersboolean 컬럼 (sqlite/pg/mysql 3개 dialect, 패리티 테스트 통과). 마이그레이션 4개 트랙 생성 (drizzle/0028,drizzle/{pg,mysql,sqlite}/0011)client.allowAllUsers면 서비스 권한 게이트 통과sp.allowAllUsers면 매핑 없이 Assertion 발급. Role/RoleLabel·추가 attribute 는 assignment 가 있는 사용자에게만 부여 (없으면 기본 프로필 속성만)allowAllUsers변경 여부 기록allowAllUsers옵션 추가, allow-all 경로 통합 테스트 2건 (OIDC code 발급 성공 / SAML Assertion 발급 + Role 속성 미포함)검증
vitest통합 테스트 48건 전부 통과 (schema-parity 포함)svelte-check0 errors,bun run build성공bun run db:migrate:preview/db:migrate실행 필요🤖 Generated with Claude Code