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. 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 nepřenáší 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. 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í souhlas uživatele jménem sebe sama.
Poznámka:
Pokud narazíte na omezení při správě skupin prostřednictvím portálu, jako je například u skupin zásad přístupu k aplikacím, zvažte použití alternativních metod, jako je powershellové nebo rozhraní Microsoft Graph API.
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 aplikace
- Správce uživatelů
- Vlastník aplikace služby.
- 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.
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 Identita>Aplikace>Podnikové 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 nedefinovali, 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í Microsoft Entra PowerShellu
Přihlaste se alespoň jako správce cloudových aplikací.
K přiřazení uživatele k aplikaci použijte následující skript:
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" # 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-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name } # Assign the user to the app role New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Příklad
Tento příklad přiřadí uživatele Brittu Simon k aplikaci Microsoft Workplace Analytics pomocí PowerShell.
V PowerShellu přiřaďte odpovídající hodnoty proměnným
$username
,$app_name
a$app_role_name
.connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" $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-EntraUser -ObjectId "$username" $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
Spuštěním následujícího příkazu vyhledejte role aplikace, které zpřístupňuje služební principál.
$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 služby není definován žádný konkrétní AppRole.Přiřaďte název AppRole k proměnné
$app_role_name
. V tomto příkladu chceme přiřadit oborovou roli Analytik s omezeným přístupem Britte Simon.$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-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Chcete-li přiřadit skupinu k podnikové aplikaci, nahraďte Get-EntraUser
za Get-EntraGroup
a New-EntraUserAppRoleAssignment
za New-EntraGroupAppRoleAssignment
.
Další informace o tom, jak přiřadit skupinu k roli aplikace, naleznete v dokumentaci pro New-EntraGroupAppRoleAssignment.
Zrušení přiřazení uživatelů a skupin z aplikace pomocí Microsoft Entra PowerShellu
Otevřete příkazový řádek Windows PowerShellu se zvýšenými oprávněními.
Přihlaste se alespoň jako správce cloudových aplikací.
Pomocí následujícího skriptu odeberte uživatele a roli z aplikace.
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" # Store the proper parameters $user = Get-Entrauser -ObjectId "<objectId>" $spo = Get-EntraServicePrincipal -ObjectId "<objectId>" #Get the ID of role assignment $assignments = Get-EntraServicePrincipalAppRoleAssignedTo -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-EntraServicePrincipalAppRoleAssignment -ObjectId $spo.ObjectId -AppRoleAssignmentId $assignments.ObjectId
Odebrání všech uživatelů přiřazených k aplikaci pomocí Microsoft Entra 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.
connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
#Retrieve the service principal object ID.
$app_name = "<Your App's display name>"
$sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
# Get Microsoft Entra App role assignments using objectId of the Service Principal
$assignments = Get-EntraServicePrincipalAppRoleAssignedTo -ObjectId $sp.ObjectId -All
# Remove all users and groups assigned to the application
$assignments | ForEach-Object {
if ($_.PrincipalType -eq "User") {
Remove-EntraUserAppRoleAssignment -ObjectId $_.PrincipalId -AppRoleAssignmentId $_.ObjectId
} elseif ($_.PrincipalType -eq "Group") {
Remove-EntraGroupAppRoleAssignment -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", "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'"
Provedením následujícího příkazu naleznete role aplikace vystavené pověřeným objektem služby.
# 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 služební principal není definován žádný konkrétní AppRole.Přiřaďte název role k proměnné
$app_role_name
. V tomto příkladu chceme přiřadit Brittu Simonovou k roli Analytik (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
za Get-MgGroup
a nahraďte New-MgUserAppRoleAssignment
za New-MgGroupAppRoleAssignment
.
Další informace o tom, jak přiřadit skupinu k roli aplikace, najdete v dokumentaci k New-MgGroupAppRoleAssignment.
Odebrat přiřazení uživatelů a skupin z aplikace pomocí modulu 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", "AppRoleAssignment.ReadWrite.All"
a přihlaste se jako správce cloudové aplikace.Získání uživatele a služebního principálu
$user = Get-MgUser -UserId <userid> $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
Získejte 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
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
: Identifikátor role aplikace (definované ve služebním principálu zdroje) přiřazené 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 služební účet není definován žádný konkrétní AppRole.Získejte uživatele filtrováním podle hlavního jména 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
resource-servicePrincipal-id
iresourceId
představují podnikovou 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
pro aplikaci.GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
Odeberte
appRoleAssignments
zadáním IDappRoleAssignment
.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ě. Proces však můžete automatizovat pomocí PowerShell pro Microsoft Graph pro iteraci a odstranění každého přiřazení.