다음을 통해 공유


Postman을 사용한 빠른 시작 API 기반 인바운드 프로비전

이 자습서에서는 Postman을 사용하여 API 기반 인바운드 프로비전을 빠르게 테스트하는 방법을 설명합니다.

필수 구성 요소

인바운드 프로비전 API에 사용자 데이터 업로드

이 단계에서는 Postman 앱을 구성하고 구성된 서비스 계정을 사용하여 API를 호출합니다.

  1. Postman 앱을 다운로드하고 설치합니다.
  2. Postman 데스크톱 앱을 엽니다.
  3. 작업 영역 메뉴에서 작업 영역 만들기를 선택하여 Microsoft Entra 프로비전 API라는 새 작업 영역을 만듭니다.
  4. 다음 Postman 컬렉션을 다운로드하여 로컬 디렉터리에 저장합니다.
  5. Postman의 가져오기 옵션을 사용하여 두 파일을 모두 작업 영역으로 가져옵니다.
    Postman Import 요소의 스크린샷.
  6. 환경 메뉴를 클릭하고 Test-API2AAD 환경을 엽니다.
  7. 등록된 앱에서 client_id, client_secrettoken_endpoint 값을 검색합니다. 등록된 앱의 스크린샷.
  8. 표의 초기 값현재 값 열 아래에 각 변수에 대한 값을 붙여넣습니다. 인증 변수 스크린샷
  9. 프로비전 앱 방문 페이지를 열고 jobId 변수에 대한 작업 ID 값과 bulk_upload_endpoint 변수에 대한 Provisioning API 엔드포인트 값을 복사하여 붙여넣습니다.
  10. ms_graph_resource_id 값을 변경하지 않고 그대로 두고 환경 컬렉션을 저장합니다. 초기 값현재 값 열이 모두 채워져 있는지 확인합니다.
  11. 그런 다음 Microsoft Entra 인바운드 프로비전 컬렉션을 엽니다.
  12. 환경 드롭다운에서 Test-API2AAD를 선택합니다.
  13. 컬렉션과 관련된 권한 부여 탭을 선택합니다.
  14. OAuth 설정을 사용하도록 권한 부여가 구성되어 있는지 확인합니다. OAuth 구성 프로비전 스크린샷.
  15. 고급 옵션 섹션에는 다음 구성이 표시되어야 합니다. 프로비전 고급 옵션 스크린샷.
  16. 새 액세스 토큰 가져오기를 클릭하여 액세스 토큰을 획득하는 프로세스를 시작합니다.
  17. 이 컬렉션의 모든 요청에 액세스 토큰을 사용하려면 토큰 사용 옵션을 선택합니다.

    참고 항목

    client_credentials 부여 유형을 사용하여 생성된 OAuth 액세스 토큰은 1시간 동안 유효합니다. https://jwt.ms를 사용하여 토큰을 디코딩하고 만료 시기를 확인할 수 있습니다. 토큰이 만료된 후 요청이 실패합니다. 액세스 토큰이 만료된 경우 Postman에서 새 액세스 토큰 가져오기를 클릭하여 새 액세스 토큰을 가져옵니다. 토큰은 권한 부여 탭의 현재 토큰 섹션에 자동으로 복사됩니다. 이제 토큰을 사용하여 API 호출을 수행할 수 있습니다. 이 컬렉션의 첫 번째 호출부터 시작해 보겠습니다.

  18. SCIM 대량 요청 업로드 요청을 엽니다.
  19. 권한 부여 탭에서 형식이 부모로부터 권한 상속으로 설정되어 있는지 확인합니다.
  20. 샘플 SCIM 대량 요청을 보고 편집하려면 요청 본문 탭으로 변경합니다. 편집이 완료되면 보내기를 클릭합니다.

API 호출이 성공하면 202 Accepted. 메시지가 표시됩니다. 헤더 아래에서 위치 특성은 프로비전 로그 API 엔드포인트를 가리킵니다.

대량 요청 페이로드 처리 확인

Microsoft Entra 관리 센터에서 또는 Postman을 사용하여 처리를 확인할 수 있습니다.

Microsoft Entra 관리 센터에서 처리 확인

  1. 최소한 애플리케이션 관리자 수준 자격 증명으로 Microsoft Entra 관리 센터에 로그인합니다.

  2. Microsoft Entra ID -> 애플리케이션 -> 엔터프라이즈 애플리케이션으로 이동합니다.

  3. 모든 애플리케이션에서 검색 필터 텍스트 상자를 사용하여 API 기반 프로비전 애플리케이션을 찾아 엽니다.

  4. 프로비전 블레이드를 엽니다. 방문 페이지에는 마지막 실행 상태가 표시됩니다.

  5. 프로비전 로그 블레이드를 열려면 프로비전 로그 보기를 클릭합니다. 또는 메뉴 옵션 모니터링 -> 프로비전 로그를 클릭할 수 있습니다.

    메뉴의 프로비전 로그 스크린샷.

  6. 추가 처리 세부 정보를 보려면 프로비전 로그의 기록을 클릭합니다.

  7. 프로비전 로그 세부 정보 화면에는 특정 사용자에 대해 실행된 모든 단계가 표시됩니다.

    • API에서 가져오기 단계에서 일괄 요청에서 추출된 사용자 데이터의 세부 정보를 확인합니다.
    • 사용자 일치 단계에서는 일치하는 식별자를 기반으로 일치하는 사용자의 세부 정보를 표시합니다. 사용자 일치가 발생하면 프로비전 서비스가 업데이트 작업을 수행합니다. 일치하는 사용자가 없으면 프로비전 서비스가 만들기 작업을 수행합니다.
    • 사용자가 범위 내에 있는지 확인 단계에서는 범위 지정 필터 평가에 대한 세부 정보를 보여 줍니다. 기본적으로 모든 사용자가 처리됩니다. 범위 지정 필터(예: 영업 부서에 속한 사용자만 처리)를 설정한 경우 범위 지정 필터의 평가 세부 정보가 이 단계에 표시됩니다.
    • 사용자 프로비전 단계에서는 최종 처리 단계와 사용자 계정에 적용되는 변경 내용을 호출합니다.
    • 특성 업데이트를 보려면 수정된 속성 탭을 사용합니다.

Postman에서 프로비전 로그 API를 사용하여 처리 확인

이 섹션에서는 구성한 것과 동일한 서비스 계정(서비스 주체)을 사용하여 Postman에서 프로비전 로그를 쿼리하는 방법을 보여 줍니다.

  1. Postman 데스크톱 앱에서 작업 영역 Microsoft Entra 프로비전 API를 엽니다.
  2. Microsoft Entra 인바운드 프로비전 컬렉션에는 프로비전 로그를 쿼리할 수 있는 세 가지 샘플 요청이 포함되어 있습니다.
  3. 이러한 미리 정의된 요청을 열 수 있습니다.
  4. 유효한 액세스 토큰이 없거나 액세스 토큰이 여전히 유효한지 확실하지 않은 경우 컬렉션 개체의 루트 권한 부여 탭으로 이동하여 새 액세스 토큰 가져오기 옵션을 사용하여 새 토큰을 가져옵니다.
  5. 프로비전 로그 기록을 가져오려면 보내기를 클릭합니다. 성공적으로 실행되면 서버로부터 프로비전 로그 기록과 함께 200 HTTP 응답을 가져오게 됩니다.

부록

SCIM 엔터프라이즈 사용자 스키마를 사용한 대량 요청

아래 표시된 대량 요청은 SCIM 표준 코어 사용자 및 엔터프라이즈 사용자 스키마를 사용합니다.

요청 본문

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701984",
            "userName": "bjensen@example.com",
            "name": {
                "formatted": "Ms. Barbara J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Barbara",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Babs Jensen",
            "nickName": "Babs",
            "emails": [
            {
              "value": "bjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Universal City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91608",
              "country": "USA",
              "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5555",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Guide",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                 "employeeNumber": "701984",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "89607",
                     "displayName": "John Smith"
                 }
            }
        }
    },
    {
        "method": "POST",
        "bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
        "path": "/Users",
        "data": {
            "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"],
            "externalId": "701985",
            "userName": "Kjensen@example.com",
            "name": {
                "formatted": "Ms. Kathy J Jensen, III",
                "familyName": "Jensen",
                "givenName": "Kathy",
                "middleName": "Jane",
                "honorificPrefix": "Ms.",
                "honorificSuffix": "III"
            },
            "displayName": "Kathy Jensen",
            "nickName": "Kathy",
            "emails": [
            {
              "value": "kjensen@example.com",
              "type": "work",
              "primary": true
            }
            ],
            "addresses": [
            {
              "type": "work",
              "streetAddress": "100 Oracle City Plaza",
              "locality": "Hollywood",
              "region": "CA",
              "postalCode": "91618",
              "country": "USA",
              "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
              "primary": true
            }
            ],
            "phoneNumbers": [
            {
              "value": "555-555-5545",
              "type": "work"
            }
            ],
            "userType": "Employee",
            "title": "Tour Lead",
            "preferredLanguage": "en-US",
            "locale": "en-US",
            "timezone": "America/Los_Angeles",
            "active":true,
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                 "employeeNumber": "701985",
                 "costCenter": "4130",
                 "organization": "Universal Studios",
                 "division": "Theme Park",
                 "department": "Tour Operations",
                 "manager": {
                     "value": "701984",
                     "displayName": "Barbara Jensen"
                 }
            }
        }
    }
],
    "failOnErrors": null
}

다음 단계