Microsoft Graph PowerShell ile Uygulama API İzinleri Nasıl İptal Edilir


Microsoft Entra'daki uygulamalara atanan izinler her zaman kalıcı olmayabilir. Microsoft Graph PowerShell gibi araçların kullanımını kolaylaştırmak veya raporlamayı veya geçişleri desteklemek için kiracınızı 3. taraf sistemiyle entegre etmek amacıyla geçici olarak verilmiş olabilirler. Gereksinimlerdeki değişiklikler aynı zamanda izinlerin azaltılmasına da yol açabilir.

Sebebi ne olursa olsun, artık ihtiyaç duyulmayan izinlerin iptal edilmesi gerekiyor…

Bu eğitimde, Microsoft Graph PowerShell ve Microsoft Enter yönetim merkezini kullanarak Microsoft Entra'daki uygulamalara önceden verilen API izinlerinin nasıl iptal edileceğini göstereceğim.

Graph API izinlerini neden iptal etmelisiniz?

Zamanla Hizmet Sorumlularındaki Microsoft Graph API izinleri, gerçekte ihtiyaç duyduklarından daha fazla hakka sahip oldukları bir noktaya gelebilir. Bu, öncekilerden farklı olarak Azure AD ve MSOL PowerShell modüllerinin çalışması için Hizmet Sorumlularının işlevselliğini kullanan Microsoft Graph PowerShell gibi yeni araçların benimsenmesiyle artık daha yaygın hale geliyor.

Bu izinlerin uygulamalara atanabilmesi için Genel Yönetici veya Ayrıcalıklı Kullanıcı Yöneticisi rolüne sahip bir kullanıcı tarafından onay verilmesi gerekir. Artık Microsoft Graph Komut Satırı Araçları uygulaması veya Grafik Gezgini uygulaması gibi yerleşik hizmet sorumluları söz konusu olduğunda, ayarlanan izinlerin önceden tanımlanması her zaman o kadar kolay olmuyor. Bir yönetici tarafından gerçekleştirilmesi gereken görevler, Microsoft Entra kaynaklarının programatik yönetimi için ek izinlere duyulan ihtiyaç da dahil olmak üzere günlük olarak değişebilir.

Bu sorun, bu yerleşik hizmet sorumlularının hızlı bir şekilde aşırı ayrıcalıklı hale gelmesini kolaylaştırır; bu, ayrıcalıklı rollerdeki kullanıcıların raporları çalıştırmak için Yönetici portallarına erişime ihtiyaç duyabileceği (Koşullu Erişimin uygulanabileceği), ancak çalıştırılmaması gereken senaryolarda bir sorun oluşturabilir. programlı erişime sahip değilsiniz.

Ne yazık ki, bu yerleşik Hizmet Sorumlularını Koşullu Erişim ile hedeflemek mümkün değildir; bu da ayrıcalıklı bir kullanıcının güvenliği ihlal edilirse (herhangi bir şekilde veya biçimde) ve erişime onaylı konumların dışında sahip olunması durumunda ne olacağı sorusunu gündeme getirir. Bir saldırganın programlı erişimi, diğer güvenlik önlemleri alınmazsa kolaylıkla kötüye kullanılabilir.

Bunu akılda tutarak, yerleşik Hizmet Sorumlularına kritik izinlerin ihtiyaç duyulandan daha uzun süre verilmemesini sağlamak iyi bir uygulamadır.

Microsoft Entra Portal'ı kullanarak API izinlerini iptal edin

Microsoft Entra portalı, bir Uygulamadan tekil veya çoklu izinleri hızlı bir şekilde kaldırmak için basit ve kullanışlı bir araçtır. Microsoft Entra'daki bir Hizmet Sorumlusunun Grafik API izinlerini iptal etmek için aşağıdaki adımları izleyin:

1. Microsoft Entra'ya giriş yapın

2. Uygulamalar > Kurumsal Uygulamalar'ı seçin

3. Listeden uygulamayı seçin

4. Soldaki Güvenlik altında İzinler'i seçin

5. İptal etmek istediğiniz iznin sağ kısmının üzerine gelin ve İzni iptal et'i tıklayın.

Microsoft Graph PowerShell'i kullanarak API izinlerini iptal edin

Microsoft Graph PowerShell, Microsoft Entra'da daha önce verilen Hizmet Sorumlusunu iptal etmek için daha kullanışlı bir yol sağlar. Bu, aynı anda birden fazla izni iptal edebileceğiniz ve izni daha sık, daha rahat bir şekilde iptal edebileceğiniz anlamına gelir.

Bir Hizmet Sorumlusunun API izinlerini iptal etmek için DelegatedPermissionGrant.ReadWrite.All iznini zaten kabul etmiş olmanız gerekir.

Connect-MgGraph -scopes DelegatedPermissionGrant.ReadWrite.All

Geçerli PowerShell oturumunuzda bağlı olduğunuz uygulamaya izin verilen tüm izinleri almak ve saklamak için aşağıdaki komutları çalıştırın. Bu, halihazırda bağlı olduğunuz hizmet sorumlusunun kimliğini bulmak için Get-MgContext cmdlet'ini kullanır.

$Context = Get-MgContext
$ObjectId = (Get-MgServicePrincipal -All -Filter "AppId eq '$($context.clientid)'").Id
$PermissionsGrants = Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId $ObjectId -All

Şimdi izinleri iptal etmek için Remove-MgOauthPermissionGrant cmdlet'ini kullanın:

$PermissionsGrants | ForEach-Object {
    Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

Farklı bir uygulamadan API izinlerini kaldırın/iptal edin

Yerleşik Microsoft Graph Komut Satırı Araçları hizmet sorumlusu veya birçok kullanıcının bağlanabileceği ve/veya sık sık izinlere izin verebileceği diğer özel uygulamalar gibi yüksek kullanımlı hizmet sorumlularından izinlerin otomatik olarak iptal edildiği bir süreci otomatikleştirmek isteyebilirsiniz. .

Sizin için bu, yukarıdakiyle aynı konsepti takip edebilir, ancak önce istediğiniz ServicePrincipal'in ObjectId'ini tanımlamanız gerekecektir. Bu, uygulamanızın kolay adını hedefleyen bir filtreyle Get-MgServicePrincipal cmdlet'i kullanılarak gerçekleştirilebilir:

$id = (Get-MgServicePrincipal -Filter "DisplayName eq 'Graph Application - IT'").id

Farklı bir uygulamadan API izinlerini kaldırmak için tam örnek:

Connect-MgGraph -scopes application.read.all DelegatedPermissionGrant.ReadWrite.All

$id = (Get-MgServicePrincipal -Filter "DisplayName eq 'Graph Application - IT'").id

$PermGrants = Get-MgServicePrincipalOauth2PermissionGrant -ServicePrincipalId $id -All

$PermGrants | ForEach-Object {
    Remove-MgOauth2PermissionGrant -OAuth2PermissionGrantId $_.Id
}

İlgili makaleler