애플리케이션에 대한 사용자 및 그룹 할당 관리
이 문서에서는 PowerShell을 사용하여 Microsoft Entra ID의 엔터프라이즈 애플리케이션에 사용자 및 그룹을 할당하는 방법을 보여 줍니다. 애플리케이션에 사용자를 할당하면 쉽게 액세스할 수 있도록 애플리케이션이 사용자의 내 앱 포털에 표시됩니다. 애플리케이션이 앱 역할을 노출하는 경우 사용자에게 특정 앱 역할을 할당할 수도 있습니다.
애플리케이션에 그룹을 할당하면 해당 그룹의 사용자만 액세스할 수 있습니다. 할당은 중첩된 그룹으로 연속되지 않습니다.
그룹 기반 할당에는 Microsoft Entra ID P1 또는 P2 버전이 필요합니다. 그룹 기반 할당은 SecurityEnabled
설정이 True
로 설정된 보안 그룹, Microsoft 365 그룹 및 배포 그룹에 대해서만 지원됩니다. 중첩된 그룹 멤버 자격은 현재 지원되지 않습니다. 이 문서에서 설명하는 기능에 대한 추가 라이선스 요구 사항은 Microsoft Entra 가격 책정 페이지를 참조하세요.
더 많은 제어를 위해 특정 유형의 엔터프라이즈 애플리케이션을 사용자 할당이 필요하도록 구성할 수 있습니다. 앱에 대한 사용자 할당을 요구하는 방법에 대한 자세한 내용은 애플리케이션에 대한 액세스 관리를 참조하세요.
참고 항목
사용자를 애플리케이션에 할당해야 하는 애플리케이션에는 사용자의 동의 정책이 사용자를 대신하여 동의하도록 허용하는 경우에도 관리자가 동의한 권한이 있어야 합니다.
필수 조건
엔터프라이즈 애플리케이션에 사용자를 할당하려면 다음이 필요합니다.
- 활성 구독이 있는 Microsoft Entra 계정. 계정이 없다면 무료로 만들 수 있습니다.
- 클라우드 애플리케이션 관리자, 애플리케이션 관리자 또는 서비스 주체 소유자 역할 중 하나입니다.
- 그룹 기반 할당을 위한 Microsoft Entra ID P1 또는 P2. 이 문서에서 설명하는 기능에 대한 추가 라이선스 요구 사항은 Microsoft Entra 가격 책정 페이지를 참조하세요.
팁
이 문서의 단계는 시작하는 포털에 따라 약간 다를 수도 있습니다.
Microsoft Entra 관리 센터를 사용하여 애플리케이션에 사용자 및 그룹 할당
사용자 또는 그룹 계정을 엔터프라이즈 애플리케이션에 할당하려면 다음을 수행합니다.
최소한 클라우드 애플리케이션 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
ID>애플리케이션>엔터프라이즈 애플리케이션>모든 애플리케이션으로 이동합니다.
검색 상자에서 기존 애플리케이션 이름을 입력한 다음, 검색 결과에서 애플리케이션을 선택합니다.
사용자 및 그룹을 선택한 다음 사용자/그룹 추가를 선택합니다.
할당 추가 창의 사용자 및 그룹 아래에서 선택된 항목 없음을 선택합니다.
애플리케이션에 할당하려는 사용자 또는 그룹을 검색하여 선택합니다. 예를 들어
contosouser1@contoso.com
또는contosoteam1@contoso.com
입니다.선택을 선택합니다.
역할 선택에서 사용자 또는 그룹에 할당할 역할을 선택합니다. 아직 역할을 정의하지 않은 경우 기본 역할은 기본 액세스입니다.
할당 추가 창에서 할당을 선택하여 사용자 또는 그룹을 애플리케이션에 할당합니다.
애플리케이션에서 사용자 및 그룹 할당 취소
- 애플리케이션에 사용자 및 그룹 할당 섹션의 단계에 따라 사용자 및 그룹 창으로 이동합니다.
- 애플리케이션에서 할당을 취소하려는 사용자 또는 그룹을 검색하고 선택합니다.
- 애플리케이션에서 사용자 또는 그룹 할당을 취소하려면 제거를 선택합니다.
Azure AD PowerShell을 사용하여 애플리케이션에 사용자 및 그룹 할당
관리자 권한 Windows PowerShell 명령 프롬프트를 엽니다.
Connect-AzureAD
를 실행하고 최소한 클라우드 애플리케이션 관리자로 로그인합니다.다음 스크립트를 사용하여 애플리케이션에 사용자를 할당합니다.
# Assign the values to the variables $username = "<Your user's UPN>" $app_name = "<Your App's display name>" $app_role_name = "<App role display name>" # Get the user to assign, and the service principal for the app to assign to $user = Get-AzureADUser -ObjectId "$username" $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name } # Assign the user to the app role New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
예시
이 예제에서는 PowerShell을 사용하여 사용자 Britta Simon을 Microsoft Workplace Analytics 애플리케이션에 할당합니다.
PowerShell에서 해당 값을 변수에 할당하고
$username
$app_name
$app_role_name
.$username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
이 예제에서는 Britta Simon에 할당하려는 애플리케이션 역할의 정확한 이름을 모릅니다. 다음 명령을 실행하여 사용자
$user
UPN 및 서비스 주체 표시 이름을 사용하여 사용자() 및 서비스 주체($sp
)를 가져옵니다.$user = Get-AzureADUser -ObjectId "$username" $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
다음 명령을 실행하여 서비스 주체가 노출하는 앱 역할을 찾습니다.
$appRoles = $sp.AppRoles # Display the app roles $appRoles | ForEach-Object { Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
참고 항목
기본 AppRole ID는 .입니다
00000000-0000-0000-0000-000000000000
. 서비스 주체에 대해 특정 AppRole이 정의되지 않은 경우 이 역할이 할당됩니다.변수에 AppRole 이름을 할당합니다
$app_role_name
. 이 예제에서는 Britta Simon을 Analyst(제한된 액세스) 역할에 할당하려고 합니다.$app_role_name = "Analyst (Limited access)" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
다음 명령을 실행하여 사용자를 앱 역할에 할당합니다.
New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
엔터프라이즈 앱에 그룹을 할당하려면 다음으로 Get-AzureADGroup
New-AzureADUserAppRoleAssignment
바꾸고 Get-AzureADUser
대체New-AzureADGroupAppRoleAssignment
합니다.
애플리케이션 역할에 그룹을 할당하는 방법에 대한 자세한 내용은 New-AzureADGroupAppRoleAssignment에 대한 설명서를 참조하세요.
Azure AD PowerShell을 사용하여 애플리케이션에서 사용자 및 그룹 할당 취소
관리자 권한 Windows PowerShell 명령 프롬프트를 엽니다.
Connect-AzureAD
를 실행하고 최소한 클라우드 애플리케이션 관리자로 로그인합니다.다음 스크립트를 사용하여 애플리케이션에 사용자 및 역할을 제거합니다.
# Store the proper parameters $user = get-azureaduser -ObjectId <objectId> $spo = Get-AzureADServicePrincipal -ObjectId <objectId> #Get the ID of role assignment $assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId | Where {$_.PrincipalDisplayName -eq $user.DisplayName} #if you run the following, it will show you what is assigned what $assignments | Select * #To remove the App role assignment run the following command. Remove-AzureADServiceAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments[assignment number].ObjectId
Azure AD PowerShell을 사용하여 애플리케이션에 할당된 모든 사용자 제거
- 관리자 권한 Windows PowerShell 명령 프롬프트를 엽니다.
다음 스크립트를 사용하여 애플리케이션에 할당된 모든 사용자 및 그룹을 제거합니다.
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
$sp.ObjectId
# Get Service Principal using objectId
$sp = Get-AzureADServicePrincipal -ObjectId "<ServicePrincipal objectID>"
# Get Azure AD App role assignments using objectId of the Service Principal
$assignments = Get-AzureADServiceAppRoleAssignment -ObjectId $sp.ObjectId -All $true
# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
if ($_.PrincipalType -eq "User") {
Remove-AzureADUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
} elseif ($_.PrincipalType -eq "Group") {
Remove-AzureADGroupAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
}
}
Microsoft Graph PowerShell을 사용하여 애플리케이션에 사용자 및 그룹 할당
관리자 권한 Windows PowerShell 명령 프롬프트를 엽니다.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
를 실행하고 최소한 클라우드 애플리케이션 관리자로 로그인합니다.다음 스크립트를 사용하여 애플리케이션에 사용자를 할당합니다.
#Assign the values to the variables $userId = "<Your user's ID>" $app_name = "<Your App's display name>" $app_role_name = "<App role display name>" $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'" #Get the user, the service principal and appRole. $params = @{ "PrincipalId" =$userId "ResourceId" =$sp.Id "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id } #Assign the user to the AppRole New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params | Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
예시
이 예제에서는 Microsoft Graph PowerShell을 사용하여 사용자 Britta Simon을 Microsoft Workplace Analytics 애플리케이션에 할당합니다.
PowerShell에서 해당 값을 변수
$userId
$app_name
에 할당하고$app_role_name
.# Assign the values to the variables $userId = "<Britta Simon's user ID>" $app_name = "Workplace Analytics"
이 예제에서는 Britta Simon에게 할당하려는 애플리케이션 역할의 정확한 이름을 알 수 없습니다. 다음 명령을 실행하여 서비스 주체 표시 이름을 사용하여 서비스 주체($sp)를 가져옵니다.
# Get the service principal for the app $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
다음 명령을 실행하여 서비스 주체가 노출하는 앱 역할을 찾습니다.
# Get the app roles exposed by the service principal $appRoles = $sp.AppRoles # Display the app roles $appRoles | ForEach-Object { Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)" }
참고 항목
기본 AppRole ID는 .입니다
00000000-0000-0000-0000-000000000000
. 서비스 주체에 대해 특정 AppRole이 정의되지 않은 경우 이 역할이 할당됩니다.역할 이름을
$app_role_name
변수에 할당합니다. 이 예제에서는 Britta Simon을 Analyst(제한된 액세스) 역할에 할당하려고 합니다.# Assign the values to the variables $app_role_name = "Analyst (Limited access)" $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
매개 변수를 준비하고 다음 명령을 실행하여 사용자를 앱 역할에 할당합니다.
# Prepare parameters for the role assignment $params = @{ "PrincipalId" = $userId "ResourceId" = $sp.Id "AppRoleId" = $appRoleId } # Assign the user to the app role New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params | Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName, PrincipalId, PrincipalType, ResourceDisplayName, ResourceId
엔터프라이즈 앱에 그룹을 할당하려면 다음으로 Get-MgGroup
New-MgUserAppRoleAssignment
바꾸고 Get-MgUser
대체New-MgGroupAppRoleAssignment
합니다.
애플리케이션 역할에 그룹을 할당하는 방법에 대한 자세한 내용은 New-MgGroupAppRoleAssignment 설명 서를 참조하세요.
Microsoft Graph PowerShell을 사용하여 애플리케이션에서 사용자 및 그룹 할당 취소
관리자 권한 Windows PowerShell 명령 프롬프트를 엽니다.
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
를 실행하고 최소한 클라우드 애플리케이션 관리자로 로그인합니다.사용자 및 서비스 주체 가져오기
$user = Get-MgUser -UserId <userid> $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
역할 할당의 ID 가져오기
$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
다음 명령을 실행하여 애플리케이션에 할당된 사용자 목록을 표시합니다.
$assignments | Select *
다음 명령을 실행하여 AppRole 할당을 제거합니다.
Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
Microsoft Graph PowerShell을 사용하여 애플리케이션에 할당된 모든 사용자 및 그룹 제거
다음 명령을 실행하여 애플리케이션에 할당된 모든 사용자 및 그룹을 제거합니다.
$assignments | ForEach-Object {
if ($_.PrincipalType -in ("user", "Group")) {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id }
}
Microsoft Graph API를 사용하여 애플리케이션에 사용자 및 그룹 할당
사용자와 그룹을 애플리케이션에 할당하려면 최소한 클라우드 애플리케이션 관리자로 Graph 탐색기에 로그인합니다.
다음 권한에 동의해야 합니다.
Application.ReadWrite.All
,Directory.ReadWrite.All
및AppRoleAssignment.ReadWrite.All
.앱 역할 할당을 부여하려면 다음 세 개의 식별자가 필요합니다.
principalId
: 앱 역할을 할당할 사용자 또는 그룹의 IDresourceId
: 앱 역할을 정의하는 리소스 servicePrincipal의 ID입니다.appRoleId
: 사용자 또는 그룹에 할당할 appRole(리소스 서비스 주체에 정의됨)의 ID
엔터프라이즈 애플리케이션을 가져옵니다. 를 사용하여 필터링합니다
DisplayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
응답 본문에서 다음 값을 기록합니다.
- 엔터프라이즈 애플리케이션의 개체 ID
- 사용자에게 할당하는 AppRole ID입니다. 애플리케이션이 어떤 역할도 공개하지 않으면 사용자에게 기본 액세스 역할이 할당됩니다.
참고 항목
기본 AppRole ID는 .입니다
00000000-0000-0000-0000-000000000000
. 서비스 주체에 대해 특정 AppRole이 정의되지 않은 경우 이 역할이 할당됩니다.사용자의 보안 주체 이름을 기준으로 필터링하여 사용자를 가져옵니다. 사용자의 개체 ID를 기록합니다.
GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
애플리케이션에 사용자를 할당하세요.
POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo { "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222", "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", "appRoleId": "00000000-0000-0000-0000-000000000000" }
이 예제에서는 엔터프라이즈 애플리케이션과
resourceId
엔터프라이즈 애플리케이션을 모두resource-servicePrincipal-id
나타냅니다.
Microsoft Graph API를 사용하여 애플리케이션에서 사용자 및 그룹 할당 취소
애플리케이션에서 모든 사용자 및 그룹의 할당을 취소하려면 다음 쿼리를 실행합니다.
엔터프라이즈 애플리케이션을 가져옵니다. 를 사용하여 필터링합니다
displayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
애플리케이션 목록을
appRoleAssignments
가져옵니다.GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
ID를
appRoleAssignments
지정하여 제거합니다appRoleAssignment
.DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Microsoft Graph Explorer는 앱 역할 할당의 일괄 삭제를 직접 지원하지 않습니다. 각 할당을 개별적으로 삭제해야 합니다. 그러나 Microsoft Graph PowerShell을 사용하여 이 프로세스를 자동화하여 각 할당을 반복하고 제거할 수 있습니다.