Aracılığıyla paylaş


Veri API'sinde Yerel Kimlik Doğrulaması oluşturucusu

Veri API oluşturucusu'nu yerel olarak kullanarak bir çözüm geliştirirken veya Veri API oluşturucusu'nu şirket içinde çalıştırırken, belirli bir rol veya taleple bir isteğin benzetimini yaparak yapılandırılmış kimlik doğrulama ve yetkilendirme seçeneklerini test etmeniz gerekir.

Kimlik doğrulama sağlayıcısı yapılandırmadan kimliği doğrulanmış bir isteğin benzetimini yapmak için (örneğin, Microsoft Entra ID), veya StaticWebApps kimlik doğrulama sağlayıcılarını kullanabilirsinizSimulator:

Sağlayıcıyı Simulator kullanma

Simulator , Data API oluşturucu altyapısına tüm istekleri kimlik doğrulaması yapılmış olarak kabul etme talimatı veren yapılandırılabilir bir kimlik doğrulama sağlayıcısıdır.

  • En azından, tüm istekler sistem rolü Authenticatedbağlamında değerlendirilir.
  • İstenirse, istek Http üst bilgisinde belirtilen X-MS-API-ROLE herhangi bir rol bağlamında değerlendirilir.

Not

İstenen rol yerine getirilirken, sağlayıcıyla Simulator kimliği doğrulanmış kullanıcı için özel talepler ayarlanamadığından veritabanı ilkelerini tanımlayan yetkilendirme izinleri çalışmaz. Veritabanı yetkilendirme ilkelerini test etmek için sağlayıcıyı StaticWebApps kullanma bölümüne geçin.

1. Çalışma zamanı yapılandırma kimlik doğrulama sağlayıcısını güncelleştirme

Yapılandırma dosyasında kimlik doğrulama sağlayıcısını ve development modunu kullandığınızdan Simulator emin olun. Şu örnek host yapılandırma bölümüne bakın:

"host": {
  "mode": "development",
  "authentication": {
    "provider": "Simulator"
  }
}

2. İsteğin rol bağlamını belirtin

Simulator Veri API'sinin kimlik doğrulama sağlayıcısı olarak rol bağlamını sistem rolüne Authenticatedayarlamak için özel üst bilgi gerekmez:

curl --request GET \
  --url http://localhost:5000/api/books \

Rol bağlamını sistem rolü de dahil olmak üzere başka bir role AnonymousX-MS-API-ROLE ayarlamak için üst bilgi istenen role dahil edilmelidir:

curl --request GET \
  --url http://localhost:5000/api/books \
  --header 'X-MS-API-ROLE: author' \

Sağlayıcıyı StaticWebApps kullanma

Kimlik doğrulama sağlayıcısı, StaticWebApps Veri API'sinin oluşturucusunun yalnızca Static Web Apps bir ortamda çalışırken mevcut olan bir HTTP üst bilgileri kümesini aramasını emrediyor. İstemci, kimliği doğrulanmış bir kullanıcının benzetimini yapmak için yerel olarak çalıştırılırken bu HTTP üst bilgilerini ayarlar. Buna rol üyeliği veya özel talepler de dahildir.

Not

http üst bilgisinin istemci tarafından sağlanan örnekleri, X-MS-CLIENT-PRINCIPALyalnızca üretim Azure Static Web Apps ortamları bu üst bilginin istemci tarafından sağlanan tüm örneklerini bıraktığından yerel olarak geliştirirken çalışır.

Yapılandırma dosyasında kimlik doğrulama sağlayıcısını kullandığınızdan StaticWebApps emin olun. Şu örnek host yapılandırma bölümüne bakın:

"host": {
  "mode": "development",
  "authentication": {
    "provider": "StaticWebApps"
  }
}

1. Oluşturulan X-MS-CLIENT-PRINCIPAL bir üst bilgi sağlayan istekler gönderme

Veri API oluşturucusu yerel olarak çalıştırıldıktan ve kimlik doğrulama sağlayıcısını kullanacak StaticWebApps şekilde yapılandırıldıktan sonra, aşağıdaki şablonu kullanarak el ile bir istemci asıl nesnesi oluşturabilirsiniz:

{  
  "identityProvider": "test",
  "userId": "12345",
  "userDetails": "john@contoso.com",
  "userRoles": ["author", "editor"]
}

Statik Web Uygulamasının kimliği doğrulanmış kullanıcı meta verileri aşağıdaki özelliklere sahiptir:

Özellik Açıklama
identityProvider Herhangi bir dize değeri.
userId Kullanıcı için benzersiz bir tanımlayıcı.
userDetails Kullanıcının kullanıcı adı veya e-posta adresi.
userRoles Kullanıcının atanan rollerinden oluşan bir dizi.

Not

Static Web Apps belgelerinde belirtildiği gibi üst X-MS-CLIENT-PRINCIPAL bilgi diziyi claims içermez.

Üst bilgiyle X-MS-CLIENT-PRINCIPAL geçirilebilmesi için JSON yükünün Base64 kodlanmış olması gerekir. Bunu yapmak için herhangi bir çevrimiçi veya çevrimdışı aracı kullanabilirsiniz. Bu tür araçlardan biri DevToys'tır. Daha önce başvurulan JSON'yi temsil eden base64 kodlu örnek yük:

eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9

Aşağıdaki cURL isteği, rol bağlamında kullanılabilir Book varlık kayıtlarının listesini alan kimliği doğrulanmış bir kullanıcının benzetimini author yapar:

curl --request GET \
  --url http://localhost:5000/api/books \
  --header 'X-MS-API-ROLE: author' \
  --header 'X-MS-CLIENT-PRINCIPAL: eyAgCiAgImlkZW50aXR5UHJvdmlkZXIiOiAidGVzdCIsCiAgInVzZXJJZCI6ICIxMjM0NSIsCiAgInVzZXJEZXRhaWxzIjogImpvaG5AY29udG9zby5jb20iLAogICJ1c2VyUm9sZXMiOiBbImF1dGhvciIsICJlZGl0b3IiXQp9'