Uygulama geliştiricileri için rol tabanlı erişim denetimi
Rol tabanlı erişim denetimi (RBAC), belirli kullanıcıların veya grupların kaynaklara erişmek ve kaynakları yönetmek için belirli izinlere sahip olmasını sağlar. Uygulama RBAC'leri Azure rol tabanlı erişim denetiminden ve Microsoft Entra rol tabanlı erişim denetiminden farklıdır. Azure özel rolleri ve yerleşik roller, Azure kaynaklarını yönetmeye yardımcı olmak için kullanılan Azure RBAC'nin bir parçasıdır. Microsoft Entra RBAC, Microsoft Entra kaynaklarını yönetmek için kullanılır. Bu makalede uygulamaya özgü RBAC açıklanmaktadır. Uygulamaya özgü RBAC uygulama hakkında bilgi için bkz . Uygulamanıza uygulama rolleri ekleme ve bunları belirteçte alma.
Rol tanımları
RBAC, uygulamalarda yetkilendirmeyi zorlamak için popüler bir mekanizmadır. Bir kuruluş RBAC kullandığında, uygulama geliştiricisi tek tek kullanıcıları veya grupları yetkilendirmek yerine rolleri tanımlar. Ardından bir yönetici, içeriğe ve işlevlere kimlerin erişebileceğini denetlemek için farklı kullanıcılara ve gruplara roller atayabilir.
RBAC, bir uygulama geliştiricinin kaynakları ve kullanımlarını yönetmesine yardımcı olur. RBAC ayrıca bir uygulama geliştiricisinin kullanıcıların erişebileceği bir uygulamanın alanlarını denetlemesine de olanak tanır. Yönetici istrator'lar,Kullanıcı ataması gerekli özelliği. Geliştiricilerin uygulama içindeki belirli kullanıcıları ve kullanıcıların uygulama içinde yapabileceklerini hesaba eklemesi gerekir.
Bir uygulama geliştiricisi önce Microsoft Entra yönetim merkezindeki uygulamanın kayıt bölümünde bir rol tanımı oluşturur. Rol tanımı, bu role atanan kullanıcılar için döndürülen bir değer içerir. Daha sonra bir geliştirici bu değeri kullanarak bu kullanıcıların uygulamada neler yapabileceğini veya yapamediğini belirlemek üzere uygulama mantığını uygulayabilir.
RBAC seçenekleri
Bir uygulamaya rol tabanlı erişim denetimi yetkilendirmesi dahil edildiğinde aşağıdaki yönergeler uygulanmalıdır:
- Uygulamanın yetkilendirme gereksinimleri için gereken rolleri tanımlayın.
- Kimliği doğrulanmış kullanıcılar için uygun rolleri uygulayın, depolayın ve alın.
- Geçerli kullanıcıya atanan rollere göre uygulama davranışını belirleyin.
Roller tanımlandıktan sonra, Microsoft kimlik platformu kimliği doğrulanmış kullanıcıların rol bilgilerini uygulamak, depolamak ve almak için kullanılabilecek birkaç farklı çözümü destekler. Bu çözümler uygulama rollerini, Microsoft Entra gruplarını ve kullanıcı rolü bilgileri için özel veri depolarının kullanımını içerir.
Geliştiriciler rol atamalarının uygulama izinleri olarak yorumlanması için kendi uygulamalarını sağlama esnekliğine sahiptir. İzinlerin bu yorumu, uygulamaların veya ilgili kitaplıkların platformu tarafından sağlanan ara yazılımları veya diğer seçenekleri kullanmayı içerebilir. Uygulamalar genellikle kullanıcı rolü bilgilerini talep olarak alır ve ardından bu taleplere göre kullanıcı izinlerine karar verir.
Uygulama rolleri
Microsoft Entra Id, uygulamanız için uygulama rolleri tanımlamanıza ve bu rolleri kullanıcılara ve diğer uygulamalara atamanıza olanak tanır. Bir kullanıcıya veya uygulamaya atadığınız roller, uygulamanızdaki kaynaklara ve işlemlere erişim düzeylerini tanımlar.
Microsoft Entra ID kimliği kimliği doğrulanmış bir kullanıcı veya uygulama için erişim belirteci verildiğinde, erişim belirtecinin roles
talebine varlığı (kullanıcı veya uygulama) atadığınız rollerin adlarını içerir. Bir istekte bu erişim belirtecini alan bir web API'sine benzer bir uygulama, talepteki roles
değerlere göre yetkilendirme kararları alabilir.
Gruplar
Geliştiriciler uygulamalarına RBAC uygulamak için Microsoft Entra gruplarını da kullanabilir ve burada belirli gruplardaki kullanıcının üyelikleri rol üyelikleri olarak yorumlanır. Bir kuruluş grupları kullandığında, belirteç bir grup talebi içerir. Grup talebi, kiracıdaki kullanıcının atanan tüm gruplarının tanımlayıcılarını belirtir.
Önemli
Gruplarla çalışırken geliştiricilerin fazla kullanım talebi kavramının farkında olması gerekir. Varsayılan olarak, bir kullanıcı fazla kullanım sınırına (SAML belirteçleri için 150, JWT belirteçleri için 200, örtük akışı kullanıyorsa 6) üyeyse, Microsoft Entra Kimliği belirteçte grup talebi yaymaz. Bunun yerine belirteçte, belirtecin tüketicisinin kullanıcının grup üyeliklerini almak için Microsoft Graph API'sini sorgulaması gerektiğini belirten bir "fazla kullanım talebi" içerir. Fazla kullanım talepleri ile çalışma hakkında daha fazla bilgi için bkz . Erişim belirteçlerindeki talepler. Yalnızca bir uygulamaya atanan grupları yaymak mümkündür, ancak grup tabanlı atama için Microsoft Entra ID P1 veya P2 sürümü gerekir.
Özel veri deposu
Uygulama rolleri ve grupları, kullanıcı atamalarıyla ilgili bilgileri Microsoft Entra dizininde depolar. Geliştiricilerin kullanabilecekleri kullanıcı rolü bilgilerini yönetmeye yönelik bir diğer seçenek de bilgileri özel veri deposundaki dizinin dışında tutmaktır. Örneğin, SQL veritabanında, Azure Tablo depolama alanında veya Tablo için Azure Cosmos DB'de.
Özel depolamanın kullanılması, geliştiricilerin kullanıcılara rol atama ve bunları nasıl temsil etme konusunda ek özelleştirme ve denetim sahibi olmasını sağlar. Ancak ek esneklik daha fazla sorumluluk da getirir. Örneğin, şu anda bu bilgileri Microsoft Entra Id'den döndürülen belirteçlere dahil etmek için kullanılabilecek bir mekanizma yoktur. Rol bilgileri özel bir veri deposunda tutulduysa uygulamaların rolleri alması gerekir. Rollerin alınması genellikle uygulamayı geliştirmek için kullanılan platform için kullanılabilir ara yazılımda tanımlanan genişletilebilirlik noktaları kullanılarak gerçekleştirilir. Geliştiriciler özel veri deposunun güvenliğini düzgün bir şekilde sağlamakla sorumludur.
Azure AD B2C Özel ilkelerini kullanarak özel veri depolarıyla etkileşime geçmek ve belirteç içine özel talepler eklemek mümkündür.
Bir yaklaşım seçin
Genel olarak, uygulama rolleri önerilen çözümdür. Uygulama rolleri en basit programlama modelini sağlar ve RBAC uygulamaları için yapılan bir amaçtır. Ancak, belirli uygulama gereksinimleri farklı bir yaklaşımın daha iyi bir çözüm olacağını gösterebilir.
Geliştiriciler, bir kullanıcının uygulamada oturum açıp açamayacağını veya bir uygulamanın web API'sine erişim belirteci edinip alamayacağını denetlemek için uygulama rollerini kullanabilir. Uygulama rolleri, uygulamalarındaki yetkilendirme parametrelerini açıklamak ve denetlemek istediklerinde geliştiriciler tarafından Microsoft Entra gruplarına göre tercih edilir. Örneğin, hem grup tanımlayıcısı hem de ad farklı olabileceğinden, bir sonraki kiracıda yetkilendirme sonları için grupları kullanan bir uygulama farklı olabilir. Uygulama rollerini kullanan bir uygulama güvende kalır.
Uygulama rolleri veya gruplar yetkilendirme için kullanılabilse de, aralarındaki temel farklar belirli bir senaryo için en iyi çözümü etkileyebilir.
Uygulama Rolleri | Microsoft Entra grupları | Özel Veri Deposu | |
---|---|---|---|
Programlama modeli | En basiti. Bunlar bir uygulamaya özgü olup uygulama kaydında tanımlanır. Uygulamayla birlikte hareket ederler. | Daha karmaşık. Grup tanımlayıcıları kiracılar arasında farklılık gösterir ve fazla kullanım taleplerinin dikkate alınması gerekebilir. Gruplar bir uygulamaya değil, bir Microsoft Entra kiracısına özgü değildir. | En karmaşıkı. Geliştiricilerin rol bilgilerinin hem depolandığı hem de alındığı araçları uygulaması gerekir. |
Rol değerleri Microsoft Entra kiracıları arasında statiktir | Yes | Hayır | Uygulamaya bağlıdır. |
Rol değerleri birden çok uygulamada kullanılabilir | Hayır (Rol yapılandırması her uygulama kaydında yinelenmedikçe.) | Yes | Yes |
Dizinde depolanan bilgiler | Yes | Evet | Hayır |
Bilgiler belirteçler aracılığıyla teslim edilir | Evet (rol talebi) | Evet (Fazla kullanım varsa, grup taleplerinin çalışma zamanında alınması gerekebilir) | Hayır (Özel kod aracılığıyla çalışma zamanında alınır.) |
Ömür | Dizindeki uygulama kaydında bulunur. Uygulama kaydı kaldırıldığında kaldırılır. | Dizinde yaşar. Uygulama kaydı kaldırılsa bile bozulmadan kalın. | Özel veri deposunda bulunur. Uygulama kaydına bağlı değildir. |
Sonraki adımlar
- Azure Kimlik Yönetimi ve erişim denetimi için en iyi güvenlik uygulamaları
- Belirteç taleplerini kullanarak doğru yetkilendirme hakkında bilgi edinmek için bkz . Talepleri doğrulayarak uygulamaların ve API'lerin güvenliğini sağlama