Správa přiřazení uživatelů a skupin k aplikaci
V tomto článku se dozvíte, jak přiřadit uživatele a skupiny k podnikové aplikaci v Microsoft Entra ID pomocí PowerShellu. Když přiřadíte uživatele k aplikaci, zobrazí se aplikace na Moje aplikace portálu uživatele, aby byl snadný přístup. Pokud aplikace zpřístupňuje role aplikací, můžete uživateli přiřadit také konkrétní roli aplikace.
Když přiřadíte skupinu k aplikaci, budou mít přístup jenom uživatelé ve skupině. Přiřazení se kaskádově nespadá do vnořených skupin.
Přiřazení založené na skupinách vyžaduje edici Microsoft Entra ID P1 nebo P2. Přiřazení založené na skupinách je podporováno pro skupiny zabezpečení, skupiny Microsoftu 365 a distribuční skupiny, jejichž SecurityEnabled
nastavení je nastavené jenom na True
hodnotu. Vnořené členství ve skupinách se v současné době nepodporuje. Další licenční požadavky pro funkce probírané v tomto článku najdete na stránce s cenami Microsoft Entra.
Pro větší kontrolu je možné nakonfigurovat určité typy podnikových aplikací tak, aby vyžadovaly přiřazení uživatele. Další informace o vyžadování přiřazení uživatele pro aplikaci najdete v tématu Správa přístupu k aplikaci.
Poznámka:
Aplikace, které vyžadují, aby uživatelé byli přiřazeni k aplikaci, musí mít souhlas správce, i když zásady souhlasu uživatele pro váš adresář jinak umožní uživateli vyjádřit souhlas jménem sebe sama.
Požadavky
Pokud chcete přiřadit uživatele k podnikové aplikaci, potřebujete:
- Účet Microsoft Entra s aktivním předplatným. Pokud ho ještě nemáte, můžete si zdarma vytvořit účet.
- Jedna z následujících rolí: Správce cloudových aplikací, Správce aplikací nebo vlastník instančního objektu.
- Microsoft Entra ID P1 nebo P2 pro přiřazení na základě skupin. Další licenční požadavky pro funkce probírané v tomto článku najdete na stránce s cenami Microsoft Entra.
Tip
Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.
Přiřazení uživatelů a skupin k aplikaci pomocí Centra pro správu Microsoft Entra
Přiřazení účtu uživatele nebo skupiny k podnikové aplikaci:
Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
Přejděte k podnikovým aplikacím>Identita>Aplikace>Všechny aplikace.
Do vyhledávacího pole zadejte název existující aplikace a z výsledků hledání vyberte aplikaci.
Vyberte Uživatelé a skupiny a pak vyberte Přidat uživatele nebo skupinu.
V podokně Přidat přiřazení vyberte v části Uživatelé a skupiny možnost Žádná vybrána.
Vyhledejte a vyberte uživatele nebo skupinu, které chcete přiřadit k aplikaci. Například
contosouser1@contoso.com
nebocontosoteam1@contoso.com
.Zvolte Zvolit.
V části Vybrat roli vyberte roli, kterou chcete přiřadit uživateli nebo skupině. Pokud jste ještě žádné role nedefinovat, výchozí role je Výchozí přístup.
V podokně Přidat přiřazení vyberte Přiřadit k přiřazení uživatele nebo skupiny k aplikaci.
Zrušení přiřazení uživatelů a skupin z aplikace
- Podle pokynů v části Přiřadit uživatele a skupiny přejděte do oddílu aplikace a přejděte do podokna Uživatelé a skupiny .
- Vyhledejte a vyberte uživatele nebo skupinu, které chcete zrušit přiřazení z aplikace.
- Výběrem možnosti Odebrat zrušíte přiřazení uživatele nebo skupiny z aplikace.
Přiřazení uživatelů a skupin k aplikaci pomocí Azure AD PowerShellu
Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Spusťte
Connect-AzureAD
a přihlaste se jako správce cloudové aplikace.K přiřazení uživatele k aplikaci použijte následující skript:
# 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
Příklad
Tento příklad přiřadí uživateli Britta Simon k aplikaci Microsoft Workplace Analytics pomocí PowerShellu.
V PowerShellu přiřaďte odpovídající hodnoty proměnným
$username
$app_name
a$app_role_name
.$username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
V tomto příkladu nevíme, jaký je přesný název role aplikace, kterou chceme přiřadit Britta Simon. Spuštěním následujících příkazů získejte uživatele (
$user
) a instanční objekt ($sp
) pomocí hlavního názvu uživatele (UPN) a zobrazovaného názvu instančního objektu.$user = Get-AzureADUser -ObjectId "$username" $sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
Spuštěním následujícího příkazu vyhledejte role aplikace vystavené instančním objektem.
$appRoles = $sp.AppRoles # Display the app roles $appRoles | ForEach-Object { Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
Poznámka:
Výchozí ID AppRole je
00000000-0000-0000-0000-000000000000
. Tato role se přiřadí, když pro instanční objekt není definován žádný konkrétní approle.Přiřaďte k proměnné název
$app_role_name
AppRole. V tomto příkladu chceme přiřadit roli Analytik Britta Simon (omezený přístup).$app_role_name = "Analyst (Limited access)" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
Spuštěním následujícího příkazu přiřaďte uživatele k roli aplikace.
New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Pokud chcete přiřadit skupinu k podnikové aplikaci, nahraďte Get-AzureADUser
Get-AzureADGroup
ji a nahraďte New-AzureADUserAppRoleAssignment
.New-AzureADGroupAppRoleAssignment
Další informace o tom, jak přiřadit skupinu k roli aplikace, najdete v dokumentaci k New-AzureADGroupAppRoleAssignment.
Zrušení přiřazení uživatelů a skupin z aplikace pomocí Azure AD PowerShellu
Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Spusťte
Connect-AzureAD
a přihlaste se jako správce cloudové aplikace.Pomocí následujícího skriptu odeberte uživatele a roli z aplikace.
# 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
Odebrání všech uživatelů přiřazených k aplikaci pomocí Azure AD PowerShellu
- Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Pomocí následujícího skriptu odeberte všechny uživatele a skupiny přiřazené k aplikaci.
#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
}
}
Přiřazení uživatelů a skupin k aplikaci pomocí Microsoft Graph PowerShellu
Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Spusťte
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
a přihlaste se jako správce cloudové aplikace.K přiřazení uživatele k aplikaci použijte následující skript:
#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
Příklad
Tento příklad přiřadí uživatele Britta Simon k aplikaci Microsoft Workplace Analytics pomocí Microsoft Graph PowerShellu.
V PowerShellu přiřaďte odpovídající hodnoty proměnným
$userId
,$app_name
a$app_role_name
.# Assign the values to the variables $userId = "<Britta Simon's user ID>" $app_name = "Workplace Analytics"
V tomto příkladu neznáme přesný název role aplikace, kterou chceme přiřadit Britta Simon. Spuštěním následujícího příkazu získejte instanční objekt ($sp) pomocí zobrazovaného názvu instančního objektu.
# Get the service principal for the app $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"
Spuštěním následujícího příkazu vyhledejte role aplikace vystavené instančním objektem.
# 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)" }
Poznámka:
Výchozí ID AppRole je
00000000-0000-0000-0000-000000000000
. Tato role se přiřadí, když pro instanční objekt není definován žádný konkrétní approle.Přiřaďte k proměnné název
$app_role_name
role. V tomto příkladu chceme přiřadit roli Analytik Britta Simon (omezený přístup).# Assign the values to the variables $app_role_name = "Analyst (Limited access)" $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
Připravte parametry a spuštěním následujícího příkazu přiřaďte uživatele k roli aplikace.
# 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
Pokud chcete přiřadit skupinu k podnikové aplikaci, nahraďte Get-MgUser
Get-MgGroup
ji a nahraďte New-MgUserAppRoleAssignment
.New-MgGroupAppRoleAssignment
Další informace o tom, jak přiřadit skupinu k roli aplikace, najdete v dokumentaci k New-MgGroupAppRoleAssignment.
Zrušení přiřazení uživatelů a skupin z aplikace pomocí Prostředí Microsoft Graph PowerShell
Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Spusťte
Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
a přihlaste se jako správce cloudové aplikace.Získání uživatele a instančního objektu
$user = Get-MgUser -UserId <userid> $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
Získání ID přiřazení role
$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
Spuštěním následujícího příkazu zobrazte seznam uživatelů přiřazených k aplikaci.
$assignments | Select *
Spuštěním následujícího příkazu odeberte přiřazení AppRole.
Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId '<AppRoleAssignment-id>' -ServicePrincipalId $sp.Id
Odebrání všech uživatelů a skupin přiřazených k aplikaci pomocí Microsoft Graph PowerShellu
Spuštěním následujícího příkazu odeberte všechny uživatele a skupiny přiřazené k aplikaci.
$assignments | ForEach-Object {
if ($_.PrincipalType -in ("user", "Group")) {
Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id -AppRoleAssignmentId $_.Id }
}
Přiřazení uživatelů a skupin k aplikaci pomocí rozhraní Microsoft Graph API
Pokud chcete přiřadit uživatele a skupiny k aplikaci, přihlaste se k Graph Exploreru jako alespoň správce cloudových aplikací.
Musíte udělit souhlas s následujícími oprávněními:
Application.ReadWrite.All
,Directory.ReadWrite.All
aAppRoleAssignment.ReadWrite.All
.Pokud chcete udělit přiřazení role aplikace, potřebujete tři identifikátory:
principalId
: ID uživatele nebo skupiny, ke kterému přiřazujete roli aplikace.resourceId
: ID služby prostředkůPrincipal, která definuje roli aplikace.appRoleId
: ID appRole (definované v instančním objektu prostředku) pro přiřazení k uživateli nebo skupině.
Získejte podnikovou aplikaci. Filtrovat podle
DisplayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Poznamenejte si následující hodnoty z textu odpovědi:
- ID objektu podnikové aplikace
- ID appRole, které přiřadíte uživateli. Pokud aplikace nezpřístupňuje žádné role, přiřadí se uživateli výchozí přístupová role.
Poznámka:
Výchozí ID AppRole je
00000000-0000-0000-0000-000000000000
. Tato role se přiřadí, když pro instanční objekt není definován žádný konkrétní approle.Získejte uživatele filtrováním podle hlavního názvu uživatele. Poznamenejte si ID objektu uživatele.
GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
Přiřaďte uživatele k aplikaci.
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" }
V tomto příkladu představuje
resource-servicePrincipal-id
podnikovou aplikaci iresourceId
aplikaci.
Zrušení přiřazení uživatelů a skupin z aplikace pomocí rozhraní Microsoft Graph API
Pokud chcete zrušit přiřazení všech uživatelů a skupin z aplikace, spusťte následující dotaz.
Získejte podnikovou aplikaci. Filtrovat podle
displayName
.GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
Získejte seznam
appRoleAssignments
aplikace.GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Odeberte id
appRoleAssignments
zadánímappRoleAssignment
ID.DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
Microsoft Graph Explorer nepodporuje dávkové odstraňování přiřazení rolí aplikací přímo. Každé zadání musíte odstranit jednotlivě. Tento proces ale můžete automatizovat pomocí Prostředí Microsoft Graph PowerShell k iteraci a odebrání každého přiřazení.