Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

SCIM으로 사용자와 그룹 자동 프로비저닝

SCIM 2.0(System for Cross-domain Identity Management)은 신원 제공자가 사용자와 그룹 정보를 Foundry에 동기화하는 프로토콜입니다. 가입과 퇴사 및 접근 회수를 로그인 시점에만 의존하지 않고 반영하는 데 사용할 수 있습니다.

SCIM은 Beta이며 플랫폼 인스턴스에 따라 제공되지 않을 수 있습니다. Foundry와 신원 제공자 양쪽을 구성해야 완료됩니다. Foundry의 제공자 설정을 바꾸려면 Authentication administrator 또는 Enrollment administrator 역할이 필요합니다.

전용 하위 도메인 판단

IdP의 SCIM 요청이 기존 호스트의 인바운드 정책에 허용되지 않은 IP에서 들어온다면 SCIM 전용 하위 도메인을 만들 수 있습니다. 일반 로그인 호스트의 허용 목록을 그 IP까지 넓히지 않고 별도 정책으로 운영하는 용도입니다.

예를 들어 설명용 192.0.2.10/32만 허용한 호스트에 다른 주소의 프로비저닝 서비스가 접근해야 한다면 별도 SCIM 도메인을 고려합니다. 실제 허용 범위는 IdP가 사용하는 주소와 국가를 확인해 정합니다.

Foundry에서 활성화

SCIM 인증에는 OAuth 2.0 Client credentials grant를 사용하는 외부 애플리케이션을 만듭니다.

  1. Control Panel > Authentication > [Provider name] > Manage > Enable SCIM을 열고 토글을 켭니다.

  1. Set up SCIM domain을 선택하고 사용할 도메인을 고릅니다. 전용 하위 도메인이 필요하면 Use a SCIM subdomain, 기존 호스트를 사용할 경우 Use this domain을 선택합니다.

  1. 변경을 저장합니다.

인바운드 네트워크

기존 호스트와 하위 도메인 어느 쪽을 사용하든 IdP의 SCIM 발신 CIDR과 국가가 해당 도메인의 Network ingress에서 허용되어야 합니다.

SCIM 설정의 Actions > View ingress로 이동하거나 Control Panel 검색에서 Network ingress를 찾습니다. 검색 단축키는 macOS Cmd+J, Windows Ctrl+J입니다.

There is a denied IP address range in this change request. Remove it before invoking the request가 표시되면 Palantir Support에 문의합니다. 거부한 범위를 다른 설정으로 우회하지 않습니다.

SCIM 자격 정보 생성

Authentication의 해당 제공자 Manage로 돌아가 Generate SCIM credentials를 선택합니다. 외부 앱 클라이언트를 만들 조직을 고릅니다.

선택한 조직은 누가 SCIM 클라이언트를 관리하고 secret을 교체할 수 있는지 결정합니다. 그 조직에서 외부 앱을 편집할 권한이 없는 사용자는 기존 secret 교체 대신 새 클라이언트 생성만 할 수 있습니다. 새 클라이언트를 만들면 이전 클라이언트의 자격 정보가 무효화되므로 관리 조직과 담당자를 신중히 선택합니다.

생성 결과에는 SCIM URL, Client ID, Token endpoint와 Client secret이 있습니다. 이 값을 IdP의 SCIM 클라이언트에 전달합니다.

Token endpoint도 선택한 도메인을 사용해야 합니다. SCIM 하위 도메인이면 https://scim.{domain}/multipass/api/oauth2/token, 기존 도메인이면 https://{domain}/multipass/api/oauth2/token 형태입니다. {domain}은 실제 생성 결과의 도메인을 뜻합니다.

신원 제공자 연결

Microsoft Entra ID는 제공자별 설정과 식별자 대응을 따릅니다. 다른 SCIM 2.0 제공자도 Foundry 엔드포인트를 지정하고 Client credentials로 인증하며 사용자 및 그룹 특성을 Control Panel의 매핑과 일치시키는 같은 기본 구성을 사용합니다.

제공자마다 화면 명칭, 지원 특성과 프로비저닝 옵션 및 SCIM 규격 구현 범위가 다릅니다. 특정 제공자가 모든 규격 기능을 지원한다고 가정하지 말고 해당 기능을 확인합니다.

로그인과 SCIM의 그룹 갱신

SCIM만으로 그룹 소속을 관리하려면 제공자의 Attribute mapping에서 Import user groups from the identity provider를 끕니다. 로그인 시 그룹 정보를 덮어쓰지 않고 기존 소속은 다음 SCIM 갱신까지 유지됩니다.

일부 IdP는 변경과 동시에 요청을 보내지 않으므로 소속이 한동안 오래된 상태일 수 있습니다. 그룹 소속을 보안 자격에 사용하는 경우 이 지연을 허용할 수 있는지 검토합니다.

조직 배정의 실행 시점

외부 그룹을 조건으로 사용하는 조직 배정 규칙은 SCIM의 최초 사용자 생성에서 바로 실행되지 않습니다. 최초 동기화나 이후 create 요청에서도 사용자 생성과 그룹 소속 반영이 동시에 이루어지지 않기 때문입니다. 로그인하거나 SCIM updateUser 요청이 발생해야 해당 사용자 규칙을 평가할 수 있습니다.

외부 그룹의 소속 갱신만으로도 조직 배정을 다시 평가하지 않습니다. 사용자가 로그인하거나 사용자 이름 변경 같은 별도 사용자 갱신으로 updateUser가 실행되어야 합니다. 조직과 그룹 배정을 이 실행 시점에 맞게 설계합니다.

중첩 그룹, 로그와 인증 방식

Entra ID는 SCIM으로 중첩 그룹을 프로비저닝하지 않으므로 중첩 그룹을 그대로 동기화하려고 하지 않습니다. 대화형 로그인에서 전달하는 그룹 claim의 평탄화된 소속과 대응을 유지해야 합니다. 이는 Foundry 내부 그룹을 중첩하는 기능과 다른 문제입니다.

실패한 SCIM 요청은 Foundry 오류 로그에서 확인할 수 있습니다. 성공한 프로비저닝 사건을 감사할 때에는 IdP의 provisioning logs를 우선 확인합니다.

정적 bearer 방식의 SCIM 인증은 기본 지원 방식이 아닙니다. Client credentials grant가 요구되며, 예외적인 이유로 bearer 방식이 필요하면 Palantir Support에 문의합니다.

연결 및 식별자 오류

Entra의 연결 시험에서 SystemForCrossDomainIdentityManagementCredentialValidationUnavailable과 An error occurred while sending the request가 나타나면 프로비저닝 에이전트의 발신 IP 및 라우팅 때문에 TCP/TLS 연결을 만들지 못하는 경우가 있습니다. Unable to connect to remote server도 같은 종류의 문제일 수 있습니다. Azure Front Door Proxy가 필요할 수 있으므로 Palantir Support와 구성을 확인합니다.

다음 오류는 SCIM externalId와 로그인에서 매핑한 Provider ID가 서로 다른 경우에 발생할 수 있습니다.

Cannot complete login for your user with username [username] and provider user ID [provider user ID] because that username is already being used by the user with user ID [existing user ID] and provider user ID [existing provider user ID].

IdP가 보내는 externalId를 Control Panel의 Provider ID와 같은 값으로 수정하고 다음 SCIM 동기화를 기다립니다. 이미 만들어진 계정의 연결 문제를 이름만 바꾸어 숨기지 말고 해결되지 않으면 Palantir Support에 문의합니다.