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:

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:

  1. Yukarıdaki Uygulama rollerini tanımlama bölümünde açıklandığı gibi uygulama rolleri ve atamalarıyla bir uygulama kaydı oluşturun.

  2. 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ı veya MultiOrg ç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 
      
  3. 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.

  4. Rol denetimleri ekleme bölümünde açıklandığı gibi denetleyici eylemlerine rol denetimleri ekleyin.

  5. 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:

  1. Yukarıdaki Uygulama rollerini tanımlama bölümünde açıklandığı gibi uygulama rolleri ve atamalarıyla bir uygulama kaydı oluşturun.

  2. 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ı veya MultiOrg ç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 
      
  3. 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.

  4. Rol denetimleri ekleme bölümünde açıklandığı gibi denetleyici eylemlerine rol denetimleri ekleyin.

  5. 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