그룹 매핑
그룹 매핑 (Group mapping)
그룹 매핑은 IdP(identity provider)의 사용자 그룹을 Docker 조직의 팀과 자동으로 동기화해요. 예를 들어 IdP의 "backend-team" 그룹에 개발자를 추가하면 Docker의 해당 팀에 자동으로 추가돼요.
출처: 문서
본문
구독: Business / 대상: Administrators
이 페이지는 그룹 매핑이 어떻게 동작하는지와 그룹 매핑을 설정하는 방법을 설명해요.
팁: 그룹 매핑은 사용자를 여러 조직이나 한 조직 내의 여러 팀에 추가하는 데 이상적이에요. 다중 조직·다중 팀 할당을 설정할 필요가 없다면 SCIM 사용자 수준 속성이 요구사항에 더 잘 맞을 수 있어요.
사전 준비 (Prerequisites)
시작하기 전에 다음이 필요해요.
- 조직에 SSO 구성
- Docker Home과 IdP에 대한 관리자 접근
그룹 매핑이 동작하는 방식
그룹 매핑은 핵심 구성 요소를 통해 Docker 팀을 IdP 그룹과 동기화해요.
- 인증 흐름: 사용자가 SSO로 로그인하면 IdP가 이메일, 이름, 그룹 구성원 자격을 포함한 사용자 속성을 Docker와 공유해요.
- 자동 업데이트: Docker는 이 속성을 사용해 사용자 프로필을 만들거나 업데이트하고, IdP 그룹 변경에 따라 팀 할당을 관리해요.
- 고유 식별: Docker는 이메일 주소를 고유 식별자로 사용하므로 각 Docker 계정은 고유한 이메일 주소를 가져야 해요.
- 팀 동기화: Docker에서 사용자의 팀 구성원 자격은 IdP 그룹의 변경을 자동으로 반영해요.
그룹 매핑 설정하기
그룹 매핑 설정은 IdP가 그룹 정보를 Docker와 공유하도록 구성하는 작업을 포함해요. 필요 사항:
- Docker의 명명 형식을 사용해 IdP에 그룹 만들기
- 인증 중 IdP가 그룹 데이터를 보내도록 속성 구성
- 적절한 그룹에 사용자 추가
- 그룹이 제대로 동기화되는지 연결 테스트
그룹 매핑은 SSO 전용으로 사용하거나, 향상된 사용자 수명주기 관리를 위해 SSO와 SCIM을 모두 사용할 수 있어요.
그룹 명명 형식
organization:team 형식을 사용해 IdP에 그룹을 만들어요. 예:
- "moby" 조직의 "developers" 팀:
moby:developers - 다중 조직 접근:
moby:backend와whale:desktop
그룹이 동기화될 때 Docker에서 아직 존재하지 않으면 Docker가 자동으로 팀을 만들어요.
지원되는 속성
| 속성 | 설명 |
|---|---|
id |
UUID 형식의 그룹 고유 ID. 이 속성은 읽기 전용이에요. |
displayName |
organization:team 그룹 매핑 형식을 따르는 그룹 이름 |
members |
이 그룹의 구성원인 사용자 목록 |
members(x).value |
이 그룹의 구성원인 사용자의 고유 ID. 구성원은 ID로 참조돼요. |
SSO로 그룹 매핑 구성하기
SAML 인증 방식을 사용하는 SSO 연결과 함께 그룹 매핑을 사용해요.
참고: SSO와 함께하는 그룹 매핑은 Azure AD(OIDC) 인증 방식에서는 지원되지 않아요. 이러한 구성에는 SCIM이 필요하지 않아요.
Okta
IdP의 사용자 인터페이스는 다음 단계와 약간 다를 수 있어요. 확인하려면 Okta 문서를 참고해요.
그룹 매핑을 설정하려면:
- Okta에 로그인하고 애플리케이션을 열어요.
- 애플리케이션의 SAML Settings 페이지로 이동해요.
- Group Attribute Statements (optional) 섹션에서 다음과 같이 구성해요.
- Name:
groups - Name format:
Unspecified - Filter:
Starts with+organization:여기서organization은 조직의 이름
- Name:
- 필터 옵션이 Docker 조직과 관련 없는 그룹을 걸러내요.
- Directory, 그다음 Groups를 선택해 그룹을 만들어요.
- Docker의 조직·팀 이름과 일치하는
organization:team형식으로 그룹을 추가해요. - 만든 그룹에 사용자를 할당해요.
다음에 그룹을 Docker와 동기화하면 사용자가 정의한 Docker 그룹에 매핑돼요.
Entra ID
IdP의 사용자 인터페이스는 다음 단계와 약간 다를 수 있어요. 확인하려면 Entra ID 문서를 참고해요.
- Entra ID에 로그인하고 애플리케이션을 열어요.
- Manage, 그다음 Single sign-on을 선택해요.
- Add a group claim을 선택해요.
- Group Claims 섹션에서 소스 속성 **Cloud-only group display names (Preview)**로 Groups assigned to the application을 선택해요.
- Advanced options, 그다음 Filter groups 옵션을 선택해요.
- 다음과 같이 속성을 구성해요.
- Attribute to match:
Display name - Match with:
Contains - String:
:
- Attribute to match:
- Save를 선택해요.
- Groups, All groups, New group을 선택해 그룹을 만들어요.
- 만든 그룹에 사용자를 할당해요.
다음에 그룹을 Docker와 동기화하면 사용자가 정의한 Docker 그룹에 매핑돼요.
SCIM으로 그룹 매핑 구성하기
더 고급 사용자 수명주기 관리를 위해 SCIM과 함께 그룹 매핑을 사용해요. 시작하기 전에 먼저 SCIM을 설정했는지 확인해요.
Okta
- Okta에 로그인하고 애플리케이션을 열어요.
- Applications, Provisioning, Integration을 선택해요.
- Edit를 선택해 연결에서 그룹을 활성화한 뒤 Push groups를 선택해요.
- Save를 선택해요. 이 구성 저장은 애플리케이션에 Push Groups 탭을 추가해요.
- Directory로 이동해 Groups를 선택해 그룹을 만들어요.
- Docker의 조직·팀 이름과 일치하는
organization:team형식으로 그룹을 추가해요. - 만든 그룹에 사용자를 할당해요.
- Integration 페이지로 돌아가 Push Groups 탭을 선택해 그룹이 프로비저닝되는 방식을 제어·관리하는 보기를 열어요.
- Push Groups, 그다음 Find groups by rule을 선택해요.
- 규칙으로 그룹을 구성해요.
- 규칙 이름 예:
Sync groups with Docker Hub docker:로 시작하거나 다중 조직의 경우:을 포함하는 이름으로 그룹 일치
- 규칙 이름 예:
- Immediately push groups by rule을 활성화하면 그룹이나 그룹 할당에 변경이 있을 때 바로 동기화돼요. 그룹을 수동으로 push하고 싶지 않으면 활성화해요.
- Pushed Groups 열의 By rule 아래에서 새 규칙을 찾아요. 오른쪽 그룹 테이블에 그 규칙과 일치하는 그룹이 나열돼요.
- 이 테이블에서 그룹을 push하려면:
- 그룹을 Group에서 선택해요.
- Push Status 드롭다운을 선택해요.
- Push Now를 선택해요.
Entra ID
그룹 매핑을 구성하기 전에 다음을 완료해요.
- Entra ID에 로그인하고 애플리케이션으로 가요.
- 애플리케이션에서 Provisioning, 그다음 Mappings를 선택해요.
- Provision Microsoft Entra ID Groups를 선택해요.
- Show advanced options, 그다음 Edit attribute list를 선택해요.
externalId타입을reference로 업데이트하고 Multi-Value 체크박스를 선택한 뒤 참조 객체 속성urn:ietf:params:scim:schemas:core:2.0:Group을 선택해요.- Save, 그다음 Yes를 선택해 확인해요.
- Provisioning으로 가요.
- Provision Status를 On으로 전환하고 Save를 선택해요.
다음으로 그룹 매핑을 설정해요.
- 애플리케이션 개요 페이지로 가요.
- Provision user accounts 아래에서 Get started를 선택해요.
- Add user/group을 선택해요.
organization:team형식으로 그룹을 만들어요.- 그룹을 프로비저닝 그룹에 할당해요.
- 동기화를 시작하려면 Start provisioning을 선택해요.
- Monitor, Provisioning logs를 선택해 그룹이 성공적으로 프로비저닝됐는지 확인해요.
Docker 조직에서 그룹이 올바르게 프로비저닝됐는지, 구성원이 적절한 팀에 추가됐는지 확인할 수 있어요. 완료되면 SSO로 Docker에 로그인하는 사용자는 IdP에 매핑된 조직과 팀에 자동으로 추가돼요.
팁: 자동 사용자 프로비저닝·디프로비저닝을 활용하려면 SCIM을 활성화하세요. SCIM을 활성화하지 않으면 사용자는 자동으로 프로비저닝만 돼요. 디프로비저닝은 수동으로 해야 해요.
다음 단계 (Next steps)
- 조직 구성원에게 역할 할당
- 필요하면 Enforce sign-in