0

제 의뢰인은 AzureAD 프리미엄이있다, 그래서 우리는 역할에 그룹을 할당 할 수 있습니다
우리가 할 수있는 스크립트 새 그룹 생성 (자신의 온 - 프레미스 AD)에, 그 그룹에 사용자를 추가하고, AAD
우리가 할 수있는에 그룹을 동기화 매니페스트 파일
그러나 나는 밖으로 근무 한 적이없는의 스크립트 조작은 자동으로 "할당 그룹 응용 프로그램에 대한 역할"을 수행하는 방법이다. 누군가 Azure 포털> 디렉토리> 애플리케이션> 애플리케이션> 사용자 및 그룹> 할당 할 그룹을 찾아> 할당> 일치하는 역할을 찾으십시오 (헹굼 및 반복).Powershell을 사용하여 Azure의 응용 프로그램 역할에 AD 그룹을 할당하려면 어떻게해야합니까?

앱은 본질적으로 셰어 포인트입니다 (Azure 외부 - 앱에 & A에 대해 구내 광고와 AAD를 페더레이션 함). 그룹은 다양한 라이브러리에 대한 액세스를 제한하는 역할과 일치합니다. 불행히도 내 고객의 비즈니스 모델은 매우 다양합니다. 즉, 많은 역할을 담당 할 많은 그룹이 있음을 의미합니다.

PowerShell은 선택의 우리의 스크립트 관리 언어입니다.

나는 나에게 objectId을 제공 Get-AzureAdGroup -SearchString "groupname"와 진보의 비트를 만들었습니다. 나는 그 파이프를 Get-AzureAdGroupAppRoleAssignment에 연결할 수 있으며, 이는 manifest 파일의 GUID와 일치하는 id을 제공합니다. 그래서이 모든 것은 실제로 그룹을 역할에 할당하는 것 외에는 서로 연결됩니다.

그래서, 다음으로 this blog에 따라 GraphAPI보고 시작했다. (블로그는 AAD 프리미엄이없는 경우 사용자를 하나의 특정 역할에 추가하는 것에 관한 모든 것이 었습니다.)

GET https://graph.windows.net/[tenant].onmicrosoft.com/servicePrincipals/[app id]/appRoleAssignments?api-version=1.6으로 약간의 성공을 거두었지만 할당 된대로 Azure Portal에 표시 되더라도 일부 테스트 그룹은 위의 REST 쿼리에 대한 응답으로 표시되지 않습니다. 일부는 포털을 통해 할당을 취소 할 때 응답에서 제거됩니다. 일관성이 부족해도 쿼리에 대한 확신이 없습니다.

  • AppRoleAssignments를 수행 할 수있는 고유 한 powershell cmdlet이 있습니까? (이것은 GraphAPI보다 나의 선호도 일 것이다).
  • 이유는 GraphAPI에서 일관성없는 결과? 어떤 포인터

업데이트에 미리

감사
I합니다 (AzureADPreview 모듈에서)을 *-AzureAd* cmdlet을 조사하고 있습니다,하지만 Microsoft Documentation 조금 빛 - 그것은 미리보기로,

입력
:하지만 나는 그들이보다 더 나은 문서를 가지고 있다고 생각입력 형식은 cmdlet으로 파이프 할 수있는 개체 유형입니다.

출력
출력 타입 cmdlet를 방출하는 객체의 형태이다.

이러한 cmdlet 이 GraphAPI REST 호출을 마무리하는 것 않습니다.

업데이트
AzureADPreview하는 cmdlet이 올바른 솔루션입니다. 내 업데이트 2에 대해 설명했다

Connect-AzureAD -TenantId xxxxx-xxxx-xxxx-etc 
$app = Get-AzureADServicePrincipal -SearchString "display name of app" 

foreach ($AD_group_name in $list_of_names_to_map) { 
$AADGroup = Get-AzureADGroup -SearchString $AD_group_name 
$AppRole = $App.AppRoles | ?{$_.value -like $AADGroup.DisplayName} 

$NewAssignmentParams = @{ 
'id'   = $AppRole.Id; 
'objectid' = $AADGroup.ObjectId; 
'PrincipalId' = $AADGroup.ObjectId; 
'ResourceId' = $App.ObjectId; 
} 

New-AzureADGroupAppRoleAssignment @NewAssignmentParams 

} 

답변

0

모듈 및 cmdlet은 올바른 솔루션입니다.
id가 응용 프로그램의 AppRoles 속성 또는 매니페스트 파일
objectId & principalId에서 가져온 할 수

$NewAssignmentParams = @{ 
'id'   = $AppRole.Id; 
'objectid' = $AADGroup.ObjectId; 
'PrincipalId' = $AADGroup.ObjectId; 
'ResourceId' = $App.ObjectId; 
} 

New-AzureADGroupAppRoleAssignment @NewAssignmentParams 

는 AD 그룹의 objectId 속성이 역할
ResourceId가 응용 프로그램의 objectId 재산

이다 매핑되고있다
관련 문제