인증 서비스 통합 - kuyeol/Document GitHub Wiki
서비스 정리
- 백엔드 서버
- 키클록
- Minio
- 구글 SSO
- Minio
서비스별 인증 방식
- MinIO 내부 IDP
- 내장된 ID 관리 기능을 제공합니다.
- 오픈아이디
- OpenID Connect(OIDC) 호환 서비스를 통해 ID 관리를 지원합니다
- MinIO 인증 플러그인
- MinIO 인증 플러그인 확장을 사용하여 사용자 정의 외부 ID 관리자를 지원합니다.
- 액티브 디렉토리/LDAP
- Active Directory 또는 LDAP 서비스를 통해 ID 관리를 지원합니다.
- 액세스 관리 플러그인
- MinIO 액세스 관리 플러그인 확장을 사용하여 사용자 정의 외부 액세스 관리자를 지원합니다.
외부 통합 가능 방식
- OIDC , 인증 플러그인 , LDAP
현재 상태 접근성이 좋은 방식
- ODIC
사용자 인증 방식 :
- 다음 중 한 가지 선택
- a. Jwt 정보를 기반으로 사용자 정책 할당
- b. 권한 부여 요청에 지정된 내용 을 사용하여 RoleArn공급자의 RolePolicy에 첨부된 정책을 할당
- 단점 : MinIO는 OIDC 사용자 ID를 그룹 에 할당하는 것을 지원하지 않습니다 .
고려 사항
- 사용자에 대한 정보 관리
- 키클록 통합 인증 구성
- 직접 관리
Google SSO + Keycloak + MinIO 사용자명 및 권한 관리
1. 사용자명, 이메일 등 정보 매핑
- Keycloak은 Google에서 받은 사용자 정보를 User Attribute로 자동 저장합니다.
- 기본적으로 username은 구글의
sub
(고유 ID)나email
로 설정됩니다. - 원하는 필드(
name
,email
,given_name
등)를 Keycloak 사용자 속성에 매핑하려면 Mapper를 추가합니다.
설정 방법
- Keycloak Admin Console → Realm → Identity Providers → Google 선택
- Mappers 탭에서 매핑 추가
- Mapper Type: User Attribute
- User Attribute: username
- Claim: email
- Claim JSON Type: String
2. 권한(Roles) 자동 할당
2.1 Default Role 할당
- Keycloak에서 신규 사용자에게 기본 Role을 자동 할당할 수 있습니다.
설정 방법
- Realm → Roles → 원하는 Role 생성 (예:
user
) - Realm → Default Roles → Add selected →
user
추가
2.2 Attribute/Group Mapper 사용
- 구글의 특정 Claim(예: email 도메인)에 따라 Role을 자동 할당할 수 있습니다.
예시
- Claim:
hd
(Google Workspace 도메인) - Claim Value:
mycompany.com
- Role:
company-user
2.3 고급: 커스텀 프로비저닝
- 복잡�� 조건이 필요하면 Keycloak의 Event Listener SPI 등으로 커스텀 구현이 가능합니다.
3. 사용자 정보 관리
- Keycloak Admin Console에서 사용자 목록, 속성, Role, Group 등 관리 가능
- Keycloak Admin REST API로도 관리 가능
4. MinIO와 권한 동기화
- MinIO는 Keycloak OIDC 토큰 내
groups
또는roles
Claim을 보고 정책 적용 가능 - MinIO Policy에서 OIDC Claim 기반 접근 정책 설정
예시:
jwt.groups
가 "admin"일 때 특정 버킷 접근 허용
참고: MinIO OIDC Claim-based Policy
5. 참고 링크
6. 요약
- 사용자명/속성: Keycloak Identity Provider의 Mapper에서 매핑
- 권한(roles): Default Role, Claim Mapper, 또는 커스텀 SPI로 자동 할당
- MinIO: OIDC Claim 기반 정책 적용
이 내용을 복사해서 원하는 파일명으로 저장하시면 됩니다.