Yetkilendirmeyle ilgili temel bilgiler

Kaynaklara veya işlevlere erişimin değerlendirilmesini sağlayan izinleri ayarlamak için yetkilendirme (bazen AuthZ olarak kısaltılır) kullanılır. Buna karşılık, kimlik doğrulaması (bazen AuthN olarak kısaltılır), kullanıcı veya hizmet gibi bir varlığın gerçekten de iddia ettikleri kişi olduğunu kanıtlamaya odaklanır.

Yetkilendirme, bir varlığın erişmesine izin verilen işlevleri, kaynakları veya verileri belirtmeyi içerebilir. Yetkilendirme ayrıca verilerle neler yapilabileceğini de belirtir. Bu yetkilendirme eylemi genellikle erişim denetimi olarak adlandırılır.

Kimlik doğrulaması ve yetkilendirme yalnızca kullanıcılarla sınırlı olmayan kavramlardır. Hizmetler veya daemon uygulamaları genellikle belirli bir kullanıcı adına değil, kaynaklara kendi başlarına istekte bulunmak için oluşturulur. Bu makalede, bir kullanıcıya veya uygulamaya başvurmak için "varlık" terimi kullanılır.

Yetkilendirme yaklaşımları

Yetkilendirmeyi işlemek için çeşitli yaygın yaklaşımlar vardır. Rol tabanlı erişim denetimi şu anda Microsoft kimlik platformu kullanan en yaygın yaklaşımdır.

Yetkilendirme olarak kimlik doğrulaması

Muhtemelen en basit yetkilendirme biçimi, istekte bulunan varlığın kimliğinin doğrulanıp doğrulanmamış olduğuna bağlı olarak erişim vermek veya reddetmektir. İstek sahibi iddia ettikleri kişi olduğunu kanıtlayabilirse korumalı kaynaklara veya işlevlere erişebilir.

Erişim denetim listeleri

Erişim denetim listelerini (ACL' ler) kullanarak yetkilendirme, bir kaynağa veya işlevselliğe erişimi olan veya olmayan belirli varlıkların açık listelerinin tutulmasını içerir. ACL'ler yetkilendirme olarak kimlik doğrulaması üzerinde daha ince denetim sunar, ancak varlık sayısı arttıkça yönetilmesi zorlaşır.

Rol tabanlı erişim denetimi

Rol tabanlı erişim denetimi (RBAC), uygulamalarda yetkilendirmeyi zorlamak için muhtemelen en yaygın yaklaşımdır. RBAC kullanılırken roller, bir varlığın gerçekleştirebileceği etkinlik türlerini açıklamak için tanımlanır. Uygulama geliştiricisi, tek tek varlıklar yerine rollere erişim verir. Daha sonra bir yönetici, hangilerinin hangi kaynaklara ve işlevlere erişimi olduğunu denetlemek için farklı varlıklara roller atayabilir.

Gelişmiş RBAC uygulamalarında roller, bir iznin gerçekleştirilebilecek ayrıntılı bir eylemi veya etkinliği açıkladığı izin koleksiyonlarıyla eşlenebilir. Roller daha sonra izin birleşimleri olarak yapılandırılır. Varlığın atandığı çeşitli rollere verilen izinleri birleştirerek bir varlık için genel izin kümesini hesap edin. Bu yaklaşımın iyi bir örneği, Azure aboneliklerindeki kaynaklara erişimi yöneten RBAC uygulamasıdır.

Not

Uygulama RBAC'leri Azure RBAC ve Microsoft Entra RBAC'den farklıdır. Hem Azure özel rolleri hem de yerleşik roller Azure RBAC'nin bir parçasıdır ve bu da Azure kaynaklarının yönetilmesine yardımcı olur. Microsoft Entra RBAC, Microsoft Entra kaynaklarının yönetimine izin verir.

Öznitelik tabanlı erişim denetimi

Öznitelik tabanlı erişim denetimi (ABAC), daha ayrıntılı bir erişim denetimi mekanizmasıdır. Bu yaklaşımda, varlığa, erişilen kaynaklara ve geçerli ortama kurallar uygulanır. Kurallar kaynaklara ve işlevlere erişim düzeyini belirler. Örnek olarak yalnızca yönetici olan kullanıcıların çalışma günlerinde 09:00 - 17:00 saatleri arasında "yalnızca çalışma saatlerinde yöneticiler" meta veri etiketiyle tanımlanan dosyalara erişmesine izin verilebilir. Bu durumda erişim, kullanıcının özniteliği (yönetici olarak durum), kaynağın özniteliği (dosyadaki meta veri etiketi) ve bir ortam özniteliği (geçerli saat) incelenerek belirlenir.

ABAC'nin avantajlarından biri, çok sayıda belirli rol ve RBAC ataması oluşturmaya gerek kalmadan kural ve koşul değerlendirmeleri aracılığıyla daha ayrıntılı ve dinamik erişim denetimine ulaşılabilmesidir.

Microsoft Entra ID ile ABAC elde etmek için kullanılan yöntemlerden biri dinamik grupları kullanmaktır. Dinamik gruplar, yöneticilerin istenen değerlere sahip belirli kullanıcı özniteliklerine göre gruplara dinamik olarak kullanıcı atamasına olanak tanır. Örneğin, Yazar iş unvanına sahip tüm kullanıcıların Yazarlar grubuna dinamik olarak atandığı bir Yazarlar grubu oluşturulabilir. Dinamik gruplar, rolleri gruplara eşleyip kullanıcıları gruplara dinamik olarak atadığınız yetkilendirme için RBAC ile birlikte kullanılabilir.

Azure ABAC , bugün kullanılabilen bir ABAC çözümü örneğidir. Azure ABAC, belirli eylemler bağlamındaki öznitelikleri temel alan rol atama koşulları ekleyerek Azure RBAC üzerinde derleme yapar.

Yetkilendirme uygulama

Yetkilendirme mantığı genellikle erişim denetiminin gerekli olduğu uygulamalar veya çözümler içinde uygulanır. Çoğu durumda, uygulama geliştirme platformları yetkilendirmenin uygulanmasını basitleştiren ara yazılım veya diğer API çözümleri sunar. Örnek olarak ASP.NET'da AuthorizeAttribute veya Angular'da Yol Korumaları kullanımı verilebilir.

Kimliği doğrulanmış varlık hakkındaki bilgileri kullanan yetkilendirme yaklaşımları için, uygulama kimlik doğrulaması sırasında değiştirilen bilgileri değerlendirir. Örneğin, bir güvenlik belirteci içinde sağlanan bilgileri kullanarak. Yetkilendirme için belirteçlerden alınan bilgileri kullanmayı planlıyorsanız, talepleri doğrulama yoluyla uygulamaların güvenliğini düzgün bir şekilde sağlamaya yönelik bu kılavuzu izlemenizi öneririz. içinde Bir güvenlik belirtecinde bulunmayan bilgiler için, bir uygulama dış kaynaklara ek çağrılar yapabilir.

Geliştiricilerin yetkilendirme mantığını tamamen kendi uygulamalarına eklemesi kesinlikle gerekli değildir. Bunun yerine, yetkilendirme uygulamasını ve yönetimini merkezileştirmek için ayrılmış yetkilendirme hizmetleri kullanılabilir.

Sonraki adımlar