그룹 매핑

그룹 매핑 (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 문서를 참고해요.

그룹 매핑을 설정하려면:

  1. Okta에 로그인하고 애플리케이션을 열어요.
  2. 애플리케이션의 SAML Settings 페이지로 이동해요.
  3. Group Attribute Statements (optional) 섹션에서 다음과 같이 구성해요.
    • Name: groups
    • Name format: Unspecified
    • Filter: Starts with + organization: 여기서 organization은 조직의 이름
  4. 필터 옵션이 Docker 조직과 관련 없는 그룹을 걸러내요.
  5. Directory, 그다음 Groups를 선택해 그룹을 만들어요.
  6. Docker의 조직·팀 이름과 일치하는 organization:team 형식으로 그룹을 추가해요.
  7. 만든 그룹에 사용자를 할당해요.

다음에 그룹을 Docker와 동기화하면 사용자가 정의한 Docker 그룹에 매핑돼요.

Entra ID

IdP의 사용자 인터페이스는 다음 단계와 약간 다를 수 있어요. 확인하려면 Entra ID 문서를 참고해요.

  1. Entra ID에 로그인하고 애플리케이션을 열어요.
  2. Manage, 그다음 Single sign-on을 선택해요.
  3. Add a group claim을 선택해요.
  4. Group Claims 섹션에서 소스 속성 **Cloud-only group display names (Preview)**로 Groups assigned to the application을 선택해요.
  5. Advanced options, 그다음 Filter groups 옵션을 선택해요.
  6. 다음과 같이 속성을 구성해요.
    • Attribute to match: Display name
    • Match with: Contains
    • String: :
  7. Save를 선택해요.
  8. Groups, All groups, New group을 선택해 그룹을 만들어요.
  9. 만든 그룹에 사용자를 할당해요.

다음에 그룹을 Docker와 동기화하면 사용자가 정의한 Docker 그룹에 매핑돼요.

SCIM으로 그룹 매핑 구성하기

더 고급 사용자 수명주기 관리를 위해 SCIM과 함께 그룹 매핑을 사용해요. 시작하기 전에 먼저 SCIM을 설정했는지 확인해요.

Okta

  1. Okta에 로그인하고 애플리케이션을 열어요.
  2. Applications, Provisioning, Integration을 선택해요.
  3. Edit를 선택해 연결에서 그룹을 활성화한 뒤 Push groups를 선택해요.
  4. Save를 선택해요. 이 구성 저장은 애플리케이션에 Push Groups 탭을 추가해요.
  5. Directory로 이동해 Groups를 선택해 그룹을 만들어요.
  6. Docker의 조직·팀 이름과 일치하는 organization:team 형식으로 그룹을 추가해요.
  7. 만든 그룹에 사용자를 할당해요.
  8. Integration 페이지로 돌아가 Push Groups 탭을 선택해 그룹이 프로비저닝되는 방식을 제어·관리하는 보기를 열어요.
  9. Push Groups, 그다음 Find groups by rule을 선택해요.
  10. 규칙으로 그룹을 구성해요.
    • 규칙 이름 예: Sync groups with Docker Hub
    • docker:로 시작하거나 다중 조직의 경우 :을 포함하는 이름으로 그룹 일치
  11. Immediately push groups by rule을 활성화하면 그룹이나 그룹 할당에 변경이 있을 때 바로 동기화돼요. 그룹을 수동으로 push하고 싶지 않으면 활성화해요.
  12. Pushed Groups 열의 By rule 아래에서 새 규칙을 찾아요. 오른쪽 그룹 테이블에 그 규칙과 일치하는 그룹이 나열돼요.
  13. 이 테이블에서 그룹을 push하려면:
    • 그룹을 Group에서 선택해요.
    • Push Status 드롭다운을 선택해요.
    • Push Now를 선택해요.

Entra ID

그룹 매핑을 구성하기 전에 다음을 완료해요.

  1. Entra ID에 로그인하고 애플리케이션으로 가요.
  2. 애플리케이션에서 Provisioning, 그다음 Mappings를 선택해요.
  3. Provision Microsoft Entra ID Groups를 선택해요.
  4. Show advanced options, 그다음 Edit attribute list를 선택해요.
  5. externalId 타입을 reference로 업데이트하고 Multi-Value 체크박스를 선택한 뒤 참조 객체 속성 urn:ietf:params:scim:schemas:core:2.0:Group을 선택해요.
  6. Save, 그다음 Yes를 선택해 확인해요.
  7. Provisioning으로 가요.
  8. Provision Status를 On으로 전환하고 Save를 선택해요.

다음으로 그룹 매핑을 설정해요.

  1. 애플리케이션 개요 페이지로 가요.
  2. Provision user accounts 아래에서 Get started를 선택해요.
  3. Add user/group을 선택해요.
  4. organization:team 형식으로 그룹을 만들어요.
  5. 그룹을 프로비저닝 그룹에 할당해요.
  6. 동기화를 시작하려면 Start provisioning을 선택해요.
  7. Monitor, Provisioning logs를 선택해 그룹이 성공적으로 프로비저닝됐는지 확인해요.

Docker 조직에서 그룹이 올바르게 프로비저닝됐는지, 구성원이 적절한 팀에 추가됐는지 확인할 수 있어요. 완료되면 SSO로 Docker에 로그인하는 사용자는 IdP에 매핑된 조직과 팀에 자동으로 추가돼요.

팁: 자동 사용자 프로비저닝·디프로비저닝을 활용하려면 SCIM을 활성화하세요. SCIM을 활성화하지 않으면 사용자는 자동으로 프로비저닝만 돼요. 디프로비저닝은 수동으로 해야 해요.

다음 단계 (Next steps)

  • 조직 구성원에게 역할 할당
  • 필요하면 Enforce sign-in

더 알아보기 (Learn more)