다음을 통해 공유


자습서: SCIM 엔드포인트 유효성 검사

이 자습서에서는 Microsoft Entra SCIM 유효성 검사기를 사용하여 프로비전 서버가 Azure SCIM 클라이언트와 호환되는지 유효성을 검사하는 방법을 설명합니다. 이 자습서는 Microsoft Entra 프로비전 서비스를 통해 ID를 관리하기 위해 SCIM 호환 서버를 빌드하려는 개발자를 대상으로 합니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • 테스트 방법 선택
  • 테스트 방법 구성
  • SCIM 엔드포인트 유효성 검사

필수 조건

테스트 방법 선택

첫 번째 단계는 SCIM 엔드포인트의 유효성을 검사하는 테스트 방법을 선택하는 것입니다.

  1. 웹 브라우저를 열고 SCIM Validator(https://scimvalidator.microsoft.com/)로 이동합니다.

  2. 세 가지 테스트 옵션 중 하나를 선택합니다. 기본 특성을 사용하거나, 스키마를 자동으로 검색하거나, 스키마를 업로드할 수 있습니다.

    SCIM Validator 기본 페이지의 스크린샷.

기본 특성 사용 - 시스템에서 기본 특성을 제공하고 필요에 맞게 수정합니다.

스키마 검색 - 엔드포인트가 /Schema를 지원하는 경우 이 옵션을 사용하면 도구가 지원되는 특성을 검색할 수 있습니다. 빌드할 때 앱을 업데이트하는 오버헤드를 줄일 수 있으므로 이 옵션을 사용하는 것이 좋습니다.

Microsoft Entra 스키마 업로드 - 샘플 앱에서 다운로드한 스키마를 Microsoft Entra ID에 업로드합니다.

테스트 방법 구성

이제 테스트 방법을 선택했으므로 다음 단계는 테스트 방법을 구성하는 것입니다.

SCIM Validator 특성 페이지의 스크린샷.

  1. 기본 특성 옵션을 사용하는 경우 표시된 모든 필드를 입력합니다.
  2. 스키마 검색 옵션을 사용하는 경우 SCIM 엔드포인트 URL 및 토큰을 입력합니다.
  3. 스키마를 업로드하는 경우 업로드할 .json 파일을 선택합니다. 이 옵션은 Microsoft Entra 관리 센터의 샘플 앱에서 내보낸 .json 파일을 허용합니다. 스키마를 내보내는 방법을 알아보려면 방법: 프로비전 구성 내보내기 및 알려진 양호한 상태로 롤백을 참조하세요.

참고 항목

그룹 특성을 테스트하려면 그룹 테스트 사용을 선택해야 합니다.

  1. 특성 목록의 끝에 있는 '특성 추가' 옵션과 페이지 오른쪽의 빼기(-) 기호를 사용하여 사용자 및 그룹 유형 모두에 대해 원하는 대로 목록 특성을 편집합니다.
  2. 사용자 및 그룹 특성 목록에서 조인 속성을 선택합니다.

참고 항목

일치 특성이라고도 하는 조인 속성은 사용자 및 그룹 리소스를 원본에서 고유하게 쿼리하고 대상 시스템에서 일치시킬 수 있는 특성입니다.

SCIM 엔드포인트 유효성 검사

마지막으로 엔드포인트를 테스트하고 유효성을 검사해야 합니다.

  1. 테스트 스키마를 선택하여 테스트를 시작합니다.

  2. 통과된 테스트와 실패한 테스트의 요약을 통해 결과를 검토합니다.

  3. 세부 정보 표시 탭을 선택하고 문제를 검토 및 해결합니다.

  4. 모든 테스트가 통과될 때까지 스키마를 계속 테스트합니다.

    SCIM Validator 결과 페이지의 스크린샷.

SCIM 유효성 검사기에서 수행하는 유효성 검사 참고

새 사용자 만들기

  • POST /Users – 전체 JSON 페이로드를 사용하여 새 사용자를 만듭니다.
    • 엔드포인트가 HTTP 201을 반환합니다.
    • POST 응답에 생성된 사용자 ID가 포함되어 있습니다.
  • GET /Users?filter={joiningProperty} eq "value" – 조인 속성을 필터링하여 생성을 확인합니다.
    • GET에서 만든 사용자를 반환합니다.
    • GET에서 반환된 값은 POST 요청에서 전달된 값과 일치합니다(엔드포인트에 따라 다름).
  • DELETE /Users - 테스트 사용자를 정리합니다. -하드 삭제가 지원되는 경우에만 호출됩니다.

중복 사용자 만들기

  • POST /Users – 기존 사용자와 동일한 페이로드(동일한 고유/조인 특성 포함)를 사용하여 사용자를 만들려고 시도합니다.
    • 첫 번째 만들기 요청에서 HTTP 201 반환
    • 두 번째 만들기 요청에 HTTP 409 반환

특성 추가

  • POST /Users - 사용자 리소스를 만듭니다.
    • HTTP 2xx 성공
  • PATCH /Users/{id} – JSON 패치 문서(추가 작업 포함)를 사용하여 필수가 아닌 추가 특성을 삽입합니다.
  • GET /Users?filter={joiningProperty} eq "value" – 추가된 특성을 확인하기 위해 사용자를 검색합니다.
    • 사용자가 반환됩니다.
    • 삽입된 특성이 이제 사용자에게 표시됩니다.

사용자 특성 바꾸기

  • POST /Users - 사용자 리소스를 만듭니다.
    • HTTP 2xx 성공
  • PATCH /Users/{id} – JSON 패치 문서(바꾸기 작업 사용)를 보내 하나 이상의 특성을 업데이트합니다.
  • GET /Users?filter={joiningProperty} eq "value" – 업데이트된 특성이 올바르게 적용되었는지 확인합니다.
    • 사용자가 반환됩니다.
    • 업데이트된 특성이 사용자에게 있습니다.

조인 속성 업데이트

  • POST /Users - 사용자 리소스를 만듭니다.
    • HTTP 2xx 성공
  • PATCH /Users/{id} – JSON 패치 문서를 통해 조인 속성(예: userName)을 업데이트합니다.
  • GET /Users?filter={joiningProperty} eq "newValue" – 조인 속성이 업데이트되었는지 확인합니다.
    • 사용자에 대한 조인 속성이 업데이트되었습니다.

활성 특성을 False로 업데이트

  • POST /Users/ - 스키마를 기반으로 리소스를 만듭니다.
    • HTTP 2xx 성공
    • 비활성화된 사용자는 GET 요청에 반환되어야 합니다.
  • PATCH /Users/{id} – "active" 특성을 false로 설정하는 JSON 패치 문서를 발급합니다.
    • HTTP 2xx 성공
  • GET /Users?filter={joiningProperty} eq "value" – 활성 특성이 이제 false인지 확인하기 위해 사용자를 검색합니다.
    • 반환된 사용자 레코드에는 ACTIVE=FALSE가 있어야 합니다."

새 그룹 만들기

  • POST /Groups – 전체 JSON 페이로드를 사용하여 새 그룹을 만듭니다.
    • 엔드포인트가 HTTP 201을 반환합니다.
    • POST 응답에 생성된 그룹 ID가 포함되어 있습니다.
  • GET /Group?filter={joiningProperty} eq "value" – 조인 속성을 필터링하여 생성을 확인합니다.
    • GET에서 만든 그룹을 반환합니다.
    • GET에서 반환된 값은 POST 요청에서 전달된 값과 일치합니다(엔드포인트에 따라 다름).
  • DELETE /Groups - 테스트 사용자를 정리합니다.
    • 하드 삭제가 지원되는 경우에만 호출됩니다.

중복 그룹 만들기

  • POST /Groups – 기존 그룹에 동일한 페이로드(동일한 고유/조인 특성 포함)를 사용하여 그룹을 만들려고 시도합니다.
    • 첫 번째 만들기 요청에서 HTTP 201 반환
    • 두 번째 만들기 요청에 HTTP 409 반환

그룹 특성 업데이트

  • POST /Groups - 특성을 업데이트하는 새 그룹 리소스를 만듭니다.
    • POST가 HTTP 2xx를 반환합니다.
  • PATCH /Groups/{id} – 바꾸기 작업을 사용하여 기존 그룹의 하나 이상의 특성(멤버 제외)을 업데이트하는 JSON 패치 문서를 보냅니다.
    • PATCH가 성공(HTTP 2xx)을 반환합니다.
  • GET /Groups?filter={joiningProperty} eq "value" – 그룹의 특성이 올바르게 업데이트되었는지 확인합니다.
    • GET은 패치된 그룹을 반환합니다.
    • PATCH 요청에서 반환된 그룹의 특성이 변경된 특성과 일치합니다.

새 그룹 리소스 만들기

  • POST /Groups - 구성원을 추가할 새 그룹 리소스를 만듭니다.
    • POST가 HTTP 2xx를 반환합니다.
  • POST /Users – 그룹 구성원으로 사용할 새 사용자 리소스를 만듭니다.
    • POST가 HTTP 2xx를 반환합니다.
  • PATCH /Groups/{id} – JSON 패치 문서를 사용하여 새로 만든 사용자의 식별자를 그룹에 추가합니다.
    • PATCH가 성공을 반환합니다.

SCIM 유효성 검사기에서 식 사용

SCIM 유효성 검사기는 식을 사용하여 특성에 대해 원하는 값을 생성하도록 지원합니다.

식을 사용하는 방법

  1. 특성 페이지로 이동합니다.
  2. 사용자 지정하려는 특성의 열에 원하는 식을 입력합니다.
  3. 테스트 실행

참고 항목

이러한 식은 사용자 및 그룹 특성 모두에 대해 작동합니다.

사용 가능한 식

아래 표에서는 사용 가능한 식을 나열합니다.

의미 예제 결과
generateRandomString {문자열 문자 수} 지정된 알파벳 문자 수를 사용하여 임의 문자열 생성 {%generateRandomString 6%}@contoso.com CXJHYP@contoso.com
generateRandomNumber {숫자 수} 지정된 숫자 수를 사용하여 난수 생성 {%generateRandomNumber 4%} 8821
generateAlphaNumeric {문자 수} 지정된 문자 수를 사용하여 알파벳과 숫자가 혼합된 임의 문자열 생성 {%generateAlphaNumeric 7%} 59Q2M9W
generateAlphaNumericWithSpecialCharacters {문자 수} 지정된 문자 수에 따라 알파벳, 숫자 및 특수 문자가 혼합된 임의 문자열 생성 {%generateAlphaNumericWithSpecialCharacters 8%}테스트 D385N05'TEST

식 앞이나 후에 값을 추가하여 원하는 결과를 얻을 수 있습니다. 예를 들어 {% generateRandomString 6 %}@contoso.com을 userName 특성의 값 필드에 추가하면 contoso.com 도메인을 유지하면서 모든 테스트에서 새 userName 값이 생성됩니다.

리소스 정리

테스트에 더 이상 필요하지 않은 Azure 리소스를 만든 경우 삭제하는 것을 잊지 마세요.

Microsoft Entra SCIM 검사기의 알려진 문제

  • 일시 삭제(사용 안 함)는 아직 지원되지 않습니다.
  • 표준 시간대 형식은 임의로 생성되며 유효성을 검사하려는 시스템에서는 실패합니다.
  • 패치 사용자 제거 특성은 특정 시스템에 대한 필수 특성을 제거하려고 시도할 수 있습니다. 이러한 오류는 무시해야 합니다.

다음 단계