Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu bölümde açıklanan Veri API oluşturucusu 2.0 işlevselliği şu anda önizleme aşamasındadır ve genel kullanılabilirlik öncesinde değişebilir. Daha fazla bilgi için bkz. Sürüm 2.0'daki yenilikler.
Rol devralma, izinleri daha geniş bir rol üzerinde bir kez tanımlamanıza ve bu erişimi otomatik olarak devralan daha belirli rollere sahip olmanıza olanak tanır. Rol devralma olmadan, her varlıkta her rol için aynı izin bloğunu tekrarlamanız gerekir. Rol devralma ile, erişimi anonymous bir kez tanımlayın ve daha geniş her rol aynı erişimi alır.
Devralma zinciri
Devralma zinciri en az ayrıcalıklıdan en ayrıcalıklıya akar:
named-role → authenticated → anonymous
| Rol | Şuradan türetilir | Notlar |
|---|---|---|
Adlandırılmış rol (örneğin, editor) |
authenticated |
anonymous yapılandırılmamışsa authenticated ya da |
authenticated |
anonymous |
Açık authenticated bir blok olmadığında uygulanır |
anonymous |
(yok) | Zincirin tabanı; geri dönüş yok |
Zincir şu anlama gelir:
-
Adlandırılmış rolün izin bloğu yoksa DAB bir
authenticatedbloğu arar. Yoksaanonymousöğesine geri döner. - İzin bloğu yoksa
authenticated, DAB bloğunuanonymouskullanır. - İstek,
anonymousizin bloğu yoksa403 Forbiddenile reddedilir.
Devralma nasıl çözülür?
DAB bir isteği değerlendirdiğinde etkili rolü belirler ve ardından devralma zincirini takip ederek bir izin bloğu bulur.
- DAB istekteki etkili rolü tanımlar (üst bilgi, belirteç talepleri veya varsayılanlar aracılığıyla
X-MS-API-ROLE). - DAB, etkin
entities.<name>.permissionsrolle eşleşen açık bir izin bloğu arar. - Eşleşen bir blok yoksa, DAB zincirinde yukarı doğru ilerler:
authenticated→anonymous. - Bulunan ilk eşleşen blok, istek için izinleri sağlar.
- Zincirdeki hiçbir blok herhangi bir rolle eşleşmiyorsa, DAB
403 Forbiddendöndürür.
Uyarı
DAB, izinleri istek başına tam olarak bir etkin rol bağlamında değerlendirir. Rol devralma, birden çok roldeki izinleri birleştirmez.
Örnekler
En düşük yapılandırma: Tüm roller için tek izin
read üzerinde bir anonymous izni tanımlayın. Her rol (authenticated ve adlandırılmış herhangi bir rol) bu erişimi devralır.
{
"entities": {
"Book": {
"source": "dbo.books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
Bu yapılandırma için geçerli izinler:
Entity: Book
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles | Inherit from: anonymous
Katmanlı yapılandırma: rol başına farklı erişim
Rol başına farklı erişim düzeylerine ihtiyacınız olduğunda, her bir düzeyi açıkça tanımlayın. Yapılandırmadığınız rolleri yalnızca miras üstlenir.
{
"entities": {
"Order": {
"source": "dbo.orders",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] },
{ "role": "authenticated", "actions": [ "read", "create" ] },
{ "role": "admin", "actions": [ "*" ] }
]
}
}
}
Bu yapılandırma için geçerli izinler:
Entity: Order
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read, Create
Role: admin | Actions: Create, Read, Update, Delete
Unconfigured roles | Inherit from: authenticated
Haricindeki herhangi bir adlandırılmış rol admin—örneğin, viewer veya support—authenticated devralır ve read ve create erişim alır.
Devralma yok: tamamen engellendi
anonymous izin bloğu yoksa ve zincirdeki diğer hiçbir rolün de izin bloğu yoksa, bu varlığa yapılan her istek reddedilir.
{
"entities": {
"AuditLog": {
"source": "dbo.audit_log",
"permissions": [
{ "role": "admin", "actions": [ "read" ] }
]
}
}
}
Bu yapılandırmada yalnızca admin, AuditLog öğesine erişebilir.
authenticated ve anonymous devralınacak bir engel bulunmadığından, DAB 403 Forbidden bu rollerden gelen istekleri reddeder.
Önemli
DAB, authenticated veya adlandırılmış roller bir varlıkta yapılandırıldığında, fakat Unauthenticated sağlayıcı etkin durumdaysa başlangıçta bir uyarı yayar. Etkin olduğunda Unauthenticated , bu roller hiçbir zaman etkinleştirilmez. Daha fazla bilgi için bkz. Kimliği Doğrulanmamış sağlayıcıyı yapılandırma.
Etkin izinleri görüntüleme
Çözümlenmiş izinleri her varlık için görüntülemek ve hangi rollerin hangilerinden devralındığını görmek için dab configure --show-effective-permissions kullanın. Bu komut, motoru çalıştırmadan devralmanın beklendiği gibi çalıştığını doğrulamanın en hızlı yoludur.
dab configure --show-effective-permissions
Ayrıca belirli bir yapılandırma dosyasını hedefleyebilirsiniz:
dab configure --show-effective-permissions --config my-config.json
Örnek çıkış:
Entity: Book
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles inherit from: anonymous
Entity: Order
Role: admin | Actions: Create, Read, Update, Delete
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles inherit from: authenticated
Tam seçenekler için bkz --show-effective-permissions. .
Devralma ve açık izinler karşılaştırması
| Scenario | Tavsiye |
|---|---|
| Tüm roller aynı erişime sahip olmalıdır | Üzerinde anonymousbir kez tanımla ; tüm rollerin devralmasına izin ver |
| Kimliği doğrulanmış kullanıcıların anonimden daha fazla erişime ihtiyacı var | Tanımlama anonymous okuma, oluşturma/güncelleştirme authenticated ekleme |
Tanımlı bir rolün authenticated'den daha geniş erişime ihtiyacı var |
Adlandırılmış rolü açıkça tanımlayın; diğerleri authenticated'den devralır. |
Adlandırılmış bir rol daha az erişim gerektirir authenticated |
Azaltılmış eylemlerle adlandırılmış rolü açıkça tanımlayın |
| Bir varlığın tamamen özel olması gerekir | Yalnızca belirli adlandırılmış rolü verin; authenticated ve anonymous'i tanımsız olarak bırakın. |