인증 서비스 통합 - kuyeol/Document GitHub Wiki

서비스 정리

  • 백엔드 서버
  • 키클록
  • Minio
  • 구글 SSO
  • 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를 추가합니다.

설정 방법

  1. Keycloak Admin Console → Realm → Identity Providers → Google 선택
  2. Mappers 탭에서 매핑 추가
    • Mapper Type: User Attribute
    • User Attribute: username
    • Claim: email
    • Claim JSON Type: String

2. 권한(Roles) 자동 할당

2.1 Default Role 할당

  • Keycloak에서 신규 사용자에게 기본 Role을 자동 할당할 수 있습니다.

설정 방법

  1. Realm → Roles → 원하는 Role 생성 (예: user)
  2. 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 기반 정책 적용

이 내용을 복사해서 원하는 파일명으로 저장하시면 됩니다.