forked from baron/baron-sso
3.5 KiB
3.5 KiB
Ory Keto 관계 튜플 샘플 가이드 (Relationship Tuple Samples)
이 문서는 Baron SSO의 유저 그룹 중심 통합 권한 정책을 구현하기 위해 Ory Keto에 저장되는 실제 데이터 샘플을 제공합니다.
1. 기본 명명 규칙 (Naming Convention)
- Namespace:
Tenant,UserGroup,RelyingParty,User - Format:
namespace:object_id#relation@subject(subject는user_id이거나namespace:object_id#relation형태의 Subject Set임)
2. 유저 그룹 및 멤버십 샘플 (User Group & Membership)
2.1 그룹 멤버 추가
"한맥 IT 개발팀(hanmac-it-dev) 그룹에 사용자 alice를 멤버로 추가"
- Tuple:
UserGroup:hanmac-it-dev#members@User:alice-uuid - 설명: alice는 이제 해당 그룹의 권한을 상속받을 준비가 됨.
2.2 그룹장(Leader) 임명
"사용자 bob을 hanmac-it-dev 그룹의 그룹장으로 임명"
- Tuple:
UserGroup:hanmac-it-dev#owners@User:bob-uuid - 설명: bob은 그룹의 소유권을 가지며, 정책에 따라 해당 테넌트의 어드민이 됨.
3. 정책 기반 자동 권한 상속 (Policy Bridges)
3.1 그룹장 -> 테넌트 어드민 승격
"그룹장은 해당 그룹(테넌트)의 어드민 권한을 가진다" (핵심 정책)
- Tuple:
Tenant:hanmac-it-dev#admins@UserGroup:hanmac-it-dev#owners - 설명: 이 튜플 하나로 인해
UserGroup:hanmac-it-dev#owners에 속한bob은Tenant:hanmac-it-dev의admins자격을 얻음.
3.2 그룹 멤버 -> 테넌트 일반 권한
"그룹 멤버들은 해당 테넌트의 조회(view) 권한을 가진다"
- Tuple:
Tenant:hanmac-it-dev#members@UserGroup:hanmac-it-dev#members - 설명: 그룹에 속한 모든 사용자가 테넌트 자원을 볼 수 있게 함.
4. 테넌트 간 권한 상속 및 자원 소유 (Hierarchy)
4.1 타 테넌트 관리 권한 부여
"개발팀 그룹(hanmac-it-dev)에게 alpha-project 테넌트의 관리 권한을 부여"
- Tuple:
Tenant:alpha-project#manage@UserGroup:hanmac-it-dev#members - 설명: 이제 개발팀 멤버 전원이
alpha-project를 요리할 수 있음.
4.2 테넌트-자원(RP) 연결
"인증 앱(messenger-app)은 hanmac-it-dev 테넌트 소속이다"
- Tuple:
RelyingParty:messenger-app#parents@Tenant:hanmac-it-dev - 설명:
hanmac-it-dev를 관리하는 사람은 부모 관계를 통해messenger-app도 관리할 수 있게 됨.
5. 종합 시나리오 예제: Hanmac Family
| 대상 리소스 | 관계 | 주체 (Subject) | 비고 |
|---|---|---|---|
UserGroup:hanmac-it |
members |
User:alice |
Alice는 IT팀 멤버 |
UserGroup:hanmac-it |
owners |
User:bob |
Bob은 IT팀 그룹장 |
Tenant:hanmac-it |
admins |
UserGroup:hanmac-it#owners |
정책: Bob은 IT 테넌트 어드민 |
Tenant:project-x |
manage |
UserGroup:hanmac-it#members |
IT팀 전체가 Project-X 관리 |
RelyingParty:rp-01 |
parents |
Tenant:project-x |
rp-01은 Project-X 소속 |
🔍 권한 확인 (Check API) 결과:
- Bob은
rp-01을 관리할 수 있는가?bob->UserGroup:hanmac-it#owners->Tenant:hanmac-it#admins-> (상속 시) ->rp-01- 결과: YES
- Alice는
rp-01을 관리할 수 있는가?alice->UserGroup:hanmac-it#members->Tenant:project-x#manage-> (부모 관계) ->rp-01- 결과: YES
- Alice는
Tenant:hanmac-it의 설정을 바꿀 수 있는가?- Alice는
members일 뿐admins가 아님. - 결과: NO
- Alice는