Zarządzanie przypisaniem użytkowników i grup do aplikacji

W tym artykule pokazano, jak przypisać użytkowników i grupy do aplikacji dla przedsiębiorstw w usłudze Microsoft Entra ID przy użyciu programu PowerShell. Po przypisaniu użytkownika do aplikacji aplikacja zostanie wyświetlona w portalu Moje aplikacje użytkownika w celu uzyskania łatwego dostępu. Jeśli aplikacja uwidacznia role aplikacji, możesz również przypisać określoną rolę aplikacji do użytkownika.

Po przypisaniu grupy do aplikacji tylko użytkownicy w grupie mają dostęp. Przypisanie nie jest kaskadowe do grup zagnieżdżonych.

Przypisanie oparte na grupach wymaga wersji Microsoft Entra ID P1 lub P2. Przypisanie oparte na grupach jest obsługiwane w przypadku grup zabezpieczeń i grup platformy Microsoft 365, których SecurityEnabled ustawienie jest ustawione tylko na True wartość . Zagnieżdżone członkostwa w grupach nie są obecnie obsługiwane. Aby uzyskać więcej wymagań licencyjnych dotyczących funkcji omówionych w tym artykule, zobacz stronę cennika firmy Microsoft Entra.

Aby uzyskać większą kontrolę, niektóre typy aplikacji dla przedsiębiorstw można skonfigurować tak, aby wymagać przypisania użytkownika. Aby uzyskać więcej informacji na temat wymagania przypisania użytkownika dla aplikacji, zobacz Zarządzanie dostępem do aplikacji.

Wymagania wstępne

Aby przypisać użytkowników do aplikacji dla przedsiębiorstw, potrzebne są następujące elementy:

  • Konto Microsoft Entra z aktywną subskrypcją. Jeśli jeszcze go nie masz, możesz bezpłatnie utworzyć konto.
  • Jedna z następujących ról: administrator globalny, administrator aplikacji w chmurze, administrator aplikacji lub właściciel jednostki usługi.
  • Microsoft Entra ID P1 lub P2 dla przypisania opartego na grupach. Aby uzyskać więcej wymagań licencyjnych dotyczących funkcji omówionych w tym artykule, zobacz stronę cennika firmy Microsoft Entra.

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Przypisywanie użytkowników i grup do aplikacji przy użyciu centrum administracyjnego firmy Microsoft Entra

Aby przypisać konto użytkownika lub grupy do aplikacji dla przedsiębiorstw:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra jako co najmniej Administracja istrator aplikacji w chmurze.

  2. Przejdź do sekcji Identity>Applications Enterprise Applications>Wszystkie aplikacje.>

  3. Wprowadź nazwę istniejącej aplikacji w polu wyszukiwania, a następnie wybierz aplikację z wyników wyszukiwania.

  4. Wybierz pozycję Użytkownicy i grupy, a następnie wybierz pozycję Dodaj użytkownika/grupę.

    Assign user account to an application in your Microsoft Entra tenant.

  5. W okienku Dodawanie przypisania wybierz pozycję Brak zaznaczony w obszarze Użytkownicy i grupy.

  6. Wyszukaj i wybierz użytkownika lub grupę, którą chcesz przypisać do aplikacji. Na przykład: contosouser1@contoso.com lub contosoteam1@contoso.com.

  7. Wybierz pozycję Wybierz.

  8. W obszarze Wybierz rolę wybierz rolę, którą chcesz przypisać do użytkownika lub grupy. Jeśli jeszcze nie zdefiniowano żadnych ról, domyślna rola to Dostęp domyślny.

  9. W okienku Dodawanie przypisania wybierz pozycję Przypisz , aby przypisać użytkownika lub grupę do aplikacji.

Anulowanie przypisania użytkowników i grup z aplikacji

  1. Wykonaj kroki opisane w sekcji Przypisywanie użytkowników i grup do aplikacji , aby przejść do okienka Użytkownicy i grupy .
  2. Wyszukaj i wybierz użytkownika lub grupę, której chcesz cofnąć przypisanie z aplikacji.
  3. Wybierz pozycję Usuń , aby cofnąć przypisanie użytkownika lub grupy z aplikacji.

Przypisywanie użytkowników i grup do aplikacji przy użyciu programu Azure AD PowerShell

  1. Otwórz wiersz polecenia programu Windows PowerShell z podwyższonym poziomem uprawnień.

  2. Uruchom Connect-AzureAD polecenie i zaloguj się jako co najmniej aplikacja w chmurze Administracja istrator.

  3. Użyj następującego skryptu, aby przypisać użytkownika i rolę do aplikacji:

    # 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
    

Aby przypisać grupę do aplikacji dla przedsiębiorstw, musisz zastąpić Get-AzureADUser ciąg ciągiem Get-AzureADGroup i zastąpić ciągiem New-AzureADUserAppRoleAssignmentNew-AzureADGroupAppRoleAssignment.

Aby uzyskać więcej informacji na temat przypisywania grupy do roli aplikacji, zobacz dokumentację polecenia New-AzureADGroupAppRoleAssignment.

Przykład

W tym przykładzie użytkownik Britta Simon jest przypisywany do aplikacji Microsoft Workplace Analytics przy użyciu programu PowerShell.

  1. W programie PowerShell przypisz odpowiednie wartości do zmiennych $username, $app_name i $app_role_name.

    # Assign the values to the variables
    $username = "britta.simon@contoso.com"
    $app_name = "Workplace Analytics"
    
  2. W tym przykładzie nie wiemy, jaka jest dokładna nazwa roli aplikacji, którą chcemy przypisać do użytkownika Britta Simon. Uruchom następujące polecenia, aby pobrać użytkownika ($user) i jednostkę usługi ($sp) przy użyciu nazwy UPN użytkownika i głównej nazwy wyświetlanej jednostki usługi.

    # 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'"
    
  3. Uruchom polecenie $sp.AppRoles , aby wyświetlić role dostępne dla aplikacji Workplace Analytics. W tym przykładzie chcemy przypisać użytkownikowi Britta Simon rolę analityka (ograniczony dostęp). Shows the roles available to a user using Workplace Analytics Role

  4. Przypisz nazwę roli do zmiennej $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 }
    
  5. Uruchom następujące polecenie, aby przypisać użytkownika do roli aplikacji:

    # Assign the user to the app role
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Anulowanie przypisania użytkowników i grup z aplikacji przy użyciu programu Azure AD PowerShell

  1. Otwórz wiersz polecenia programu Windows PowerShell z podwyższonym poziomem uprawnień.

  2. Uruchom Connect-AzureAD polecenie i zaloguj się jako co najmniej aplikacja w chmurze Administracja istrator.

  3. Użyj następującego skryptu, aby usunąć użytkownika i rolę z aplikacji.

    # 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
    

Usuwanie wszystkich użytkowników przypisanych do aplikacji przy użyciu programu Azure AD PowerShell

Użyj następującego skryptu, aby usunąć wszystkich użytkowników i grupy przypisane do aplikacji.

#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
    }
}

Przypisywanie użytkowników i grup do aplikacji przy użyciu programu Microsoft Graph PowerShell

  1. Otwórz wiersz polecenia programu Windows PowerShell z podwyższonym poziomem uprawnień.
  2. Uruchom Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" polecenie i zaloguj się jako co najmniej aplikacja w chmurze Administracja istrator.
  3. Użyj następującego skryptu, aby przypisać użytkownika i rolę do aplikacji:

# 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 to assign, and the service principal for the app to assign to

$params = @{
    "PrincipalId" =$userId
    "ResourceId" =$sp.Id
    "AppRoleId" =($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id
    }

# Assign the user to the app role

New-MgUserAppRoleAssignment -UserId $userId -BodyParameter $params |
    Format-List Id, AppRoleId, CreationTime, PrincipalDisplayName,
    PrincipalId, PrincipalType, ResourceDisplayName, ResourceId

Anulowanie przypisania użytkowników i grup z aplikacji przy użyciu programu Microsoft Graph PowerShell

  1. Otwórz wiersz polecenia programu Windows PowerShell z podwyższonym poziomem uprawnień.
  2. Uruchom Connect-MgGraph -Scopes "Application.ReadWrite.All", "Directory.ReadWrite.All", "AppRoleAssignment.ReadWrite.All" polecenie i zaloguj się jako co najmniej aplikacja w chmurze Administracja istrator. Użyj następującego skryptu, aby usunąć użytkownika i rolę z aplikacji.

# Get the user and the service principal

$user = Get-MgUser -UserId <userid>
$spo = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>

# Get the Id of the role assignment

$assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $spo.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}

# if you run the following, it will show you the list of users assigned to the application

$assignments | Select *

# To remove the App role assignment run the following command.

Remove-MgServicePrincipalAppRoleAssignedTo -AppRoleAssignmentId  '<AppRoleAssignment-id>' -ServicePrincipalId $spo.Id

Usuwanie wszystkich użytkowników i grup przypisanych do aplikacji przy użyciu programu Microsoft Graph PowerShell

Użyj następującego skryptu, aby usunąć wszystkich użytkowników i grupy przypisane do aplikacji.

$assignments | ForEach-Object {
    if ($_.PrincipalType -in ("user", "Group")) {
        Remove-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $Sp.Id -AppRoleAssignmentId $_.Id  }
}

Przypisywanie użytkowników i grup do aplikacji przy użyciu interfejsu API programu Microsoft Graph

  1. Aby przypisać użytkowników i grupy do aplikacji, zaloguj się do Eksploratoraprogramu Graph jako co najmniej aplikacja w chmurze Administracja istrator.

    Musisz wyrazić zgodę na następujące uprawnienia:

    Application.ReadWrite.All, , Directory.ReadWrite.AllAppRoleAssignment.ReadWrite.All.

    Aby udzielić przypisania roli aplikacji, potrzebne są trzy identyfikatory:

    • principalId: identyfikator użytkownika lub grupy, do której przypisujesz rolę aplikacji.
    • resourceId: identyfikator klasy servicePrincipal zasobu definiujący rolę aplikacji.
    • appRoleId: identyfikator elementu appRole (zdefiniowanego w jednostce usługi zasobów) do przypisania do użytkownika lub grupy.
  2. Pobierz aplikację dla przedsiębiorstw. Filtruj według displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    

    Zapisz następujące wartości z treści odpowiedzi:

    • Identyfikator obiektu aplikacji dla przedsiębiorstw
    • appRoleId przypisany do użytkownika. Jeśli aplikacja nie uwidacznia żadnych ról, użytkownik ma przypisaną domyślną rolę dostępu.
  3. Pobierz użytkownika, filtrując według głównej nazwy użytkownika. Zarejestruj identyfikator obiektu użytkownika.

    GET https://graph.microsoft.com/v1.0/users/{userPrincipalName}
    
  4. Przypisz użytkownika do aplikacji.

    POST https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo
    
    {
    "principalId": "33ad69f9-da99-4bed-acd0-3f24235cb296",
    "resourceId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
    "appRoleId": "ef7437e6-4f94-4a0a-a110-a439eb2aa8f7"
    }
    

    W tym przykładzie zarówno identyfikator resource-servicePrincipal-id, jak i resourceId reprezentują aplikację przedsiębiorstwa.

Cofnij przypisywanie użytkowników i grup z aplikacji przy użyciu interfejsu API programu Microsoft Graph

Aby cofnąć przypisanie użytkowników i grup z aplikacji, uruchom następujące zapytanie.

  1. Pobierz aplikację dla przedsiębiorstw. Filtruj według displayName.

    GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=displayName eq '{appDisplayName}'
    
  2. Pobierz listę elementów appRoleAssignments dla aplikacji.

    GET https://graph.microsoft.com/v1.0/servicePrincipals/{id}/appRoleAssignedTo
    
  3. Usuń atrybuty appRoleAssignments, określając identyfikator appRoleAssignment.

    DELETE https://graph.microsoft.com/v1.0/servicePrincipals/{resource-servicePrincipal-id}/appRoleAssignedTo/{appRoleAssignment-id}
    

Następne kroki