Microsoft Entra Id'de bir uygulamanın istenen izinlerini güncelleştirme
Microsoft Entra Id ile bir uygulama ayarlarken, geliştiriciler izinleri kullanarak diğer uygulama ve hizmetlerden verilere erişim isteyebilir. Uygulama bildirimlerine statik izinler ekleyerek veya çalışma zamanında dinamik olarak izin isteyerek izin isteyebilirler. Kullanıcılar veya yöneticiler onay sırasında izin vermeyi seçerek uygulamanın ihtiyaç duyduğu verilere erişmesine izin verebilir.
Bir uygulamanın işlevselliği geliştikçe, erişmesi gereken kaynaklar da değişir. Bu değişiklikler, yeni özellikleri etkinleştirmeyi, gereksiz erişimi ortadan kaldırmayı veya yüksek ayrıcalıklı izinleri daha az ayrıcalıklı izinlerle değiştirmeyi içerebilir. Bu makalede, Microsoft Entra yönetim merkezini ve Microsoft Graph API çağrılarını kullanarak uygulamanızın istediği izinleri nasıl güncelleştirebilirsiniz?
Uygulamanızın izinlerini güncelleştirmek yalnızca en iyi güvenlik uygulaması değildir, aynı zamanda uygulamanızın kullanıcı deneyimini ve benimsemesini geliştirmenin bir yoludur. Aşağıdaki bölümde, uygulamanız için izinleri güncelleştirmenin bazı avantajları özetlenmiştir:
- Uygulamanızın yeni bir işlevi varsa, uygulamanın ihtiyaç duyduğu ek kaynaklara erişmesini sağlayan daha fazla izin isteyebilirsiniz.
- Yalnızca çalışması için gereken en az ayrıcalıklı izinleri isterse müşterilerin uygulamanızı benimseme olasılığı daha yüksektir. Uygulamanızın müşterinin gizliliğine ve veri korumasına saygı gösterdiğini ve ihtiyaç duyduğundan daha fazla kaynağa erişmediğini gösterir.
- Ayrıca, uygulamanızın güvenliği aşılırsa, daha az veya daha az ayrıcalıklı izinlere sahipse daha küçük bir patlama yarıçapı olur. Bu, saldırganın müşterinin verilerine ve kaynaklarına daha az erişimi olduğu ve bu nedenle olası hasarın azaldığı anlamına gelir.
- Uygulamanızın izinlerini güncelleştirerek uygulamanızın güvenliğini, kullanılabilirliğini ve uyumluluğunu geliştirebilir ve müşterilerinizle güven oluşturabilirsiniz.
Önkoşullar
Bir uygulamanın istenen izinlerini güncelleştirmek için şunları yapmanız gerekir:
- Microsoft Entra kullanıcı hesabı. Henüz bir hesabınız yoksa ücretsiz bir hesap oluşturun.
- Aşağıdaki rollerden biri: Uygulama Yöneticisi, Bulut Uygulaması Yöneticisi. Yönetici olmayan bir uygulama sahibi, bir uygulamanın istenen izinlerini güncelleştirebiliyor.
İzinleri güncelleştirme senaryoları
Aşağıdaki bölümde, uygulamanızın istediği izinleri güncelleştirmeniz gereken üç ana senaryo listelenir:
- Uygulamaya izin ekleme
- Bir uygulamadan kullanılmayan izinleri kaldırma
- İzin değiştirme
Not
Uygulamanız için istenen izinlerin güncelleştirilmesi, uygulamanızın korumalı kaynaklara erişimini otomatik olarak vermez veya iptal etmez. Müşterilerinizin veya kuruluşunuzdaki yöneticilerin eklenen yeni izinlere onay vermesi veya izinleri el ile iptal etmeleri gerekir.
Uygulamaya izin ekleme
Uygulamanızın daha önce gerek duymadığı bir izne ihtiyacı olan yeni bir işlevselliği varsa, izin ekleyebilirsiniz.
Yalnızca uygulamanızın çalışması için gereken en düşük izinlere erişim istemek en iyi yöntemdir. Uygulamanızda yeni işlevleri desteklemek için yeni bir izin eklemeniz gerekiyorsa, bu özellik için yalnızca en az ayrıcalıklı izni isteyin.
Örneğin, uygulamanıza bir e-posta bildirimi özelliği eklemek için kullanıcınızın e-postalarına erişmesi gerekir. Bunu yapmak için izin için Mail.ReadWrite
erişim istemeniz gerekir.
Statik onaya izin ekleme
Statik onay, çalışma zamanında değil, uygulama kaydı sırasında kullanıcılardan veya yöneticilerden izin istemenin bir yoludur. Statik onay, uygulamanın Microsoft Entra yönetim merkezindeki Uygulama kayıtları bölmesinde ihtiyaç duyduğu tüm izinleri bildirmesini gerektirir. Microsoft Entra yönetim merkezini kullanarak yalnızca statik onay izinlerini güncelleştirebilirsiniz. Farklı onay türleri hakkında daha fazla bilgi edinmek için bkz . Onay türleri. Dinamik onay izinlerini güncelleştirme hakkında bilgi edinmek için bu makalenin Microsoft Graph sekmesine bakın.
Bu bölümde, statik onaya izin eklemeyi öğreneceksiniz.
Microsoft Entra yönetim merkezinde statik onaya iki farklı yolla izin ekleyebilirsiniz:
1. Seçenek: API izinleri bölmesine izin ekleme
- Microsoft Entra yönetim merkezinde en az Bir Bulut Uygulaması Yöneticisi veya uygulama sahibi olarak oturum açın.
- Kimlik>Uygulamaları> Uygulama kayıtları> Tüm uygulamalar'a göz atın.
- İzin eklemek istediğiniz uygulama kaydını bulun ve seçin. İzinleri iki farklı yolla ekleyebilirsiniz:
- API izinleri bölmesine izinler ekleyin.
2. Seçenek: Uygulama bildirimine izin ekleme
- Sol gezinti bölmesindeki Yönet menü grubunun altında Bildirim'i seçin. Seçim, uygulama kayıt nesnesinin özniteliklerini doğrudan düzenlemenizi sağlayan bir düzenleyici açar.
- Uygulamanın bildirim dosyasındaki özelliği dikkatlice düzenleyin
requiredResourceAccess
. resourceAppId
Özelliğini ve özelliğini ekleyin veresourceAccess
gerekli izinleri atayın.- Değişikliklerinizi kaydedin.
İzin eklemenin aşağıdaki adımlarını tamamlamak için aşağıdaki kaynaklara ve ayrıcalıklara ihtiyacınız vardır:
- HTTP isteklerini seçtiğiniz bir araçta (örneğin, uygulamanızda veya Graph Gezgini aracılığıyla) çalıştırın.
- API'leri en az Bulut Uygulaması Yöneticisi olan bir kullanıcı olarak veya hedef uygulama kaydının sahibi olarak çalıştırın.
- Bu değişiklikleri yapmak için kullanılan uygulamaya izin verilmelidir
Application.ReadWrite.All
.
Uygulamanızın gerektirdiği izinleri, izin kimliklerini ve bunların uygulama rolleri (uygulama izinleri) veya temsilci izinleri olup olmadığını belirleyin. Örneğin, Microsoft Graph izinleri istemek istiyorsanız, izinlerin ve kimliklerinin listesi için bkz. Microsoft Graph izinleri.
Gerekli Microsoft Graph izinlerini uygulamanıza ekleyin. Aşağıdaki örnek, nesne kimliğiyle
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
tanımlanan bir uygulama kaydına gerekli Microsoft Graph izinlerini eklemek için Uygulama güncelleştirme API'sini çağırır. Bu örnek, izin veApplication.Read.All
uygulama iznini kullanırAnalytics.Read
ve temsilci olarak verir. Microsoft Graph, ile genel00000003-0000-0000-c000-000000000000
olarak benzersizAppId
olan bir ServicePrincipal nesnesi olarak tanımlanır.PATCH https://graph.microsoft.com/v1.0/applications/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Content-Type: application/json { "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e", "type": "Scope" }, { "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30", "type": "Role" } ] } ] }
Dinamik onaya izin ekleme
Dinamik onay, Uygulama kayıtları bölmesinde statik olarak bildirmek yerine çalışma zamanında kullanıcılardan veya yöneticilerden izin istemenin bir yoludur. Dinamik onay, uygulamanın yalnızca belirli bir işlevsellik için gereken izinleri istemesine ve gerektiğinde kullanıcıdan veya yöneticiden onay almasına olanak tanır. Dinamik onay, temsilci izinleriyle kullanılabilir ve tüm izinler için yönetici onayı istemek üzere kapsamla /.default
birleştirilebilir.
Dinamik onaya izin eklemek için:
Microsoft Graph kullanma: Bir uygulama kaydına gerekli Microsoft Graph izinlerini ekleyin. Bu örnek, izin ve
Application.Read.All
uygulama iznini kullanırAnalytics.Read
ve temsilci olarak verir. 'kapsamlar' içindeki değerleri, uygulama için yapılandırmak istediğiniz Microsoft Graph temsilci izinlerinin değerleriyle değiştirin.İstek aşağıdaki örnekteki gibi olmalıdır:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=Analytics.Read+Application.Read
MSAL.js kullan: 'kapsamlar' içindeki değerleri, uygulama için yapılandırmak istediğiniz Microsoft Graph temsilci izinlerinin değerleriyle değiştirin.
const Request = { scopes: ["openid", "profile"], loginHint: "example@domain.net" }; myMSALObj.ssoSilent(Request) .then((response) => { // your logic }).catch(error => { console.error("Silent Error: " + error); if (error instanceof msal.InteractionRequiredAuthError) { myMSALObj.loginRedirect(loginRequest); } });
Kurumsal uygulama için eklenen izinler için onay verme
Uygulamanıza izinler eklendikten sonra, kullanıcıların veya yöneticilerin yeni izinler için onay vermesi gerekir. Yönetici olmayan kullanıcılar uygulamanızda oturum açtıklarında bir onay istemi görür. Öte yandan yönetici kullanıcılar, uygulamanızda veya Microsoft Entra yönetim merkezinde ilk kez oturum açtıklarında, kuruluşlarındaki tüm kullanıcılar adına yeni izinler için onay verebilir.
Eklenen izinler yönetici onayı gerektirdiğinde, gerekli eylemler uygulama türüne göre değişir:
- Ev kiracısında tek kiracılı uygulama ve çok kiracılı uygulama: Kullanıcının en azından Ayrıcalıklı Rol Yöneticisi rolü olarak oturum açması ve kiracı genelinde onay vermesi gerekir.
- Müşterinin kiracılarındaki çok kiracılı uygulamalar: Kullanıcı bir sonraki oturum açma girişiminde yeni onay istemleri görür. İzinler yalnızca kullanıcı onayı gerektiriyorsa, kullanıcı onay verebilir. İzinler yönetici onayı gerektiriyorsa, kullanıcının onay vermek için yöneticisine başvurması gerekir.
Kullanılmayan izinler istemeyi durdurma
İzinlerin kaldırılması, hassas verilerin açığa çıkarılması veya güvenliğin tehlikeye atılması riskini azaltabilir ve kullanıcılarınız veya yöneticileriniz için onay sürecini basitleştirebilir. Uygulamanızın artık bir izne ihtiyacı yoksa, uygulama kaydınızın gerekli kaynak erişiminden ve kodundan izni kaldırarak uygulamanızın bunu istemesini engellemeniz gerekir. Örneğin, artık e-posta bildirimleri göndermeden bir uygulama izni kaldırabilir Mail.ReadWrite
.
Önemli
Uygulama kaydınızdan bir iznin kaldırılması, uygulamaya zaten verilmiş olan izinleri otomatik olarak iptal etmez. İzinleri el ile iptal etmeniz gerekir. Daha fazla bilgi için bu makalenin Kurumsal uygulama için kaldırılan izinler için onayı iptal etme bölümüne bakın.
Statik onay için izin istemeyi durdurma
Statik onay gerektiren izinler istemeyi durdurmak için, Uygulama kayıtları bölmesinden izni kaldırmanız gerekir. Kiracının yöneticisinin Kurumsal uygulamalar bölmesindeki izni de iptal etmesi gerekir. Kurumsal uygulamaya verilen izinleri iptal etme hakkında daha fazla bilgi için bkz . Kurumsal uygulama izinlerini iptal etme.
Bu bölümde statik onay için izin istemeyi nasıl durduracağınızı öğreneceksiniz.
Microsoft Entra yönetim merkezinde statik onay izinlerini iki farklı yolla kaldırabilirsiniz:
1. Seçenek: API izinleri bölmesinden
- Microsoft Entra yönetim merkezinde en az Bir Bulut Uygulaması Yöneticisi veya uygulama sahibi olarak oturum açın.
- Kimlik>Uygulamaları> Uygulama kayıtları> Tüm uygulamalar'a göz atın.
- İzinlerini kaldırmak istediğiniz uygulama kaydını bulun ve seçin.
- API izinleri bölmesinden izinleri kaldırın:
Seçenek 2: Uygulama bildiriminden
- Sol gezinti bölmesindeki Yönet menü grubunun altında Bildirim'i seçin. Uygulama kayıt nesnesinin özniteliklerini doğrudan düzenlemenizi sağlayan bir düzenleyici açılır.
- Uygulamanın bildirim dosyasındaki özelliği dikkatlice düzenleyin
requiredResourceAccess
. - Özellik ve
resourceAccess
özelliktenresourceAppId
gereksiz izinleri kaldırın. - Değişikliklerinizi kaydedin.
İzinleri kaldırmaya yönelik aşağıdaki adımları tamamlamak için aşağıdaki kaynaklara ve ayrıcalıklara ihtiyacınız vardır:
- HTTP isteklerini seçtiğiniz bir araçta (örneğin, uygulamanızda veya Graph Gezgini aracılığıyla) çalıştırın.
- API'leri en az Bir Bulut Uygulaması Yöneticisi olarak veya hedef uygulama kaydının sahibi olarak çağırın.
- Bu değişiklikleri yapmak için kullanılan uygulamaya izin verilmelidir
Application.ReadWrite.All
.
Uygulamanızın izinlerini belirleyin.
Örneğin, uygulamanızın Microsoft Graph izinleri istemesini durdurmak için, uygulamanız için Microsoft Graph izinlerini, bunların izin kimliklerini ve bunların uygulama rolleri (uygulama izinleri) veya temsilci izinleri olup olmadığını belirleyin.
uygulamanızdan istenmeyen Microsoft Graph izinlerini kaldırın. Aşağıdaki örnek, örnek istemci kimliğiyle
00001111-aaaa-2222-bbbb-3333cccc4444
tanımlanan bir uygulama kaydından istenmeyen Microsoft Graph izinlerini kaldırmak için Uygulama güncelleştirme API'sini çağırır. Bu örnekte, uygulamada ,User.Read
veApplication.Read.All
bulunurAnalytics.Read
. İzin ve uygulama iznini kaldırmamızAnalytics.Read
veApplication.Read.All
temsilci olarak atamamız gerekir. Microsoft Graph, genel olarak benzersizAppId
olan servicePrincipal nesnesi00000003-0000-0000-c000-000000000000
ve veAppDisplayName
olarak Microsoft Graph olarakDisplayName
tanımlanır.PATCH https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444 Content-Type: application/json { "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6 ", "type": "Scope" } ] } ] }
Dinamik onay ile izin istemeyi durdurma
Dinamik onay isteğinden temsilci izinlerini kaldırmanız gerektiğinde, kaldırmak istediğiniz izinleri dışarıda bırakırken kapsam parametresini belirtin. İzinlerin kaldırılması, uygulamanın ilgili API'yi çağırmamasını sağlar.
Bu yöntem yalnızca temsilci izinleri için çalışır. Uygulama izinleri bir yönetici tarafından statik onay aracılığıyla istenir ve verilir ve OAuth 2.0 yetkilendirme isteği sırasında kapsam parametresine dahil edilmez.
Dinamik onay ile izin istemeyi durdurmak için:
- Microsoft Graph'ı kullanma: İstenmeyen Microsoft Graph temsilci izinlerini 'scopes' parametresinden kaldırın. Bu örnekte, uygulamanız üç temsilci izni istemektedir:
Analytics.Read
User.Read
veApplication.Read
. Temsilci izinleriAnalytics.Read
veApplication.Read
artık bu uygulama için gerekli değildir. Yalnızca gerektirirUser.Read
.
İstek aşağıdaki örneğe benzer olmalıdır:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=User.Read
MSAL.js kullanarak: 'kapsamlar'daki istenmeyen Microsoft Graph temsilci izinlerini kaldırın.
const Request = { scopes: ["openid", "profile"], loginHint: "example@domain.net" }; myMSALObj.ssoSilent(Request) .then((response) => { // your logic }).catch(error => { console.error("Silent Error: " + error); if (error instanceof msal.InteractionRequiredAuthError) { myMSALObj.loginRedirect(loginRequest); } });
Kurumsal uygulama için kaldırılan izinler için onayı iptal etme
İzinler uygulama kaydından kaldırıldıktan sonra, kiracıdaki bir yöneticinin kuruluşunuzun verilerini korumak için onayı iptal etmesi de gerekir. Kaldırılan izin yönetici onayı gerektirdiğinde, gerekli eylemler uygulama türüne göre değişir:
- Ev kiracısında tek kiracılı uygulama ve çok kiracılı uygulama: Tek bir kiracı uygulaması için, uygulamaya zaten verilmiş izinleri iptal etmek için kiracının yöneticisine başvurun. Çok kiracılı bir uygulama için, kurumsal uygulamaya verilen izinleri iptal etmek için uygulamanızın örneklerinin bulunduğu tüm kiracıların yöneticilerine başvurun. Kaldırılan izinlere onay iptal etmek, uygulamanın kaldırılan izin üzerinden erişimi korumamasını sağlar.
- Müşterilerin kiracılarındaki çok kiracılı uygulamalar: Duyurular, bloglar ve diğer iletişim kanalları aracılığıyla izinleri iptal etmek için müşterilerinizle iletişim kurduğunuzdan emin olun.
Hem tek kiracılı hem de çok kiracılı uygulamalar için, kullanıcı onayının etkinleştirildiği kiracılardaki yönetici olmayan kullanıcılar, daha önce verdikleri izinlerin onayını iptal etmek için MyApps portalını kullanabilir. Son kullanıcıların MyApps portalında izinleri nasıl iptal edebildiği hakkında daha fazla bilgi için bkz . Son kullanıcı onayını iptal etme.
İzin değiştirme
Daha az ayrıcalıklı bir izin yeterli olduğunda yüksek ayrıcalıklı bir izni değiştirmeniz gerekir.
İzinlerin değiştirilmesi, hassas verileri açığa çıkarma veya güvenliği tehlikeye atma riskini azaltabilir ve böylece kullanıcı deneyimini ve güvenini geliştirebilir. Uygulamanız gibi Directory.ReadWrite.All
yüksek ayrıcalıklı bir izin kullanıyorsa, gibi User.ReadWrite.All
daha az ayrıcalıklı bir iznin uygulamanızın işlevselliği için yeterli olup olmadığını göz önünde bulundurmanız gerekir.
Not
Bir uygulamanın statik onay için istenen izinlerini değiştirdiğinizde müşterinin yeniden mutabakata sahip olması gerekir. Yeniden mutabakat eylemi, daha önce verilen tüm izinleri iptal eder ve yeni izinler verir. Bir uygulamanın dinamik onay için istenen izinlerini değiştirdiğinizde, önceden verilen izinler iptal edilmez. Müşterinin izinleri el ile iptal etmek zorunda.
Bir izni değiştirmek için gereksiz izni kaldırmanız ve alternatif izni eklemeniz gerekir. Adımlar, bu makalenin Kullanılmayan izinler istemeyi durdurma ve izin ekleme bölümlerinde açıklananlara benzer.