Zarządzanie użytkownikami aplikacji, która nie obsługuje aprowizacji — Microsoft PowerShell
Istnieją trzy typowe scenariusze, w których konieczne jest wypełnienie identyfikatora Entra firmy Microsoft istniejącymi użytkownikami aplikacji przed użyciem aplikacji z funkcją Zarządzanie tożsamością Microsoft Entra, taką jak przeglądy dostępu.
- Aplikacja zmigrowana do identyfikatora Entra firmy Microsoft po użyciu własnego dostawcy tożsamości
- Aplikacja, która nie używa identyfikatora Entra firmy Microsoft jako jedynego dostawcy tożsamości
- Aplikacja nie używa identyfikatora Entra firmy Microsoft jako dostawcy tożsamości ani nie obsługuje aprowizacji
Aby uzyskać więcej informacji na temat tych dwóch pierwszych scenariuszy, w których aplikacja obsługuje aprowizację lub używa katalogu LDAP, bazy danych SQL, ma interfejs API SOAP lub REST lub korzysta z identyfikatora Microsoft Entra jako dostawcy tożsamości, zobacz artykuł rządzący istniejącymi użytkownikami aplikacji. W tym artykule opisano sposób używania funkcji zapewniania ładu tożsamości dla istniejących użytkowników tych kategorii aplikacji.
W tym artykule opisano trzeci scenariusz. W przypadku niektórych starszych aplikacji może nie być możliwe usunięcie innych dostawców tożsamości lub lokalnego uwierzytelniania poświadczeń z aplikacji lub włączenie obsługi protokołów aprowizacji dla tych aplikacji. W przypadku tych aplikacji, jeśli chcesz użyć identyfikatora Entra firmy Microsoft, aby sprawdzić, kto ma dostęp do tej aplikacji, lub usunąć dostęp kogoś z tej aplikacji, musisz utworzyć przypisania w identyfikatorze Entra firmy Microsoft reprezentującym użytkowników aplikacji. W tym artykule opisano ten scenariusz aplikacji, która nie używa identyfikatora Entra firmy Microsoft jako dostawcy tożsamości i nie obsługuje aprowizacji.
Wymagania dotyczące licencji
Korzystanie z tej funkcji wymaga licencji Zarządzanie tożsamością Microsoft Entra lub Microsoft Entra Suite. Aby znaleźć odpowiednią licencję dla wymagań, zobacz Zarządzanie tożsamością Microsoft Entra podstawy licencjonowania.
Terminologia
W tym artykule przedstawiono proces zarządzania przypisaniami ról aplikacji przy użyciu poleceń cmdlet programu PowerShell programu Microsoft Graph. Używa on następującej terminologii programu Microsoft Graph.
W identyfikatorze Entra firmy Microsoft jednostka usługi (ServicePrincipal
) reprezentuje aplikację w katalogu określonej organizacji. ServicePrincipal
ma właściwość o nazwie AppRoles
, która wyświetla listę ról, które obsługuje aplikacja, takich jak Marketing specialist
. AppRoleAssignment
łączy użytkownika z jednostką usługi i określa, która rola użytkownika ma w tej aplikacji.
Możesz również używać pakietów dostępu do zarządzania upoważnieniami firmy Microsoft w celu udzielenia użytkownikom ograniczonego czasowo dostępu do aplikacji. W zarządzaniu upoważnieniami AccessPackage
zawiera co najmniej jedną rolę zasobu, potencjalnie z wielu jednostek usługi. AccessPackage
Ma również przypisania (Assignment
) dla użytkowników do pakietu dostępu.
Podczas tworzenia przypisania dla użytkownika do pakietu dostępu zarządzanie upoważnieniami firmy Microsoft Entra automatycznie tworzy niezbędne AppRoleAssignment
wystąpienia dla użytkownika dla każdej aplikacji. Aby uzyskać więcej informacji, zobacz samouczek Zarządzanie dostępem do zasobów w usłudze Microsoft Entra entitlement management dotyczący tworzenia pakietów dostępu za pomocą programu PowerShell.
Zanim rozpoczniesz
Musisz mieć jedną z następujących licencji w dzierżawie:
- Microsoft Entra ID P2 lub Zarządzanie tożsamością Microsoft Entra
- Licencja enterprise Mobility + Security E5
Musisz mieć odpowiednią rolę administracyjną. Jeśli po raz pierwszy wykonujesz te kroki, musisz mieć rolę administratora globalnego, aby autoryzować korzystanie z programu Microsoft Graph PowerShell w dzierżawie.
Aplikacja wymaga jednostki usługi w dzierżawie. Jeśli jednostka usługi jeszcze nie istnieje, możesz zarejestrować aplikację w celu reprezentowania jej w identyfikatorze Entra firmy Microsoft.
Zbieranie istniejących użytkowników z aplikacji
Pierwszym krokiem w kierunku upewnienia się, że wszyscy użytkownicy są zarejestrowani w usłudze Microsoft Entra ID, jest zebranie listy istniejących użytkowników, którzy mają dostęp do aplikacji.
Niektóre aplikacje mogą mieć wbudowane polecenie umożliwiające wyeksportowanie listy bieżących użytkowników z magazynu danych. W innych przypadkach aplikacja może polegać na zewnętrznym katalogu lub bazie danych.
W niektórych środowiskach aplikacja może znajdować się w segmencie sieci lub systemie, który nie jest odpowiedni do zarządzania dostępem do identyfikatora Entra firmy Microsoft. Dlatego może być konieczne wyodrębnienie listy użytkowników z tej aplikacji, katalogu lub bazy danych, a następnie przeniesienie jej jako pliku do innego systemu, który może być używany na potrzeby interakcji firmy Microsoft Entra.
Jeśli aplikacja ma katalog LDAP lub bazę danych SQL, zobacz Zbieranie istniejących użytkowników z aplikacji , aby uzyskać zalecenia dotyczące sposobu wyodrębniania kolekcji użytkowników.
W przeciwnym razie, jeśli aplikacja nie ma katalogu lub bazy danych, musisz skontaktować się z właścicielem aplikacji i podać listę użytkowników. Może to być w formacie, takim jak plik CSV, z jednym wierszem na użytkownika. Upewnij się, że jedno pole każdego użytkownika w pliku zawiera unikatowy identyfikator, taki jak adres e-mail, który jest również obecny dla użytkowników w usłudze Microsoft Entra ID.
Jeśli ten system nie ma zainstalowanych poleceń cmdlet programu PowerShell programu Microsoft Graph lub nie ma łączności z identyfikatorem Entra firmy Microsoft, przenieś plik CSV zawierający listę użytkowników do systemu z zainstalowanymi poleceniami cmdlet programu Microsoft Graph PowerShell.
Potwierdź, że identyfikator Entra firmy Microsoft ma użytkowników, którzy są zgodni z użytkownikami z aplikacji
Teraz, gdy masz listę wszystkich użytkowników uzyskanych z aplikacji, dopasujesz tych użytkowników z magazynu danych aplikacji z użytkownikami w usłudze Microsoft Entra ID.
Pobieranie identyfikatorów użytkowników w identyfikatorze entra firmy Microsoft
W tej sekcji przedstawiono sposób interakcji z identyfikatorem Entra firmy Microsoft przy użyciu poleceń cmdlet programu PowerShell programu Microsoft Graph.
Przy pierwszym użyciu tych poleceń cmdlet w organizacji w tym scenariuszu musisz być w roli administratora globalnego, aby zezwolić programowi Microsoft Graph PowerShell na używanie go w dzierżawie. Kolejne interakcje mogą używać roli o niższych uprawnieniach, takich jak:
- Administrator użytkowników, jeśli przewidujesz tworzenie nowych użytkowników.
- Administrator aplikacji lub Administrator ładu tożsamości, jeśli zarządzasz przypisaniami ról aplikacji.
Otwórz program PowerShell.
Jeśli nie masz już zainstalowanych modułów programu PowerShell programu Microsoft Graph, zainstaluj
Microsoft.Graph.Users
moduł i inne za pomocą tego polecenia:Install-Module Microsoft.Graph
Jeśli masz już zainstalowane moduły, upewnij się, że używasz najnowszej wersji:
Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applications
Połącz się z identyfikatorem Entra firmy Microsoft:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"
Jeśli używasz tego polecenia po raz pierwszy, może być konieczne wyrażenie zgody na zezwolenie narzędziom wiersza polecenia programu Microsoft Graph na te uprawnienia.
Przeczytaj listę użytkowników uzyskanych z magazynu danych aplikacji do sesji programu PowerShell. Jeśli lista użytkowników znajdowała się w pliku CSV, możesz użyć polecenia cmdlet
Import-Csv
programu PowerShell i podać nazwę pliku z poprzedniej sekcji jako argument.Jeśli na przykład plik uzyskany z usług SAP Cloud Identity Services nosi nazwę Users-exported-from-sap.csv i znajduje się w bieżącym katalogu, wprowadź to polecenie.
$filename = ".\Users-exported-from-sap.csv" $dbusers = Import-Csv -Path $filename -Encoding UTF8
W innym przykładzie, jeśli używasz bazy danych lub katalogu, jeśli plik ma nazwę users.csv i znajduje się w bieżącym katalogu, wprowadź następujące polecenie:
$filename = ".\users.csv" $dbusers = Import-Csv -Path $filename -Encoding UTF8
Wybierz kolumnę pliku users.csv , który będzie zgodny z atrybutem użytkownika w usłudze Microsoft Entra ID.
Jeśli używasz usług SAP Cloud Identity Services, domyślne mapowanie to atrybut SAP SCIM z atrybutem
userName
userPrincipalName
Microsoft Entra ID :$db_match_column_name = "userName" $azuread_match_attr_name = "userPrincipalName"
W innym przykładzie, jeśli używasz bazy danych lub katalogu, być może użytkownicy w bazie danych, w której wartość w kolumnie o nazwie
EMail
jest taka sama jak w atrybucieuserPrincipalName
Microsoft Entra :$db_match_column_name = "EMail" $azuread_match_attr_name = "userPrincipalName"
Pobierz identyfikatory tych użytkowników w identyfikatorze Entra firmy Microsoft.
Poniższy skrypt programu PowerShell używa
$dbusers
określonych wcześniej wartości ,$db_match_column_name
i$azuread_match_attr_name
. Spowoduje to wysłanie zapytania do identyfikatora Entra firmy Microsoft w celu zlokalizowania użytkownika, który ma atrybut z pasującą wartością dla każdego rekordu w pliku źródłowym. Jeśli w pliku uzyskanym ze źródłowej usługi SAP Cloud Identity Services, bazy danych lub katalogu istnieje wiele użytkowników, ten skrypt może potrwać kilka minut. Jeśli nie masz atrybutu w identyfikatorze Entra firmy Microsoft, który ma wartość i musisz użyćcontains
lub innego wyrażenia filtru, musisz dostosować ten skrypt i to w kroku 11 poniżej, aby użyć innego wyrażenia filtru.$dbu_not_queried_list = @() $dbu_not_matched_list = @() $dbu_match_ambiguous_list = @() $dbu_query_failed_list = @() $azuread_match_id_list = @() $azuread_not_enabled_list = @() $dbu_values = @() $dbu_duplicate_list = @() foreach ($dbu in $dbusers) { if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { $val = $dbu.$db_match_column_name $escval = $val -replace "'","''" if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval } $filter = $azuread_match_attr_name + " eq '" + $escval + "'" try { $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop) if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else { $id = $ul[0].id; $azuread_match_id_list += $id; if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id } } } catch { $dbu_query_failed_list += $dbu } } else { $dbu_not_queried_list += $dbu } }
Wyświetl wyniki poprzednich zapytań. Sprawdź, czy którykolwiek z użytkowników w usługach SAP Cloud Identity Services, bazie danych lub katalogu nie może znajdować się w identyfikatorze Entra firmy Microsoft z powodu błędów lub brakujących dopasowań.
Poniższy skrypt programu PowerShell wyświetli liczbę rekordów, które nie zostały zlokalizowane:
$dbu_not_queried_count = $dbu_not_queried_list.Count if ($dbu_not_queried_count -ne 0) { Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name." } $dbu_duplicate_count = $dbu_duplicate_list.Count if ($dbu_duplicate_count -ne 0) { Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value" } $dbu_not_matched_count = $dbu_not_matched_list.Count if ($dbu_not_matched_count -ne 0) { Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name." } $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count if ($dbu_match_ambiguous_count -ne 0) { Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous." } $dbu_query_failed_count = $dbu_query_failed_list.Count if ($dbu_query_failed_count -ne 0) { Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors." } $azuread_not_enabled_count = $azuread_not_enabled_list.Count if ($azuread_not_enabled_count -ne 0) { Write-Error "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in." } if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count) { Write-Output "You will need to resolve those issues before access of all existing users can be reviewed." } $azuread_match_count = $azuread_match_id_list.Count Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID."
Po zakończeniu działania skryptu będzie on wskazywać błąd, jeśli jakiekolwiek rekordy ze źródła danych nie znajdowały się w identyfikatorze Entra firmy Microsoft. Jeśli nie wszystkie rekordy użytkowników z magazynu danych aplikacji mogą znajdować się jako użytkownicy w usłudze Microsoft Entra ID, należy zbadać, które rekordy nie są zgodne i dlaczego.
Na przykład adres e-mail użytkownika i userPrincipalName mogły zostać zmienione w identyfikatorze Entra firmy Microsoft bez aktualizowania odpowiedniej
mail
właściwości w źródle danych aplikacji. Lub użytkownik mógł już opuścił organizację, ale nadal znajduje się w źródle danych aplikacji. Może też istnieć konto dostawcy lub administratora w źródle danych aplikacji, które nie odpowiada żadnej konkretnej osobie w identyfikatorze Entra firmy Microsoft.Jeśli nie było użytkowników, którzy nie mogli znajdować się w identyfikatorze Entra firmy Microsoft lub nie byli aktywni i mogli się zalogować, ale chcesz mieć przeglądany dostęp lub ich atrybuty zaktualizowane w usługach SAP Cloud Identity Services, bazie danych lub katalogu, musisz zaktualizować aplikację, regułę dopasowania lub zaktualizować lub utworzyć dla nich użytkowników firmy Microsoft Entra. Aby uzyskać więcej informacji na temat wprowadzania zmian, zobacz Zarządzanie mapowaniami i kontami użytkowników w aplikacjach, które nie są zgodne z użytkownikami w identyfikatorze Entra firmy Microsoft.
Jeśli wybierzesz opcję tworzenia użytkowników w usłudze Microsoft Entra ID, możesz utworzyć użytkowników zbiorczo przy użyciu jednego z następujących elementów:
- Plik CSV, zgodnie z opisem w artykule Zbiorcze tworzenie użytkowników w centrum administracyjnym firmy Microsoft Entra
- Polecenie cmdlet New-MgUser
Upewnij się, że ci nowi użytkownicy są wypełniani atrybutami wymaganymi przez identyfikator Entra firmy Microsoft, aby później dopasować je do istniejących użytkowników w aplikacji, oraz atrybuty wymagane przez identyfikator Entra firmy Microsoft, w tym
userPrincipalName
mailNickname
, idisplayName
. ElementuserPrincipalName
musi być unikatowy dla wszystkich użytkowników w katalogu.Możesz na przykład mieć użytkowników w bazie danych, w której wartość w kolumnie o nazwie
EMail
jest wartością, której chcesz użyć jako głównej nazwy użytkownika Microsoft Entra, wartość w kolumnieAlias
zawiera pseudonim poczty Microsoft Entra ID, a wartość w kolumnieFull name
zawiera nazwę wyświetlaną użytkownika:$db_display_name_column_name = "Full name" $db_user_principal_name_column_name = "Email" $db_mail_nickname_column_name = "Alias"
Następnie możesz użyć tego skryptu, aby utworzyć użytkowników usługi Microsoft Entra dla użytkowników w usługach SAP Cloud Identity Services, bazie danych lub katalogu, który nie był zgodny z użytkownikami w usłudze Microsoft Entra ID. Należy pamiętać, że może być konieczne zmodyfikowanie tego skryptu w celu dodania dodatkowych atrybutów firmy Microsoft Entra wymaganych w organizacji lub jeśli
$azuread_match_attr_name
parametr niemailNickname
jest aniuserPrincipalName
, aby podać ten atrybut Entra firmy Microsoft.$dbu_missing_columns_list = @() $dbu_creation_failed_list = @() foreach ($dbu in $dbu_not_matched_list) { if (($null -ne $dbu.$db_display_name_column_name -and $dbu.$db_display_name_column_name.Length -gt 0) -and ($null -ne $dbu.$db_user_principal_name_column_name -and $dbu.$db_user_principal_name_column_name.Length -gt 0) -and ($null -ne $dbu.$db_mail_nickname_column_name -and $dbu.$db_mail_nickname_column_name.Length -gt 0)) { $params = @{ accountEnabled = $false displayName = $dbu.$db_display_name_column_name mailNickname = $dbu.$db_mail_nickname_column_name userPrincipalName = $dbu.$db_user_principal_name_column_name passwordProfile = @{ Password = -join (((48..90) + (96..122)) * 16 | Get-Random -Count 16 | % {[char]$_}) } } try { New-MgUser -BodyParameter $params } catch { $dbu_creation_failed_list += $dbu; throw } } else { $dbu_missing_columns_list += $dbu } }
Po dodaniu wszystkich brakujących użytkowników do identyfikatora Entra firmy Microsoft ponownie uruchom skrypt z kroku 7. Następnie uruchom skrypt z kroku 8. Sprawdź, czy nie zgłoszono żadnych błędów.
$dbu_not_queried_list = @() $dbu_not_matched_list = @() $dbu_match_ambiguous_list = @() $dbu_query_failed_list = @() $azuread_match_id_list = @() $azuread_not_enabled_list = @() $dbu_values = @() $dbu_duplicate_list = @() foreach ($dbu in $dbusers) { if ($null -ne $dbu.$db_match_column_name -and $dbu.$db_match_column_name.Length -gt 0) { $val = $dbu.$db_match_column_name $escval = $val -replace "'","''" if ($dbu_values -contains $escval) { $dbu_duplicate_list += $dbu; continue } else { $dbu_values += $escval } $filter = $azuread_match_attr_name + " eq '" + $escval + "'" try { $ul = @(Get-MgUser -Filter $filter -All -Property Id,accountEnabled -ErrorAction Stop) if ($ul.length -eq 0) { $dbu_not_matched_list += $dbu; } elseif ($ul.length -gt 1) {$dbu_match_ambiguous_list += $dbu } else { $id = $ul[0].id; $azuread_match_id_list += $id; if ($ul[0].accountEnabled -eq $false) {$azuread_not_enabled_list += $id } } } catch { $dbu_query_failed_list += $dbu } } else { $dbu_not_queried_list += $dbu } } $dbu_not_queried_count = $dbu_not_queried_list.Count if ($dbu_not_queried_count -ne 0) { Write-Error "Unable to query for $dbu_not_queried_count records as rows lacked values for $db_match_column_name." } $dbu_duplicate_count = $dbu_duplicate_list.Count if ($dbu_duplicate_count -ne 0) { Write-Error "Unable to locate Microsoft Entra ID users for $dbu_duplicate_count rows as multiple rows have the same value" } $dbu_not_matched_count = $dbu_not_matched_list.Count if ($dbu_not_matched_count -ne 0) { Write-Error "Unable to locate $dbu_not_matched_count records in Microsoft Entra ID by querying for $db_match_column_name values in $azuread_match_attr_name." } $dbu_match_ambiguous_count = $dbu_match_ambiguous_list.Count if ($dbu_match_ambiguous_count -ne 0) { Write-Error "Unable to locate $dbu_match_ambiguous_count records in Microsoft Entra ID as attribute match ambiguous." } $dbu_query_failed_count = $dbu_query_failed_list.Count if ($dbu_query_failed_count -ne 0) { Write-Error "Unable to locate $dbu_query_failed_count records in Microsoft Entra ID as queries returned errors." } $azuread_not_enabled_count = $azuread_not_enabled_list.Count if ($azuread_not_enabled_count -ne 0) { Write-Warning "$azuread_not_enabled_count users in Microsoft Entra ID are blocked from sign-in." } if ($dbu_not_queried_count -ne 0 -or $dbu_duplicate_count -ne 0 -or $dbu_not_matched_count -ne 0 -or $dbu_match_ambiguous_count -ne 0 -or $dbu_query_failed_count -ne 0 -or $azuread_not_enabled_count -ne 0) { Write-Output "You will need to resolve those issues before access of all existing users can be reviewed." } $azuread_match_count = $azuread_match_id_list.Count Write-Output "Users corresponding to $azuread_match_count records were located in Microsoft Entra ID."
Rejestrowanie aplikacji
Jeśli aplikacja jest już zarejestrowana w identyfikatorze Entra firmy Microsoft, przejdź do następnego kroku.
Konto, którego używasz, musi mieć uprawnienia do zarządzania aplikacjami w usłudze Microsoft Entra ID. Każda z następujących ról firmy Microsoft Entra obejmuje wymagane uprawnienia:
Utwórz aplikację i jednostkę usługi.
Jeśli na przykład aplikacja dla przedsiębiorstw ma nazwę
CORPDB1
, wprowadź następujące polecenia:$azuread_app_name = "CORPDB1" $azuread_app = New-MgApplication -DisplayName $azuread_app_name $azuread_sp = New-MgServicePrincipal -DisplayName $azuread_app_name -AppId $azuread_app.AppId
Dodaj rolę do aplikacji i oznacz aplikację jako zintegrowaną z identyfikatorem Entra firmy Microsoft, aby można było przejrzeć jej przypisania. Jeśli na przykład nazwa roli to
General
, podaj tę wartość w następujących poleceniach programu PowerShell:$ar0 = New-Object Microsoft.Graph.PowerShell.Models.MicrosoftGraphAppRole $ar0.AllowedMemberTypes += "User" $ar0.Description = "General role" $ar0.DisplayName = "General" $ar0.id = New-Guid $ar0.IsEnabled = $true $ar0.Value = "General" $ara = @() $ara += $ar0 $azuread_app_tags = @() $azuread_app_tags += "WindowsAzureActiveDirectoryIntegratedApp" $azuread_app_update = Update-MgApplication -ApplicationId $azuread_app.Id -AppRoles $ara -Tags $azuread_app_tags
Sprawdzanie użytkowników, którzy nie są jeszcze przypisani do aplikacji
Poprzednie kroki potwierdziły, że wszyscy użytkownicy w magazynie danych aplikacji istnieją jako użytkownicy w identyfikatorze Entra firmy Microsoft. Jednak mogą one nie być obecnie przypisane do ról aplikacji w identyfikatorze Entra firmy Microsoft. Następnym krokiem jest sprawdzenie, którzy użytkownicy nie mają przypisań do ról aplikacji.
Wyszukaj identyfikator jednostki usługi dla jednostki usługi aplikacji.
Jeśli na przykład aplikacja dla przedsiębiorstw ma nazwę
CORPDB1
, wprowadź następujące polecenia:$azuread_app_name = "CORPDB1" $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'" $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -All
Pobierz użytkowników, którzy mają obecnie przypisania do aplikacji w identyfikatorze Entra firmy Microsoft.
Opiera się to na zmiennej
$azuread_sp
ustawionej w poprzednim poleceniu.$azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
Porównaj listę identyfikatorów użytkowników z poprzedniej sekcji z tymi użytkownikami aktualnie przypisanymi do aplikacji:
$azuread_not_in_role_list = @() foreach ($id in $azuread_match_id_list) { $found = $false foreach ($existing in $azuread_existing_assignments) { if ($existing.principalId -eq $id) { $found = $true; break; } } if ($found -eq $false) { $azuread_not_in_role_list += $id } } $azuread_not_in_role_count = $azuread_not_in_role_list.Count Write-Output "$azuread_not_in_role_count users in the application's data store are not assigned to the application roles."
Jeśli zero użytkowników nie jest przypisanych do ról aplikacji, co oznacza, że wszyscy użytkownicy są przypisani do ról aplikacji, nie musisz wprowadzać żadnych dalszych zmian przed przeprowadzeniem przeglądu dostępu.
Jeśli jednak co najmniej jeden użytkownik nie jest obecnie przypisany do ról aplikacji, musisz kontynuować procedurę i dodać je do jednej z ról aplikacji.
Wybierz rolę aplikacji, aby przypisać pozostałych użytkowników.
Aplikacja może mieć więcej niż jedną rolę. Użyj tego polecenia, aby wyświetlić listę dostępnych ról:
$azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User"} | ft DisplayName,Id
Wybierz odpowiednią rolę z listy i uzyskaj jej identyfikator roli. Jeśli na przykład nazwa roli to
General
, podaj tę wartość w następujących poleceniach programu PowerShell:$azuread_app_role_name = "General" $azuread_app_role_id = ($azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User" -and $_.DisplayName -eq $azuread_app_role_name}).Id if ($null -eq $azuread_app_role_id) { write-error "role $azuread_app_role_name not located in application manifest"}
Tworzenie przypisań ról aplikacji w identyfikatorze Entra firmy Microsoft
Aby identyfikator Entra firmy Microsoft był zgodny z użytkownikami w aplikacji z użytkownikami w usłudze Microsoft Entra ID, należy utworzyć przypisania ról aplikacji w identyfikatorze Entra firmy Microsoft.
Po utworzeniu przypisania roli aplikacji w identyfikatorze Entra firmy Microsoft dla użytkownika do aplikacji, a aplikacja nie obsługuje aprowizacji, wówczas
- Użytkownik pozostanie w aplikacji na czas nieokreślony, chyba że zostanie zaktualizowany poza identyfikatorem Entra firmy Microsoft lub dopóki przypisanie w identyfikatorze Entra firmy Microsoft nie zostanie usunięte.
- Podczas następnej przeglądu przypisań ról tej aplikacji użytkownik zostanie uwzględniony w przeglądzie.
- Jeśli użytkownik zostanie odrzucony w przeglądzie dostępu, przypisanie roli aplikacji zostanie usunięte.
Utwórz przypisania ról aplikacji dla użytkowników, którzy obecnie nie mają przypisań ról:
foreach ($u in $azuread_not_in_role_list) { $res = New-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -AppRoleId $azuread_app_role_id -PrincipalId $u -ResourceId $azuread_sp.Id }
Poczekaj minutę na propagację zmian w identyfikatorze Entra firmy Microsoft.
Wykonaj zapytanie o identyfikator entra firmy Microsoft, aby uzyskać zaktualizowaną listę przypisań ról:
$azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
Porównaj listę identyfikatorów użytkowników z poprzedniej sekcji z tymi użytkownikami przypisanymi teraz do aplikacji:
$azuread_still_not_in_role_list = @() foreach ($id in $azuread_match_id_list) { $found = $false foreach ($existing in $azuread_existing_assignments) { if ($existing.principalId -eq $id) { $found = $true; break; } } if ($found -eq $false) { $azuread_still_not_in_role_list += $id } } $azuread_still_not_in_role_count = $azuread_still_not_in_role_list.Count if ($azuread_still_not_in_role_count -gt 0) { Write-Output "$azuread_still_not_in_role_count users in the application's data store are not assigned to the application roles." }
Jeśli do ról aplikacji nie przypisano żadnych użytkowników, sprawdź dziennik inspekcji firmy Microsoft Entra pod kątem błędu z poprzedniego kroku.
Wybieranie odpowiednich recenzentów
Podczas tworzenia każdego przeglądu dostępu administratorzy mogą wybrać co najmniej jednego recenzenta. Recenzenci mogą przeprowadzić przegląd, wybierając użytkowników w celu dalszego dostępu do zasobu lub usuwania ich.
Zazwyczaj właściciel zasobu jest odpowiedzialny za przeprowadzenie przeglądu. Jeśli tworzysz przegląd grupy, w ramach przeglądania dostępu do aplikacji zintegrowanej ze wzorcem B, możesz wybrać właścicieli grup jako recenzentów. Ponieważ aplikacje w identyfikatorze Entra firmy Microsoft nie muszą mieć właściciela, opcja wybierania właściciela aplikacji jako recenzenta nie jest możliwa. Zamiast tego podczas tworzenia przeglądu można podać nazwy właścicieli aplikacji jako recenzentów.
Możesz również wybrać podczas tworzenia przeglądu grupy lub aplikacji, aby mieć przegląd wieloetapowy. Na przykład można wybrać, aby menedżer każdego przypisanego użytkownika wykonał pierwszy etap przeglądu, a właściciel zasobu drugi etap. Dzięki temu właściciel zasobu może skupić się na użytkownikach, którzy zostali już zatwierdzeni przez menedżera.
Przed utworzeniem recenzji sprawdź, czy masz wystarczającą liczbę stanowisk jednostek SKU microsoft Entra ID P2 lub Zarządzanie tożsamością Microsoft Entra w dzierżawie. Sprawdź również, czy wszyscy recenzenci są aktywnymi użytkownikami z adresami e-mail. Po rozpoczęciu przeglądów dostępu każda z nich przegląda wiadomość e-mail z identyfikatora Entra firmy Microsoft. Jeśli recenzent nie ma skrzynki pocztowej, nie otrzyma wiadomości e-mail po rozpoczęciu przeglądu lub przypomnieniu e-mail. Jeśli nie będą oni mogli zalogować się do identyfikatora Entra firmy Microsoft, nie będą mogli wykonać przeglądu.
Tworzenie przeglądu przypisań ról aplikacji
Gdy użytkownicy znajdują się w rolach aplikacji i masz zidentyfikowanych recenzentów, możesz skonfigurować identyfikator Entra firmy Microsoft, aby rozpocząć przegląd.
Postępuj zgodnie z instrukcjami w przewodniku dotyczącym tworzenia przeglądu dostępu grup lub aplikacji, aby utworzyć przegląd przypisań ról aplikacji. Skonfiguruj przegląd, aby zastosować wyniki po zakończeniu.
Pobieranie przypisań, które są aktualizowane po zakończeniu przeglądów
Po zakończeniu przeglądu można pobrać zaktualizowaną listę użytkowników z przypisaniami ról aplikacji.
$res = (Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)
Kolumny
PrincipalDisplayName
iPrincipalId
zawierają nazwy wyświetlane i identyfikatory użytkowników firmy Microsoft Entra dla każdego użytkownika, który zachowuje przypisanie roli aplikacji.
Konfigurowanie integracji zarządzania upoważnieniami z usługą ServiceNow na potrzeby obsługi biletów (opcjonalnie)
Jeśli masz usługę ServiceNow, możesz opcjonalnie skonfigurować automatyczne tworzenie biletów usługi ServiceNow przy użyciu integracji zarządzania upoważnieniami za pośrednictwem usługi Logic Apps. W tym scenariuszu zarządzanie upoważnieniami może automatycznie tworzyć bilety usługi ServiceNow na potrzeby ręcznej aprowizacji użytkowników, którzy otrzymali przypisania pakietów dostępu.