Tilldela användare och grupper till ett program
Den här artikeln visar hur du tilldelar användare och grupper till ett företagsprogram i Azure Active Directory (Azure AD) med hjälp av PowerShell. När du tilldelar en användare till ett program visas programmet i användarens Mina appar portal för enkel åtkomst. Om programmet exponerar roller kan du även tilldela användaren en viss roll.
När du tilldelar en grupp till ett program har endast användare i gruppen åtkomst. Tilldelningen överlappar inte kapslade grupper.
Gruppbaserad tilldelning kräver Azure Active Directory Premium P1 eller P2-utgåva. Gruppbaserad tilldelning stöds endast för säkerhetsgrupper. Kapslade gruppmedlemskap och Microsoft 365 grupper stöds inte för närvarande. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på sidan Azure Active Directory prissättning.
För större kontroll kan vissa typer av företagsprogram konfigureras för att kräva användartilldelning. Mer information om hur du kräver användartilldelning för en app finns i Hantera åtkomst till ett program .
Förutsättningar
Om du vill tilldela användare till en app med PowerShell behöver du:
- Ett Azure-konto med en aktiv prenumeration. Om du inte redan har ett konto kan du skapa ett konto kostnadsfritt.
- En av följande roller: Global administratör, molnprogramadministratör, programadministratör eller ägare av tjänstens huvudnamn.
- Om du ännu inte har installerat AzureAD-modulen (använd kommandot
Install-Module -Name AzureAD
). Om du uppmanas att installera en NuGet-modul eller den nya Azure Active Directory V2 PowerShell-modulen skriver du Y och trycker på RETUR. - Azure Active Directory Premium P1 eller P2 för gruppbaserad tilldelning. Mer licensieringskrav för de funktioner som beskrivs i den här artikeln finns på sidan Azure Active Directory prissättning.
- Valfritt: Slutförande av Konfigurera en app.
Tilldela användare och grupper till en app med PowerShell
Öppna en upphöjd Windows PowerShell kommandotolk.
Kör
Connect-AzureAD
och logga in med ett användarkonto för global administratör.Använd följande skript för att tilldela en användare och roll till ett program:
# 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
Om du vill tilldela en grupp till en företagsapp måste du ersätta Get-AzureADUser
med Get-AzureADGroup
och ersätta New-AzureADUserAppRoleAssignment
med New-AzureADGroupAppRoleAssignment
.
Mer information om hur du tilldelar en grupp till en programroll finns i dokumentationen för New-AzureADGroupAppRoleAssignment.
Exempel
Det här exemplet tilldelar användaren Britta Simon till Microsoft Workplace Analytics-programmet med hjälp av PowerShell.
I PowerShell tilldelar du motsvarande värden till variablerna $username, $app_name och $app_role_name.
# Assign the values to the variables $username = "britta.simon@contoso.com" $app_name = "Workplace Analytics"
I det här exemplet vet vi inte exakt namnet på den programroll som vi vill tilldela Britta Simon. Kör följande kommandon för att hämta användaren ($user) och tjänstens huvudnamn ($sp) med hjälp av upn-användaren och visningsnamnen för tjänstens huvudnamn.
# 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'"
Kör kommandot
$sp.AppRoles
för att visa de roller som är tillgängliga för Workplace Analytics-programmet. I det här exemplet vill vi tilldela Rollen Analytiker (begränsad åtkomst) Britta Simon.Tilldela rollnamnet till variabeln
$app_role_name
.# Assign the values to the variables $app_role_name = "Analyst (Limited access)" $appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
Kör följande kommando för att tilldela användaren till approllen:
# Assign the user to the app role New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
Avtilldela användare och grupper från en app med PowerShell
Öppna en upphöjd Windows PowerShell kommandotolk.
Kör
Connect-AzureAD
och logga in med ett användarkonto för global administratör. Använd följande skript för att ta bort en användare och roll från ett program:# 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 #].ObjectId
Ta bort alla användare som har tilldelats till programmet
#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
}
}