Kimlik doğrulaması ve Azure Static Web Apps

Azure Static Web Apps kolaylaştırılmış bir kimlik doğrulama deneyimi sağlar. Varsayılan olarak, önceden yapılandırılmış bir dizi sağlayıcıya veya özel sağlayıcı kaydetme seçeneğine erişebilirsiniz.

  • Herhangi bir kullanıcı etkin bir sağlayıcı ile kimlik doğrulamasına sahip olabilir.
  • Oturum açtıktan sonra kullanıcılar varsayılan olarak ve anonymous authenticated rollerine aittir.
  • Yetkili kullanıcılar, staticwebapp.config.jsondosyasında tanımlanan kurallara göre kısıtlanmış yollara erişim elde ediyor.
  • Kullanıcılara yerleşik davet sistemi kullanılarak özel roller atanır.
  • Bir API işlevi tarafından oturum açmada kullanıcılara program aracılığıyla özel roller atanabilir.
  • Tüm kimlik doğrulama sağlayıcıları varsayılan olarak etkindir.
    • Bir kimlik doğrulama sağlayıcısını kısıtlamak için, özel bir yol kuralıyla erişimi engelin.
  • Önceden yapılandırılmış sağlayıcılar şunlardır:
    • Azure Active Directory
    • GitHub
    • Twitter

Kimlik doğrulaması ve yetkilendirme konuları, uygulama yapılandırma kılavuzunda ayrıntılı olarak yer alan yönlendirme kavramlarıyla önemli ölçüde örtüşmektedir.

Roller

Statik bir web uygulamasına erişen her kullanıcı bir veya daha fazla role aittir. Kullanıcıların ait olduğu iki yerleşik rol vardır:

  • anonim: Tüm kullanıcılar otomatik olarak anonim role aittir.
  • kimliği doğrulanmış: Oturum açmış olan tüm kullanıcılar kimliği doğrulanmış role aittir.

Yerleşik rollerin ötesinde, kullanıcılara özel roller atayabilirsiniz ve staticwebapp.config.json dosyasında bu rollere başvurabilirsiniz.

Rol yönetimi

Role kullanıcı ekleme

Bir role kullanıcı eklemek için, kullanıcıları belirli rollerle ilişkilendirmenize olanak sağlayan davetler oluşturabilirsiniz. Roller staticwebapp.config.json dosyasında tanımlanır ve korunur.

Davet oluşturma

Davetler tek tek yetkilendirme sağlayıcılarına özgü olduğu için, hangi sağlayıcıları desteklemesi gerektiğini seçerek uygulamanıza yönelik ihtiyaçları göz önünde bulundurabilirsiniz. Bazı sağlayıcılar kullanıcının e-posta adresini, diğerleri ise yalnızca sitenin kullanıcı adını sağlar.

Yetkilendirme sağlayıcısı Bir kullanıcının
Azure Active Directory e-posta adresi
GitHub username
Twitter username
  1. içinde bir Static Web Apps kaynağına Azure portal.
  2. Ayarlar altında Rol Yönetimi'ne tıklayın.
  3. Davet et düğmesine tıklayın.
  4. Seçenekler listesinden bir Yetkilendirme sağlayıcısı seçin.
  5. Davet ayrıntıları kutusuna alıcının kullanıcı adını veya e-posta adresini ekleyin.
    • Kullanıcı GitHub Twitter için kullanıcı adını girersiniz. Diğer tüm alıcılar için alıcının e-posta adresini girin.
  6. Etki alanı açılan listesinden statik sitenizin etki alanını seçin.
    • Seçerek etki alanı, davette görünen etki alanıdır. Siteniz ile ilişkilendirilmiş bir özel etki alanınız varsa, büyük olasılıkla özel etki alanını seçmek istiyorsanız.
  7. Rol kutusuna rol adlarının virgülle ayrılmış bir listesini ekleyin.
  8. Davetin geçerli kalmasını istediğiniz en fazla saat sayısını girin.
    • Maksimum olası sınır 168 saattir ve bu da 7 gündür.
  9. Oluştur düğmesine tıklayın.
  10. Davet et bağlantı kutusundan bağlantıyı kopyalayın.
  11. Davet bağlantısını uygulamanıza erişim izni vermekte olduğunu kişiye e-posta ile gönderin.

Kullanıcı davette bağlantıya tıkladığında ilgili hesabıyla oturum açması istenir. Oturum başarıyla oturum açtıktan sonra, kullanıcı seçilen rollerle ilişkilendirilr.

Dikkat

Yol kurallarınız, seçtiğiniz kimlik doğrulama sağlayıcılarıyla çakışmaz. Bir sağlayıcının yönlendirme kuralıyla engellenmesi, kullanıcıların davetleri kabul etmelerini önleyecektir.

Rol atamalarını güncelleştirme

  1. içinde bir Static Web Apps kaynağına Azure portal.
  2. Ayarlar altında Rol Yönetimi'ne tıklayın.
  3. Listede kullanıcıya tıklayın.
  4. Rol kutusunda rol listesini düzenleyin.
  5. Güncelleştir düğmesine tıklayın.

Kullanıcı kaldırma

  1. içinde bir Static Web Apps kaynağına Azure portal.
  2. Ayarlar altında Rol Yönetimi'ne tıklayın.
  3. Listede kullanıcı bulun.
  4. Kullanıcının satırdaki onay kutusunu işaretleyin.
  5. Sil düğmesine tıklayın.

Bir kullanıcı kaldırırken aşağıdaki öğeleri unutmayın:

  1. Kullanıcı kaldırılarak izinleri geçersiz kılınıyor.
  2. Dünya çapında yayılma birkaç dakika sürebilir.
  3. Kullanıcı uygulamaya geri eklenirse, userId değişir.

Kişisel tanımlama bilgilerini Kaldır

Bir uygulamaya son kullanıcı olarak izin verdiğinizde, uygulamanın, kimlik sağlayıcısına bağlı olarak e-posta adresinize veya Kullanıcı adınızla erişimi vardır. Bu bilgiler sağlandığında, uygulamanın sahibi kişisel olarak tanımlama bilgilerinin nasıl yönetileceğine karar verir.

Son kullanıcıların, bu bilgileri sistemlerinden iptal etmek için ayrı Web uygulamalarının yöneticileriyle iletişim kurabilmesi gerekir.

Azure statik Web Apps platformundan kişisel tanımlama bilgilerini kaldırmak ve platformun gelecekteki isteklerde bu bilgileri sağlamamasını engellemek için, URL 'YI kullanarak bir istek gönderebilirsiniz:

https://identity.azurestaticapps.net/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Platformun bu bilgileri tek tek uygulamalara gelecek isteklerde sağlamamasını engellemek için aşağıdaki URL 'ye bir istek gönder:

https://<WEB_APP_DOMAIN_NAME>/.auth/purge/<AUTHENTICATION_PROVIDER_NAME>

Azure Active Directory kullanıyorsanız, aad yer tutucunun değeri olarak ' i kullanın <AUTHENTICATION_PROVIDER_NAME> .

Sistem klasörü

Azure statik Web Apps, /.auth yetkilendirmeyle Ilgili API 'lere erişim sağlamak için sistem klasörünü kullanır. Klasörü altındaki yolların herhangi birini /.auth doğrudan son kullanıcılara sunmak yerine, kolay URL 'ler oluşturmak için yönlendirme kuralları oluşturmayı düşünün.

Oturum aç

Sağlayıcıya özgü rotayı bulmak için aşağıdaki tabloyu kullanın.

Yetkilendirme sağlayıcısı Oturum açma yolu
Azure Active Directory /.auth/login/aad
GitHub /.auth/login/github
Twitter /.auth/login/twitter

örneğin, GitHub oturum açmak için aşağıdaki kod parçacığına benzer bir bağlantı ekleyebilirsiniz:

<a href="/.auth/login/github">Login</a>

Birden fazla sağlayıcıyı desteklemeyi seçtiyseniz, Web sitenizde her biri için sağlayıcıya özgü bir bağlantı oluşturmanız gerekir.

Varsayılan bir sağlayıcıyı /login gibi kolay bir yola eşlemek için bir yol kuralı kullanabilirsiniz.

{
  "route": "/login",
  "redirect": "/.auth/login/github"
}

Oturum açma sonrası yeniden yönlendirme

Bir kullanıcının oturum açtıktan sonra belirli bir sayfaya dönmesini istiyorsanız sorgu dizesi parametresinde tam nitelikli bir URL sağlayın post_login_redirect_uri .

Örneğin:

<a href="/.auth/login/github?post_login_redirect_uri=https://zealous-water.azurestaticapps.net/success">Login</a>

Oturumu Kapat

/.auth/logoutRota, kullanıcıları Web sitesinden dışarı kaydeder. Aşağıdaki örnekte gösterildiği gibi, kullanıcının oturum açmasını sağlamak için site gezintisine bir bağlantı ekleyebilirsiniz.

<a href="/.auth/logout">Log out</a>

/Logout gibi kolay bir yol eşlemek için bir yol kuralı kullanabilirsiniz.

{
  "route": "/logout",
  "redirect": "/.auth/logout"
}

Kapatma sonrası yeniden yönlendirme

Bir kullanıcının, oturum kapatıldıktan sonra belirli bir sayfaya dönmesini istiyorsanız post_logout_redirect_uri sorgu dizesi parametresinde BIR URL sağlayın.

Yetkilendirme sağlayıcısını engelle

Uygulamanızı bir yetkilendirme sağlayıcısı kullanarak kısıtlamak isteyebilirsiniz. Örneğin, uygulamanız yalnızca e-posta adreslerini açığa çıkaran sağlayıcılariçin standartlaştırmak isteyebilir.

Sağlayıcıyı engellemek için, engellenen sağlayıcıya özgü rotaya yönelik istekler için 404 döndürecek yol kuralları oluşturabilirsiniz. Örneğin, Twitter 'ı sağlayıcı olarak kısıtlamak için aşağıdaki yol kuralını ekleyin.

{
  "route": "/.auth/login/twitter",
  "statusCode": 404
}

Kısıtlamalar

Genel kısıtlamalar ve sınırlamalar için Kotalar makalesine bakın.

Sonraki adımlar

1 bekleyen dış sertifika.