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ü
Authenticated
bağ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 Authenticated
ayarlamak 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 Anonymous
X-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-PRINCIPAL
yalnı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'