Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uygulamayı erişim gözden geçirmeleri gibi bir Microsoft Entra ID İdaresi özelliğiyle kullanmadan önce Microsoft Entra Id'yi mevcut kullanıcılarla ve bir uygulamanın erişim haklarıyla doldurmanın gerekli olduğu dört yaygın senaryo vardır.
- Uygulama kendi kimlik sağlayıcısını kullanıldıktan sonra Microsoft Entra Id'ye geçirildi
- Tek kimlik sağlayıcısı olarak Microsoft Entra Id kullanmayan uygulama
- Uygulama, kimlik sağlayıcısı olarak Microsoft Entra ID kullanmaz ve sağlama işlevini desteklemez.
- Uygulama, kimlik sağlayıcısı olarak Microsoft Entra Id kullanır ve kullanıcılar için ek erişim haklarına sahiptir
Uygulamanın sağlamayı desteklediği veya LDAP dizini, SQL veritabanı kullandığı, SOAP veya REST API'sine sahip olduğu veya kimlik sağlayıcısı olarak Microsoft Entra Id'ye dayandığı bu ilk iki senaryo hakkında daha fazla bilgi için uygulamanın mevcut kullanıcılarını yönetme makalesine bakın. Bu makale, bu uygulama kategorilerinin mevcut kullanıcıları için kimlik idaresi özelliklerinin nasıl kullanılacağını kapsar.
Bu makale üçüncü senaryoyu kapsar. Bazı eski uygulamalarda, uygulamadan diğer kimlik sağlayıcılarını veya yerel kimlik bilgisi kimlik doğrulamasını kaldırmak veya bu uygulamalar için protokol sağlama desteğini etkinleştirmek mümkün olmayabilir. Bu uygulamalar için, söz konusu uygulamaya kimlerin erişimi olduğunu gözden geçirmek veya bir kişinin erişimini kaldırmak için Microsoft Entra Id kullanmak istiyorsanız, Microsoft Entra Id'de uygulama kullanıcılarını temsil eden atamalar oluşturmanız gerekir. Bu makale, kimlik sağlayıcısı olarak Microsoft Entra Id kullanmayan ve sağlamayı desteklemeyen bir uygulamanın senaryosunu kapsar.
Dördüncü senaryo hakkında daha fazla bilgi için bkz. Katalog kullanıcısı Erişim Gözden Geçirmeleri (Önizleme) için katalogda sağlanan özel verileri ekleme.
Lisans gereksinimleri
Bu özelliği kullanmak için Microsoft Entra Kimlik Yönetimi veya Microsoft Entra Suite lisansları gerekir. Gereksinimleriniz için doğru lisansı bulmak için Microsoft Entra ID Yönetimi lisanslama esasları bölümüne bakın.
Terminoloji
Bu makalede, Microsoft Graph PowerShell cmdlet'lerini kullanarak uygulama rolü atamalarını yönetme işlemi gösterilmektedir. Aşağıdaki Microsoft Graph terminolojisini kullanır.
Microsoft Entra Id'de hizmet sorumlusu (ServicePrincipal), belirli bir kuruluşun dizinindeki bir uygulamayı temsil eder.
ServicePrincipalgibi bir uygulamanın desteklediği AppRolesrolleri listeleyen adlı Marketing specialist bir özelliği vardır.
AppRoleAssignment bir kullanıcıyı hizmet sorumlusuna bağlar ve kullanıcının bu uygulamada hangi rolü olduğunu belirtir.
Kullanıcılara uygulamaya sınırlı süreyle erişim vermek için Microsoft Entra yetkilendirme yönetimi erişim paketlerini de kullanıyor olabilirsiniz. Yetkilendirme yönetiminde, AccessPackage birden çok hizmet sorumlusuna ait olabilecek bir veya daha fazla kaynak rolü içerir.
AccessPackage ayrıca kullanıcılar için erişim paketine atamalar (Assignment) da vardır.
Bir kullanıcı için erişim paketine atama oluşturduğunuzda, Microsoft Entra yetkilendirme yönetimi her uygulamaya kullanıcı için gerekli AppRoleAssignment örnekleri otomatik olarak oluşturur. Daha fazla bilgi için PowerShell aracılığıyla erişim paketleri oluşturma hakkında Microsoft Entra yetkilendirme yönetimindeki kaynaklara erişimi yönetme öğreticisine bakın.
Başlamadan önce
Kiracınızda aşağıdaki lisanslardan birine sahip olmanız gerekir:
- Microsoft Entra Id P2 veya Microsoft Entra Kimlik Yönetimi
- Enterprise Mobility + Security E5 lisansı
Uygun bir yönetim rolüne sahip olmanız gerekir. Bu adımları ilk kez gerçekleştiriyorsanız, kiracınızda Microsoft Graph PowerShell kullanımını yetkilendirmek için Genel Yönetici rolüne sahip olmanız gerekir.
Uygulamanızın kiracınızda bir hizmet sorumlusu olması gerekir. Eğer bir hizmet altındağı zaten mevcut değilse, Microsoft Entra Kimliği'nde bunu temsil etmek için bir uygulama kaydedebilirsiniz.
Bir uygulamadan mevcut kullanıcıları toplama
Tüm kullanıcıların Microsoft Entra Id'ye kaydedilmesini sağlamanın ilk adımı, uygulamaya erişimi olan mevcut kullanıcıların listesini toplamaktır.
Bazı uygulamaların, veri deposundan geçerli kullanıcıların listesini dışarı aktarmak için yerleşik bir komutu olabilir. Diğer durumlarda, uygulama bir dış dizine veya veritabanına bağımlı olabilir.
Bazı ortamlarda uygulama, Microsoft Entra Id'ye erişimi yönetmek için uygun olmayan bir ağ kesiminde veya sistemde bulunabilir. Bu sistemde Microsoft Graph PowerShell cmdlet'leri yüklü değilse veya Microsoft Entra Id bağlantısı yoksa, kullanıcı listesini içeren CSV dosyasını Microsoft Graph PowerShell cmdlet'lerinin yüklü olduğu bir sisteme aktarın.
Bu bölümde, virgülle ayrılmış değerler (CSV) dosyasındaki kullanıcıların listesini almaya yönelik dört yaklaşım açıklanmaktadır:
- LDAP dizininden
- SQL Server veritabanından
- Başka bir SQL tabanlı veritabanından
- SAP Cloud Identity Services'dan
LDAP dizini kullanan bir uygulamadan mevcut kullanıcıları toplama
Bu bölüm, Microsoft Entra Id kimlik doğrulaması yapmayan kullanıcılar için temel veri deposu olarak LDAP dizini kullanan uygulamalar için geçerlidir. Active Directory gibi birçok LDAP dizini, kullanıcı listesinin çıkışını veren bir komut içerir.
Bu dizindeki kullanıcıların hangilerinin uygulamanın kullanıcısı olma kapsamında olduğunu belirleyin. Bu seçim, uygulamanızın yapılandırmasına bağlıdır. Bazı uygulamalar için LDAP dizininde bulunan tüm kullanıcılar geçerli bir kullanıcıdır. Diğer uygulamalar, kullanıcının belirli bir özniteliğe sahip olmasını veya bu dizindeki bir grubun üyesi olmasını gerektirebilir.
Dizininizden bu kullanıcı alt kümesini alan komutu çalıştırın. Çıkışın, Microsoft Entra Id ile eşleştirmek için kullanılacak kullanıcıların özniteliklerini içerdiğinden emin olun. Bu özniteliklere örnek olarak çalışan kimliği, hesap adı ve e-posta adresi verilebilir.
Örneğin, bu komut geçerli dosya sistemi dizininde LDAP dizinindeki her kişinin özniteliğine sahip
userPrincipalNamebir CSV dosyası oluşturur:$out_filename = ".\users.csv" csvde -f $out_filename -l userPrincipalName,cn -r "(objectclass=person)"Gerekirse, kullanıcı listesini içeren CSV dosyasını Microsoft Graph PowerShell cmdlet'lerinin yüklü olduğu bir sisteme aktarın.
Bu makalenin devamında yer alan Microsoft Entra Id'nin uygulamadaki kullanıcılarla eşleşen kullanıcılara sahip olduğunu onaylayın bölümünde okumaya devam edin.
SQL Server sihirbazını kullanarak uygulamanın veritabanı tablosundan mevcut kullanıcıları toplama
Bu bölüm, temel alınan veri deposu olarak SQL Server kullanan uygulamalar için geçerlidir.
İlk olarak, tablolardan kullanıcıların listesini alın. Çoğu veritabanı, tabloların içeriğini csv dosyası gibi standart bir dosya biçiminde dışarı aktarmanın bir yolunu sağlar. Uygulama bir SQL Server veritabanı kullanıyorsa, veritabanının bölümlerini dışarı aktarmak için SQL Server İçeri ve Dışarı Aktarma Sihirbazı'nı kullanabilirsiniz. Veritabanınız için bir yardımcı programınız yoksa, sonraki bölümde açıklandığı gibi PowerShell ile ODBC sürücüsünü kullanabilirsiniz.
- SQL Server'ın yüklü olduğu sistemde oturum açın.
- SQL Server 2019 İçeri ve Dışarı Aktarma (64 bit) veya veritabanınızın eşdeğerini açın.
- Kaynak olarak mevcut veritabanını seçin.
- Hedef olarak Düz Dosya Hedefi'ni seçin. Bir dosya adı girin ve Kod sayfası değerini 65001 (UTF-8) olarak değiştirin.
- Sihirbazı tamamlayın ve hemen çalıştırma seçeneğini belirleyin.
- Yürütmenin bitmesini bekleyin.
- Gerekirse, kullanıcı listesini içeren CSV dosyasını Microsoft Graph PowerShell cmdlet'lerinin yüklü olduğu bir sisteme aktarın.
- Bu makalenin devamında yer alan Microsoft Entra Id'nin uygulamadaki kullanıcılarla eşleşen kullanıcılara sahip olduğunu onaylayın bölümünde okumaya devam edin.
PowerShell kullanarak bir uygulamanın veritabanı tablosundan mevcut kullanıcıları toplama
Bu bölüm, başka bir SQL veritabanını temel veri deposu olarak kullanan uygulamalar ve ECMA Connector Host aracılığıyla bu uygulamaya kullanıcı sağladığınız durumlar için geçerlidir. Sağlama aracısını henüz yapılandırmadıysanız, bu bölümde kullanacağınız DSN bağlantı dosyasını oluşturmak için bu kılavuzu kullanın.
Sağlama aracısının yüklü olduğu veya yükleneceği sistemde oturum açın.
PowerShell’i açın.
Veritabanı sisteminize bağlanmak için bir bağlantı dizesi oluşturma.
bağlantı dizesi bileşenleri veritabanınızın gereksinimlerine bağlıdır. SQL Server kullanıyorsanız DSN ve bağlantı dizesi anahtar sözcükleri ve öznitelikleri listesine bakın.
Farklı bir veritabanı kullanıyorsanız, bu veritabanına bağlanmak için zorunlu anahtar sözcükleri eklemeniz gerekir. Örneğin, veritabanınız DSN dosyasının tam yol adını, kullanıcı kimliğini ve parolayı kullanıyorsa, aşağıdaki komutları kullanarak bağlantı dizesi oluşturur:
$filedsn = "c:\users\administrator\documents\db.dsn" $db_cs = "filedsn=" + $filedsn + ";uid=p;pwd=secret"Aşağıdaki komutları kullanarak veritabanınıza bir bağlantı açın ve bağlantı dizesi sağlayın:
$db_conn = New-Object data.odbc.OdbcConnection $db_conn.ConnectionString = $db_cs $db_conn.Open()Kullanıcıları veritabanı tablosundan almak için bir SQL sorgusu oluşturma. Uygulamanın veritabanındaki kullanıcıları Microsoft Entra Id'deki kullanıcılarla eşleştirmek için kullanılacak sütunları eklediğinizden emin olun. Sütunlar çalışan kimliği, hesap adı veya e-posta adresi içerebilir.
Örneğin, kullanıcılarınız
USERSadlı venameileemailsütunlarına sahip bir veritabanı tablosunda tutuluyorsa, aşağıdaki komutu girin:$db_query = "SELECT name,email from USERS"Sorguyu veritabanına bağlantı üzerinden gönderin:
$result = (new-object data.odbc.OdbcCommand($db_query,$db_conn)).ExecuteReader() $table = new-object System.Data.DataTable $table.Load($result)Sonuç, sorgudan alınan kullanıcıları temsil eden satırların listesidir.
Sonucu bir CSV dosyasına yazın:
$out_filename = ".\users.csv" $table.Rows | Export-Csv -Path $out_filename -NoTypeInformation -Encoding UTF8Bu sistemde Microsoft Graph PowerShell cmdlet'leri yüklü değilse veya Microsoft Entra Id bağlantısı yoksa, kullanıcı listesini içeren CSV dosyasını Microsoft Graph PowerShell cmdlet'lerinin yüklü olduğu bir sisteme aktarın.
SAP Cloud Identity Services'dan mevcut kullanıcıları toplama
Bu bölüm, kullanıcı sağlama için temel hizmet olarak SAP Cloud Identity Services kullanan SAP uygulamaları için geçerlidir.
- SAP Cloud Identity Services Yönetim Konsolunuzda oturum açın,
https://<tenantID>.accounts.ondemand.com/adminveya deneme sürümü varsahttps://<tenantID>.trial-accounts.ondemand.com/admin. - Kullanıcılar ve Yetkilendirmeler> Kullanıcıları Dışa Aktar kısmına gidin.
- Microsoft Entra kullanıcılarını SAP'deki kullanıcılarla eşleştirmek için gereken tüm öznitelikleri seçin. Bu, SAP Sistemlerinizde kullanıyor olabileceğiniz ,
SCIM ID,userNameve diğer öznitelikleri içeriremails. - Dışarı Aktar'ı seçin ve tarayıcının CSV dosyasını indirmesini bekleyin.
- Bu sistemde Microsoft Graph PowerShell cmdlet'leri yüklü değilse veya Microsoft Entra Id bağlantısı yoksa, kullanıcı listesini içeren CSV dosyasını Microsoft Graph PowerShell cmdlet'lerinin yüklü olduğu bir sisteme aktarın.
Microsoft Entra Id'de uygulamadaki kullanıcılarla eşleşen kullanıcılar olduğunu onaylayın
Artık uygulamadan elde edilen tüm kullanıcıların listesini edindiğinize göre, uygulamanın veri deposundaki bu kullanıcıları Microsoft Entra ID'deki kullanıcılarla eşleştireceksiniz.
Microsoft Entra Id'de kullanıcıların kimliklerini alma
Bu bölümde, Microsoft Graph PowerShell cmdlet'lerini kullanarak Microsoft Entra ID ile nasıl etkileşim kurulacak gösterilmektedir.
Kuruluşunuz bu senaryo için bu cmdlet'leri ilk kez kullandığında, Microsoft Graph PowerShell'in kiracınızda kullanılmasına izin vermek için Genel Yönetici rolünde olmanız gerekir. Sonraki etkileşimler aşağıdakiler gibi daha düşük ayrıcalıklı bir rol kullanabilir:
- Yeni kullanıcılar oluşturmayı düşünüyorsanız Kullanıcı Yöneticisi.
- Uygulama Yöneticisi veya Kimlik İdaresi Yöneticisi, eğer yalnızca uygulama rolü atamalarını yönetiyorsanız.
PowerShell’i açın.
Microsoft Graph PowerShell modülleri henüz yüklü değilse, şu komutu kullanarak modülü ve diğerlerini yükleyin
Microsoft.Graph.Users:Install-Module Microsoft.GraphModülleri zaten yüklediyseniz son sürümü kullandığınızdan emin olun:
Update-Module microsoft.graph.users,microsoft.graph.identity.governance,microsoft.graph.applicationsMicrosoft Entra Id'ye bağlanın:
$msg = Connect-MgGraph -ContextScope Process -Scopes "User.ReadWrite.All,Application.ReadWrite.All,AppRoleAssignment.ReadWrite.All,EntitlementManagement.ReadWrite.All"Bu komutu ilk kez kullanıyorsanız, Microsoft Graph Komut Satırı araçlarının bu izinlere sahip olmasını onaylamanız gerekebilir.
Uygulamanın veri deposundan edinilen kullanıcıların listesini PowerShell oturumuna okuyun. Kullanıcı listesi bir CSV dosyasındaysa PowerShell cmdlet'ini
Import-Csvkullanabilir ve önceki bölümdeki dosyanın adını bağımsız değişken olarak belirtebilirsiniz.Örneğin, SAP Cloud Identity Services'ten alınan dosya Users-exported-from-sap.csv olarak adlandırılmışsa ve geçerli dizinde bulunuyorsa, bu komutu girin.
$filename = ".\Users-exported-from-sap.csv" $dbusers = Import-Csv -Path $filename -Encoding UTF8Veritabanı veya dizin kullanıyorsanız başka bir örnek için, dosya users.csv olarak adlandırılıyorsa ve geçerli dizinde bulunuyorsa şu komutu girin:
$filename = ".\users.csv" $dbusers = Import-Csv -Path $filename -Encoding UTF8users.csv dosyasının Microsoft Entra Id'deki bir kullanıcının özniteliğiyle eşleşecek sütununu seçin.
SAP Cloud Identity Services kullanıyorsanız varsayılan eşleme, Microsoft Entra ID özniteliğine sahip SAP SCIM özniteliğidir
userNameuserPrincipalName:$db_match_column_name = "userName" $azuread_match_attr_name = "userPrincipalName"Bir veritabanı veya dizin kullanıyorsanız başka bir örnek için, adlı
EMailsütundaki değerin Microsoft Entra özniteliğindekiuserPrincipalNamedeğerle aynı olduğu bir veritabanında kullanıcılarınız olabilir:$db_match_column_name = "EMail" $azuread_match_attr_name = "userPrincipalName"Bu kullanıcıların kimliklerini Microsoft Entra Id'de alın.
Aşağıdaki PowerShell betiği, daha önce belirtilen ,
$dbusersve$db_match_column_namedeğerlerini kullanır$azuread_match_attr_name. Kaynak dosyadaki her kayıt için eşleşen değere sahip bir özniteliği olan bir kullanıcıyı bulmak için Microsoft Entra Kimliğini sorgular. Dosyada kaynak SAP Cloud Identity Services, veritabanı veya dizinden alınan çok sayıda kullanıcı varsa, bu betiğin tamamlanması birkaç dakika sürebilir. Microsoft Entra ID'de değeri olan bir özniteliğiniz yoksa ve bir veya başka bircontainsfiltre ifadesi kullanmanız gerekiyorsa, farklı bir filtre ifadesi kullanmak için bu betiği ve aşağıdaki 11. adımda bunu özelleştirmeniz gerekir.$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 } }Önceki sorguların sonuçlarını görüntüleyin. SAP Cloud Identity Services, veritabanı veya dizindeki kullanıcıların, hatalar veya eksik eşleşmeler nedeniyle Microsoft Entra ID'de bulunamayıp bulunamadığını kontrol edin.
Aşağıdaki PowerShell betiği, bulunamamış kayıtların sayısını görüntüler:
$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."Betik tamamlandığında, veri kaynağındaki herhangi bir kayıt Microsoft Entra Kimliği'nde bulunmadıysa bir hata gösterir. Uygulamanın veri deposundaki kullanıcıların tüm kayıtları Microsoft Entra ID'de kullanıcı olarak bulunamıyorsa, hangi kayıtların ve neden eşleşmediğini araştırmanız gerekir.
Örneğin, bir kişinin e-posta adresi ve userPrincipalName'i Microsoft Entra Kimliği'nde değiştirilmiş ancak ilgili
mailözelliği uygulamanın veri kaynağında güncellenmemiş olabilir. Ya da kullanıcı kuruluştan artık ayrılmış olabilir, ancak hâlâ uygulamanın veri kaynağındadır. Ya da uygulamanın veri kaynağında Microsoft Entra Id'deki belirli bir kişiye karşılık olmayan bir satıcı veya süper yönetici hesabı olabilir.Microsoft Entra Id'de bulunamayan veya etkin olmayan ve oturum açamayan kullanıcılar varsa ancak bunların erişiminin gözden geçirilmesini veya özniteliklerinin SAP Cloud Identity Services, veritabanı veya dizinde güncelleştirilmesini istiyorsanız, uygulamayı, eşleşen kuralı güncelleştirmeniz veya onlar için Microsoft Entra kullanıcıları oluşturmanız gerekir. Hangi değişikliğin yapılacağı hakkında daha fazla bilgi için Microsoft Entra ID'deki kullanıcılarla eşleşmeyen uygulamalarda eşlemeleri ve kullanıcı hesaplarını yönetme kısmına bakın.
Microsoft Entra Id'de kullanıcı oluşturma seçeneğini belirlerseniz, aşağıdakilerden birini kullanarak kullanıcıları toplu olarak oluşturabilirsiniz:
- Microsoft Entra yönetim merkezinde kullanıcıları toplu oluşturma bölümünde açıklandığı gibi bir CSV dosyası
- New-MgUser cmdlet
Bu yeni kullanıcıların, daha sonra bunları uygulamadaki mevcut kullanıcılarla eşleştirmek ve
userPrincipalName,mailNicknamevedisplayNamedahil olmak üzere Microsoft Entra ID için gereken özniteliklerle doldurulduğundan emin olun.userPrincipalNamedizinindeki tüm kullanıcılar arasında benzersiz olmalıdır.Örneğin,
EMailadlı sütundaki değerin Microsoft Entra kullanıcı temel adı olarak kullanmak istediğiniz değer,Aliassütunundaki değerin Microsoft Entra ID posta rumuzu veFull namesütunundaki değerin kullanıcının görünen adını içerdiği bir veritabanında kullanıcılarınız olabilir.$db_display_name_column_name = "Full name" $db_user_principal_name_column_name = "Email" $db_mail_nickname_column_name = "Alias"Daha sonra bu betiği kullanarak SAP Cloud Identity Services, veritabanı veya dizinde bulunan ve Microsoft Entra ID'deki kullanıcılarla eşleşmeyen kullanıcılar için Microsoft Entra kullanıcıları oluşturabilirsiniz. Kuruluşunuzda ihtiyaç duyulan ek Microsoft Entra özniteliklerini eklemek veya
$azuread_match_attr_namenemailNicknamene deuserPrincipalNameise bu Microsoft Entra özniteliğini sağlamak için bu betiği değiştirebileceğinizi unutmayın.$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 } }Eksik kullanıcıları Microsoft Entra Id'ye ekledikten sonra 7. adımdaki betiği yeniden çalıştırın. Ardından 8. adımdaki komut dosyasını çalıştırın. Hata bildirilmemiş olup olmadığını denetleyin.
$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."
Uygulamayı kaydetme
Uygulama Zaten Microsoft Entra Id'de kayıtlıysa sonraki adıma geçin.
Kullandığınız hesabın Microsoft Entra Id'deki uygulamaları yönetme izni olmalıdır. Aşağıdaki Microsoft Entra rollerinden herhangi biri gerekli izinleri içerir:
Uygulamayı ve hizmet ilkesini oluşturun.
Örneğin, kurumsal uygulamanın adı
CORPDB1ise aşağıdaki komutları girin:$azuread_app_name = "CORPDB1" $azuread_app = New-MgApplication -DisplayName $azuread_app_name $azuread_sp = New-MgServicePrincipal -DisplayName $azuread_app_name -AppId $azuread_app.AppIdUygulamaya bir rol ekleyin ve atamalarının gözden geçirilebilmesi için uygulamayı Microsoft Entra Id ile tümleşik olarak etiketleyin. Örneğin, rol adı ise
General, aşağıdaki PowerShell komutlarında bu değeri sağlayın:$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
Uygulamaya henüz atanmamış kullanıcıları denetleme
Önceki adımlar, uygulamanın veri deposundaki tüm kullanıcıların Microsoft Entra Id'de kullanıcı olarak mevcut olduğunu doğruladı. Ancak, bunların tümü şu anda Microsoft Entra Id'de uygulamanın rollerine atanmayabilir. Sonraki adımlar, uygulama rollerine atanmamış kullanıcıları belirlemektir.
Uygulamanın hizmet sorumlusuna ait kimliği arayın.
Örneğin, kurumsal uygulamanın adı
CORPDB1ise aşağıdaki komutları girin:$azuread_app_name = "CORPDB1" $azuread_sp_filter = "displayName eq '" + ($azuread_app_name -replace "'","''") + "'" $azuread_sp = Get-MgServicePrincipal -Filter $azuread_sp_filter -AllMicrosoft Entra Id'de uygulamaya atamaları olan kullanıcıları alın.
Bu, önceki komutta
$azuread_spayarlanan değişkene dayalıdır.$azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)Önceki bölümde yer alan kullanıcı kimliklerinin listesini şu anda uygulamaya atanmış olan kullanıcılarla karşılaştırın:
$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."Uygulama rollerine sıfır kullanıcı atanmamışsa, yani tüm kullanıcılar uygulama rollerine atanmışsa, erişim incelemesi yapmadan önce başka değişiklik yapmanız gerekmez.
Ancak, şu anda uygulama rollerine bir veya daha fazla kullanıcı atanmamışsa, yordama devam etmeniz ve bunları uygulamanın rollerinden birine eklemeniz gerekir.
Kalan kullanıcıları atamak için uygulamanın rolünü seçin.
Bir uygulamanın birden fazla rolü olabilir. Kullanılabilir rolleri listelemek için şu komutu kullanın:
$azuread_sp.AppRoles | where-object {$_.AllowedMemberTypes -contains "User"} | ft DisplayName,IdListeden uygun rolü seçin ve rol kimliğini alın. Örneğin, rol adı ise
General, aşağıdaki PowerShell komutlarında bu değeri sağlayın:$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"}
Microsoft Entra Id'de uygulama rolü atamaları oluşturma
Microsoft Entra Id'nin uygulamadaki kullanıcıları Microsoft Entra Id'deki kullanıcılarla eşleştirmesi için Microsoft Entra Id'de uygulama rolü atamaları oluşturmanız gerekir.
Bir uygulamaya kullanıcı için Microsoft Entra Id'de bir uygulama rolü ataması oluşturulduğunda ve uygulama sağlamayı desteklemediğinde,
- Kullanıcı, Microsoft Entra Id dışında güncelleştirilmediği sürece veya Microsoft Entra Id'deki atama kaldırılana kadar süresiz olarak uygulamada kalır.
- Bu uygulamanın rol atamalarının bir sonraki gözden geçirmesinde kullanıcı incelemeye dahil edilecek.
- Erişim gözden geçirmesinde kullanıcı reddedilirse, uygulama rolü ataması kaldırılır.
Şu anda rol atamaları olmayan kullanıcılar için uygulama rolü atamaları oluşturun:
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 }Değişikliklerin Microsoft Entra Id içinde yayılması için bir dakika bekleyin.
Güncelleştirilmiş rol atamaları listesini almak için Microsoft Entra Kimliğini sorgula:
$azuread_existing_assignments = @(Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)Önceki bölümde yer alan kullanıcı kimliklerinin listesini uygulamaya atanmış kullanıcılarla karşılaştırın:
$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." }Uygulama rollerine herhangi bir kullanıcı atanmamışsa, önceki adımlardan bir hata için Microsoft Entra denetim günlüğünü denetleyin.
Uygun gözden geçirenleri seçin
Her erişim gözden geçirmesini oluşturduğunuzda, yöneticiler bir veya daha fazla gözden geçiren seçebilir. Gözden geçirenler, bir kaynağa sürekli erişim için kullanıcıları seçerek veya bunları kaldırarak bir gözden geçirme gerçekleştirebilir.
Genellikle bir kaynak sahibi gözden geçirme gerçekleştirmekle sorumludur. B deseni ile tümleştirilmiş bir uygulamanın erişimini gözden geçirmenin bir parçası olarak bir grubun gözden geçirmesini oluşturuyorsanız, grup sahiplerini gözden geçiren olarak seçebilirsiniz. Microsoft Entra Id'deki uygulamaların mutlaka sahibi olmadığından, uygulama sahibini gözden geçiren olarak seçme seçeneği mümkün değildir. Bunun yerine, gözden geçirmeyi oluştururken, gözden geçirenler olmak üzere uygulama sahiplerinin adlarını sağlayabilirsiniz.
Ayrıca, bir grup veya uygulamanın gözden geçirmesini oluştururken çok aşamalı bir gözden geçirme yapmayı da seçebilirsiniz. Örneğin, atanan her kullanıcının yöneticisinin incelemenin ilk aşamasını, kaynak sahibinin de ikinci aşamayı gerçekleştirmesini seçebilirsiniz. Bu şekilde kaynak sahibi, yöneticisi tarafından onaylanmış kullanıcılara odaklanabilir.
İncelemeleri oluşturmadan önce kiracınızda yeterli Microsoft Entra ID P2 veya Microsoft Entra Kimlik Yönetimi SKU lisansına sahip olup olmadığınızı denetleyin. Ayrıca, tüm gözden geçirenlerin e-posta adresleri olan etkin kullanıcılar olup olmadığını denetleyin. Erişim gözden geçirmeleri başladığında, her bir kullanıcı Microsoft Entra Id'den bir e-postayı gözden geçirir. İnceleyenin posta kutusu yoksa, inceleme başladığında e-postayı veya e-posta hatırlatıcısını almaz. Ayrıca, Microsoft Entra Id'de oturum açabilmeleri engellenirse gözden geçirmeyi gerçekleştiremezler.
Uygulama rolü atamalarının gözden geçirmesini oluşturma
Kullanıcılar uygulama rollerine girdikten ve gözden geçirenleri belirledikten sonra, gözden geçirme başlatmak için Microsoft Entra Id'yi yapılandırabilirsiniz.
Uygulama rol atamalarının gözden geçirilmesini oluşturmak için gruplar veya uygulamalar için erişim gözden geçirmesi oluşturma kılavuzundaki yönergeleri izleyin. Tamamlandığında sonuçları uygulamak için gözden geçirmeyi yapılandırın.
İncelemeler tamamlandığında güncellenen atamaları al
Gözden geçirme tamamlandığında, uygulama rolü atamalarına sahip kullanıcıların güncelleştirilmiş listesini alabilirsiniz.
$res = (Get-MgServicePrincipalAppRoleAssignedTo -ServicePrincipalId $azuread_sp.Id -All)Sütunlar
PrincipalDisplayNamevePrincipalId, bir uygulama rolü atamasını koruyan her kullanıcının görünen adlarını ve Microsoft Entra kullanıcı kimliklerini içerir.
Bilet oluşturma için ServiceNow ile yetkilendirme yönetimi tümleştirmesini yapılandırma (isteğe bağlı)
ServiceNow kullanıyorsanız Logic Apps aracılığıyla yetkilendirme yönetimi tümleştirmesini kullanarak isteğe bağlı olarak otomatik ServiceNow bileti oluşturmayı yapılandırabilirsiniz. Bu senaryoda yetkilendirme yönetimi, erişim paketi atamaları alan kullanıcıların el ile sağlanması için ServiceNow biletlerini otomatik olarak oluşturabilir.