Rol tabanlı erişim denetimi uygulama
Rol tabanlı erişim denetimi (RBAC), kullanıcıların veya grupların kaynaklara erişmek ve kaynakları yönetmek için belirli izinlere sahip olmasını sağlar. Bir kaynağı korumak için RBAC uygulamak genellikle bir web uygulamasını, tek sayfalı bir uygulamayı (SPA) veya API'yi korumayı içerir. Bu koruma uygulamanın veya API'nin tamamı, belirli alanlar ve özellikler veya API yöntemleri için olabilir. Yetkilendirmenin temelleri hakkında daha fazla bilgi için bkz . Yetkilendirme temelleri.
Uygulama geliştiricileri için rol tabanlı erişim denetimi bölümünde açıklandığı gibi, Microsoft kimlik platformu kullanarak RBAC'yi uygulamanın üç yolu vardır:
- Uygulama Rolleri – Gelen uygulama rolü atamalarını yorumlamak için uygulama içindeki mantığı kullanarak bir uygulamada Uygulama Rolleri özelliğini kullanma.
- Gruplar – gelen kimliğin grup atamalarını kullanarak uygulama içindeki mantığı kullanarak grup atamalarını yorumlama.
- Özel Veri Deposu – uygulama içindeki mantığı kullanarak rol atamalarını alın ve yorumlayın.
Tercih edilen yaklaşım, uygulama en kolay olduğu için Uygulama Rollerini kullanmaktır. Bu yaklaşım, Microsoft kimlik platformu kullanan uygulamalar oluştururken kullanılan SDK'lar tarafından doğrudan desteklenir. Bir yaklaşımı seçme hakkında daha fazla bilgi için bkz . Yaklaşım seçme.
Uygulama rollerini tanımlama
Bir uygulama için RBAC uygulamanın ilk adımı, uygulama rollerini tanımlamak ve uygulamaya kullanıcı veya grup atamaktır. Bu işlem, Nasıl yapılır: Uygulamanıza uygulama rolleri ekleme ve bunları belirteçte alma bölümünde özetlenmiştir. Uygulama rollerini tanımladıktan ve kullanıcılara veya gruplara atadıktan sonra, uygulamaya gelen belirteçlerdeki rol atamalarına erişin ve bunlara göre işlem yapın.
ASP.NET Core'da RBAC uygulama
ASP.NET Core, ASP.NET Core web uygulamasına veya web API'sine RBAC eklemeyi destekler. RBAC eklemek, ASP.NET Core Authorize özniteliğiyle rol denetimlerini kullanarak kolay uygulama sağlar. İlke tabanlı rol denetimleri için ASP.NET Core'un desteğini kullanmak da mümkündür.
ASP.NET Core MVC web uygulaması
ASP.NET Core MVC web uygulamasında RBAC uygulamak basittir. Temel olarak, hangi rollerin denetleyicilerdeki belirli denetleyicilere veya eylemlere erişmesine izin verileceğini belirtmek için Authorize özniteliğini kullanmayı içerir. ASP.NET Core MVC uygulamasında RBAC uygulamak için şu adımları izleyin:
Yukarıdaki Uygulama rollerini tanımlama bölümünde açıklandığı gibi uygulama rolleri ve atamalarıyla bir uygulama kaydı oluşturun.
Aşağıdaki adımlardan birini yapın:
dotnet cli kullanarak yeni bir ASP.NET Core MVC web uygulaması projesi oluşturun.
--auth
Tek kiracılı kimlik doğrulaması veyaMultiOrg
çok kiracılı kimlik doğrulaması için bayrağıSingleOrg
,--client-id
uygulama kaydından ise istemciye sahip bayrağı ve--tenant-id
Microsoft Entra kiracısından ise kiracıyla bayrağı belirtin:dotnet new mvc --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>
Microsoft.Identity.Web ve Microsoft.Identity.Web.UI kitaplıklarını mevcut bir ASP.NET Core MVC projesine ekleyin:
dotnet add package Microsoft.Identity.Web dotnet add package Microsoft.Identity.Web.UI
Hızlı Başlangıç: Uygulamaya kimlik doğrulaması eklemek için ASP.NET Core web uygulamasına Microsoft ile oturum açma ekleme başlığı altında belirtilen yönergeleri izleyin.
Rol denetimleri ekleme bölümünde açıklandığı gibi denetleyici eylemlerine rol denetimleri ekleyin.
Korumalı MVC yollarından birine erişmeye çalışarak uygulamayı test edin.
ASP.NET Core web API'si
ASP.NET Core web API'sinde RBAC'nin uygulanması, hangi rollerin denetleyicilerdeki belirli denetleyicilere veya eylemlere erişmesine izin verilmesi gerektiğini belirtmek için Yetkilendir özniteliğini kullanmayı içerir. ASP.NET Core web API'sinde RBAC uygulamak için şu adımları izleyin:
Yukarıdaki Uygulama rollerini tanımlama bölümünde açıklandığı gibi uygulama rolleri ve atamalarıyla bir uygulama kaydı oluşturun.
Aşağıdaki adımlardan birini yapın:
dotnet cli kullanarak yeni bir ASP.NET Core MVC web API'si projesi oluşturun.
--auth
Tek kiracılı kimlik doğrulaması veyaMultiOrg
çok kiracılı kimlik doğrulaması için bayrağıSingleOrg
,--client-id
uygulama kaydından ise istemciye sahip bayrağı ve--tenant-id
Microsoft Entra kiracısından ise kiracıyla bayrağı belirtin:dotnet new webapi --auth SingleOrg --client-id <YOUR-APPLICATION-CLIENT-ID> --tenant-id <TENANT-ID>
Microsoft.Identity.Web ve Swashbuckle.AspNetCore kitaplıklarını mevcut bir ASP.NET Core web API'sine ekleyin:
dotnet add package Microsoft.Identity.Web dotnet add package Swashbuckle.AspNetCore
Hızlı Başlangıç: Uygulamaya kimlik doğrulaması eklemek için ASP.NET Core web uygulamasına Microsoft ile oturum açma ekleme başlığı altında belirtilen yönergeleri izleyin.
Rol denetimleri ekleme bölümünde açıklandığı gibi denetleyici eylemlerine rol denetimleri ekleyin.
api'yi bir istemci uygulamasından çağırın. Bkz . Uçtan uca örnek için Rol Tabanlı Erişim Denetimi uygulamak üzere ASP.NET Core web API'sini çağıran ve Uygulama Rollerini kullanan Angular tek sayfalı uygulama.
Diğer platformlarda RBAC uygulama
Angular SPA
Angular SPA'da RBAC'nin uygulanması, uygulamanın içinde yer alan Angular yollarına erişimi yetkilendirmek için Angular için Microsoft Kimlik Doğrulama Kitaplığı'nın kullanılmasını içerir. MSAL Angular v3 Örneklerinde bir örnek gösterilmiştir.
Not
İstemci tarafı RBAC uygulamaları, yetkisiz uygulamaların hassas kaynaklara erişmesini önlemek için sunucu tarafı RBAC ile eşleştirilmelidir.
Express uygulamasıyla Node.js
Hızlı uygulama ile bir Node.js RBAC uygulamak, uygulamanın içinde yer alan Express yollarına erişimi yetkilendirmek için MSAL kullanımını içerir. Node.js web uygulamanızın oturum açma kullanıcılarını etkinleştirme ve Microsoft kimlik platformu örneğiyle API'leri çağırma bölümünde bir örnek gösterilmiştir.
Sonraki adımlar
- Microsoft kimlik platformu izinler ve onay hakkında daha fazla bilgi edinin.
- Uygulama geliştiricileri için rol tabanlı erişim denetimi hakkında daha fazla bilgi edinin.