인바운드 프로비전 API에 대한 액세스 권한 부여
소개
API 기반 인바운드 프로비전 앱을 구성한 후에는 API 클라이언트가 프로비전 /bulkUpload API에 요청을 보내고 프로비전 로그 API를 쿼리할 수 있도록 액세스 권한을 부여해야 합니다. 이 자습서에서는 이러한 권한을 구성하는 단계를 안내합니다.
API 클라이언트가 Microsoft Entra ID로 인증하는 방법에 따라 다음 두 가지 구성 옵션 중에서 선택할 수 있습니다.
- 서비스 주체 구성: API 클라이언트가 Microsoft Entra 등록 앱의 서비스 주체를 사용하고 OAuth 클라이언트 자격 증명 부여 흐름을 사용하여 인증하려는 경우 다음 지침을 따릅니다.
- 관리 ID 구성: API 클라이언트가 Microsoft Entra 관리 ID를 사용하려는 경우 다음 지침을 따릅니다.
서비스 주체 구성
이 구성은 외부 API 클라이언트를 나타내는 Microsoft Entra ID에 앱을 등록하고 인바운드 프로비전 API를 호출할 수 있는 권한을 부여합니다. 서비스 주체 클라이언트 ID와 클라이언트 암호는 OAuth 클라이언트 자격 증명 부여 흐름에서 사용될 수 있습니다.
- 최소한 애플리케이션 관리자 로그인 자격 증명으로 Microsoft Entra 관리 센터(https://entra.microsoft.com)에 로그인합니다.
- Microsoft Entra ID ->애플리케이션 ->앱 등록으로 이동합니다.
- 새 등록 옵션을 클릭합니다.
- 앱 이름을 입력하고 기본 옵션을 선택한 다음 등록을 클릭합니다.
- 개요 블레이드에서 애플리케이션(클라이언트) ID 및 디렉터리(테넌트) ID 값을 복사하고 나중에 API 클라이언트에서 사용할 수 있도록 저장합니다.
- 앱의 바로 가기 메뉴에서 인증서 및 비밀 옵션을 선택합니다.
- 새 클라이언트 암호를 만듭니다. 비밀 및 만료 날짜에 대한 설명을 입력합니다.
- 클라이언트 비밀번호의 생성된 값을 복사하고 나중에 API 클라이언트에서 사용할 수 있도록 저장합니다.
- 바로 가기 메뉴 API 권한에서 권한 추가 옵션을 선택합니다.
- API 권한 요청에서 Microsoft Graph를 선택합니다.
- 애플리케이션 권한 선택.
- AuditLog.Read.All 및 SynchronizationData-User.Upload 권한을 검색하고 선택합니다.
- 권한 할당을 완료하려면 다음 화면에서 관리자 동의 부여를 클릭하세요. 확인 대화 상자에서 예를 클릭합니다. 앱에는 다음 사용 권한 집합이 있어야 합니다.
- 이제 API 클라이언트에서 서비스 주체를 사용할 준비가 되었습니다.
- 프로덕션 워크로드의 경우 서비스 주체 또는 관리 ID와 함께 클라이언트 인증서 기반 인증을 사용하는 것이 좋습니다.
관리 ID 구성
이 섹션에서는 관리 ID에 필요한 권한을 할당하는 방법을 설명합니다.
Azure 리소스에 사용할 관리 ID를 구성합니다.
Microsoft Entra 관리 센터에서 관리 ID의 이름을 복사합니다. 예를 들어 아래 스크린샷은 “CSV2SCIMBulkUpload”라는 Azure Logic Apps 워크플로와 연결된 시스템 할당 관리 ID의 이름을 보여 줍니다.
다음 PowerShell 스크립트를 실행하여 관리 ID에 권한을 할당합니다.
Install-Module Microsoft.Graph -Scope CurrentUser Connect-MgGraph -Scopes "Application.Read.All","AppRoleAssignment.ReadWrite.All,RoleManagement.ReadWrite.Directory" $graphApp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'" $PermissionName = "SynchronizationData-User.Upload" $AppRole = $graphApp.AppRoles | ` Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"} $managedID = Get-MgServicePrincipal -Filter "DisplayName eq 'CSV2SCIMBulkUpload'" New-MgServicePrincipalAppRoleAssignment -PrincipalId $managedID.Id -ServicePrincipalId $managedID.Id -ResourceId $graphApp.Id -AppRoleId $AppRole.Id $PermissionName = "AuditLog.Read.All" $AppRole = $graphApp.AppRoles | ` Where-Object {$_.Value -eq $PermissionName -and $_.AllowedMemberTypes -contains "Application"} $managedID = Get-MgServicePrincipal -Filter "DisplayName eq 'CSV2SCIMBulkUpload'" New-MgServicePrincipalAppRoleAssignment -PrincipalId $managedID.Id -ServicePrincipalId $managedID.Id -ResourceId $graphApp.Id -AppRoleId $AppRole.Id
권한이 적용되었는지 확인하려면 Microsoft Entra ID의 엔터프라이즈 애플리케이션에서 관리 ID 서비스 주체를 찾습니다. 애플리케이션 유형 필터를 제거하여 모든 서비스 주체를 확인합니다.
이제 API 클라이언트에서 관리 ID를 사용할 준비가 되었습니다.