Udostępnij za pośrednictwem


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. 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 edycji Microsoft Entra ID P1 lub P2. Przypisanie oparte na grupach jest obsługiwane w przypadku grup zabezpieczeń, grup Microsoft 365 i grup dystrybucyjnych, których ustawienie SecurityEnabled jest ustawione na tylko True. 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. Aplikacje, które wymagają przypisania użytkowników do aplikacji, muszą mieć zgodę administratora, nawet jeśli zasady zgody użytkownika dla katalogu w przeciwnym razie zezwalają użytkownikowi na wyrażanie zgody w imieniu siebie.

Uwaga

Jeśli podczas zarządzania grupami za pośrednictwem portalu wystąpią ograniczenia, takie jak grupy zasad dostępu do aplikacji, rozważ użycie alternatywnych metod, takich jak programu PowerShell lub interfejsu API programu Microsoft Graph.

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 aplikacji w chmurze
    • Administrator aplikacji
    • Administrator użytkowników
    • Właściciel jednostki głównej 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.

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 co najmniej jako administrator aplikacji w chmurze.

  2. Przejdź do Tożsamość>Aplikacje>Aplikacje korporacyjne>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ę.

    Przypisz konto użytkownika do aplikacji w dzierżawie Microsoft Entra.

  5. W okienku Dodawanie przypisania wybierz pozycję Brak zaznaczenia 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 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.

Odziel użytkowników i grupy od 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 Usuń, aby odwołać przypisanie użytkownika lub grupy z aplikacji.

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

  1. Zaloguj się jako co najmniej administrator aplikacji w chmurze .

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

    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
    

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_namei $app_role_name.

    connect-entra -scopes "Application.ReadWrite.All", "AppRoleAssignment.ReadWrite.All"
    $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 uzyskać użytkownika ($user) i jednostkę usługi ($sp), korzystając z UPN użytkownika i nazwy wyświetlanej jednostki usługi.

    $user = Get-EntraUser -ObjectId "$username"
    $sp = Get-EntraServicePrincipal -Filter "displayName eq '$app_name'"
    
  3. Uruchom następujące polecenie, aby znaleźć role aplikacji uwzględnione przez jednostkę usługi

    $appRoles = $sp.AppRoles
    # Display the app roles
    $appRoles | ForEach-Object {
        Write-Output "AppRole: $($_.DisplayName) - ID: $($_.Id)"
    }
    

    Uwaga

    Domyślnym identyfikatorem aplikacji AppRole jest 00000000-0000-0000-0000-000000000000. Ta rola jest przypisywana, gdy dla jednostki usługi nie zdefiniowano określonego AppRole.

  4. Przypisz nazwę AppRole do zmiennej $app_role_name . W tym przykładzie chcemy przypisać użytkownikowi Britta Simon rolę analityka (ograniczony dostęp).

    $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.

    New-EntraUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $sp.ObjectId -Id $appRole.Id
    

Aby przypisać grupę do aplikacji przedsiębiorstwa, zastąp Get-EntraUserGet-EntraGroup i zastąp New-EntraUserAppRoleAssignmentNew-EntraGroupAppRoleAssignment.

Aby uzyskać więcej informacji na temat przypisywania grupy do roli aplikacji, zobacz dokumentację dotyczącą New-EntraGroupAppRoleAssignment.

Odznacz użytkowników i grupy z aplikacji za pomocą programu Microsoft Entra PowerShell

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

  2. Zaloguj się jako co najmniej administrator aplikacji w chmurze .

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

    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
    

Usuń wszystkich użytkowników przypisanych do aplikacji przy użyciu programu Microsoft Entra PowerShell

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

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

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

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", "AppRoleAssignment.ReadWrite.All" i zaloguj się jako co najmniej Administrator aplikacji w chmurze.

  3. Użyj następującego skryptu, aby przypisać użytkownika 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, 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
    

Przykład

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

  1. W programie PowerShell przypisz odpowiednie wartości do zmiennych $userId, $app_namei $app_role_name.

    # Assign the values to the variables  
    $userId = "<Britta Simon's user ID>"  
    $app_name = "Workplace Analytics"  
    
  2. W tym przykładzie nie znamy dokładnej nazwy roli aplikacji, którą chcemy przypisać do użytkownika Britta Simon. Uruchom następujące polecenie, aby uzyskać jednostkę usługi ($sp) przy użyciu nazwy wyświetlanej jednostki usługi.

    # Get the service principal for the app  
    $sp = Get-MgServicePrincipal -Filter "displayName eq '$app_name'"  
    
  3. Uruchom następujące polecenie, aby znaleźć role aplikacji uwidocznione przez jednostkę usługi.

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

    Uwaga

    Domyślnym identyfikatorem aplikacji AppRole jest 00000000-0000-0000-0000-000000000000. Ta rola jest przypisywana, gdy dla jednostki usługi nie zdefiniowano określonego AppRole.

  4. Przypisz nazwę roli do zmiennej $app_role_name . W tym przykładzie chcemy przypisać użytkownikowi Britta Simon rolę analityka (ograniczony dostęp).

    # Assign the values to the variables  
    $app_role_name = "Analyst (Limited access)"  
    $appRoleId = ($sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }).Id  
    
  5. Przygotuj parametry i uruchom następujące polecenie, aby przypisać użytkownika do roli aplikacji.

    # 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  
    

Aby przypisać grupę do aplikacji przedsiębiorstwa, zastąp Get-MgUserGet-MgGroup i zastąp New-MgUserAppRoleAssignmentNew-MgGroupAppRoleAssignment.

Aby uzyskać więcej informacji o tym, jak przypisać grupę do roli aplikacji, zobacz dokumentację polecenia New-MgGroupAppRoleAssignment.

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", "AppRoleAssignment.ReadWrite.All" i zaloguj się jako co najmniej Administrator aplikacji w chmurze.

  3. Pobierz użytkownika i principał usługi

    $user = Get-MgUser -UserId <userid>
    $sp = Get-MgServicePrincipal -ServicePrincipalId <ServicePrincipalId>
    
  4. Pobierz identyfikator przypisania roli

    $assignments = Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $sp.Id | Where {$_.PrincipalDisplayName -eq $user.DisplayName}
    
  5. Uruchom następujące polecenie, aby wyświetlić listę użytkowników przypisanych do aplikacji

    $assignments | Select *
    
  6. Uruchom następujące polecenie, aby usunąć przypisanie AppRole.

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

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

Uruchom następujące polecenie, 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 administrator aplikacji w chmurze.

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

    Application.ReadWrite.All, i AppRoleAssignment.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 obiektu servicePrincipal zasobu, który definiuje rolę aplikacji.
    • appRoleId: identyfikator roli aplikacji (zdefiniowanej w głównej jednostce usługi zasobu) do przypisania użytkownikowi lub grupie.
  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
    • Identyfikator AppRole, który przypisujesz użytkownikowi. Jeśli aplikacja nie uwidacznia żadnych ról, użytkownik ma przypisaną domyślną rolę dostępu.

    Uwaga

    Domyślnym identyfikatorem aplikacji AppRole jest 00000000-0000-0000-0000-000000000000. Ta rola jest przypisywana, gdy dla jednostki usługi nie zdefiniowano określonego AppRole.

  3. Pobierz użytkownika, filtrując według podstawowej 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": "aaaaaaaa-bbbb-cccc-1111-222222222222",
    "resourceId": "a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1",
    "appRoleId": "00000000-0000-0000-0000-000000000000"
    }
    

    W tym przykładzie zarówno 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 odprzypisać wszystkich użytkowników i grupy 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ę appRoleAssignments dla aplikacji.

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

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

Eksplorator Microsoft Graph nie umożliwia bezpośredniego wsadowego usuwania przypisań ról aplikacji. Każde zadanie należy usunąć osobno. Można jednak zautomatyzować ten proces przy użyciu programu Microsoft Graph PowerShell , aby wykonać iterację i usunąć każde przypisanie