Sağlayıcılar ve roller için erişimi yapılandırma
Kullanıcı kimlik doğrulaması uygulandığında, alışveriş listesi web uygulamanızın oturum açmamış kullanıcılar için bazı sayfalara erişimi kısıtlamak ve yalnızca belirli sağlayıcılar aracılığıyla oturum açma izni vermek için bir yönteme ihtiyacı vardır.
Web uygulamamıza kullanıcı erişiminde ince ayar yapmak için Azure Static Web Apps'te yönlendirme yapılandırmasını ve rollerini inceleyeceğiz.
Azure Static Web Apps için yapılandırma dosyası
Azure Static Web Apps yapılandırması, aşağıdaki ayarları denetleyen dosyada staticwebapp.config.json
tanımlanır:
- Yönlendirme
- Kimlik Doğrulaması
- Yetkilendirme
- Geri dönüş kuralları
- HTTP yanıt geçersiz kılmaları
- Genel HTTP üst bilgi tanımları
- Özel MIME türleri
için staticwebapp.config.json
önerilen konum, dağıtım sırasında seçtiğimiz ayar olarak app_location
klasör kümesindedir. Ancak, dosya uygulama kaynak kodu klasörünüzdeki herhangi bir konuma yerleştirilebilir.
Kullanım örneğimizde istediğimizi elde etmek için yönlendirme yapılandırmasını inceleyeceğiz.
Kimlik doğrulama sağlayıcılarını kısıtlama
Önceki bir bölümde tüm kimlik doğrulama sağlayıcılarının varsayılan olarak etkinleştirildiğini görmüştük. Yapılandırmaya yönlendirme kuralları ekleyerek bunu değiştirebiliriz.
Örneğin, GitHub sağlayıcısı aracılığıyla oturum açmayı devre dışı bırakmak için, dosyaya staticwebapp.config.json
bunun gibi bir yönlendirme kuralı ekleyebilirsiniz.
{
"routes": [
{
"route": "/.auth/login/github",
"statusCode": 404
}
]
}
Kullanıcıların erişememeleri için GitHub sağlayıcısında kimlik doğrulaması yapmak için kullanılan yolu /.auth/login/github
bir 404
(bulunamadı) hatası döndürmeye zorlarız. Kullanmak istemediğiniz tüm sağlayıcıları devre dışı bırakmak istediğimiz sayıda yol kuralı ekleyebilirsiniz.
Rollerle yolların güvenliğini sağlama
Rotalara varsayılan olarak herhangi bir kısıtlama olmadan herkes erişebilir. Bir kuralın allowedRoles
dizisine bir veya daha fazla rol adı ekleyerek yolların güvenliğini sağlayabilirsiniz. Varsayılan olarak, her kullanıcı yerleşik anonymous
role aittir ve oturum açan tüm kullanıcılar rolün authenticated
üyesidir.
Bu, bir yolu yalnızca kimliği doğrulanmış kullanıcılarla kısıtlamak için yerleşik authenticated
rolü diziye allowedRoles
ekleyebileceğiniz anlamına gelir.
{
"routes": [
{
"route": "/profile",
"allowedRoles": ["authenticated"]
}
]
}
Bu yapılandırmada, kimliği doğrulanmamış bir kullanıcı yola erişmeye /profile
çalışırsa bir hata 401
(yetkisiz) döndürülür.
Ayrıca, aşağıdaki gibi belirli bir yol için belirli HTTP yöntemlerini kısıtlayabilirsiniz:
{
"routes": [
{
"route": "/profile",
"methods": ["PUT", "POST", "DELETE"],
"allowedRoles": ["authenticated"]
}
]
}
Bu örnekte, tüm kullanıcılar rotadaki yöntemine GET
erişebilir, ancak yalnızca kimliği doğrulanmış kullanıcılar veya POST
DELETE
kullanabilirPUT
./profile
Joker karakter kullanma
Temel deseni izleyen tüm yolları eşleştirmek için yolun sonunda joker karakter kullanabilirsiniz. Örneğin, ile başlayan tüm URL'leri kimliği doğrulanmış kullanıcılarla /api
sınırlamak için şunları yazabilirsiniz:
{
"routes": [
{
"route": "/api/*",
"allowedRoles": ["authenticated"]
}
]
}
Sonraki adımlar
Ardından uygulamamızda erişim kısıtlamaları uygulayacağız.