Statik Web Uygulamalarının kimliğini doğrulama ve yetkilendirme

Azure Static Web Apps, kimlik doğrulaması için GitHub ve Microsoft Entra Id kullanmak için ek yapılandırma gerekmeyen, kolaylaştırılmış bir kimlik doğrulama deneyimi sağlar.

Bu makalede varsayılan davranış, oturum açma ve oturum kapatmayı ayarlama, kimlik doğrulama sağlayıcısını engelleme ve daha fazlası hakkında bilgi edinin.

Önceden yapılandırılmış tüm sağlayıcıları devre dışı bırakmak için özel bir sağlayıcı kaydedebilirsiniz.

Uyarı

X (eski adı Twitter) API ilkesindeki değişiklikler nedeniyle, uygulamanız için önceden yapılandırılmış sağlayıcıların bir parçası olarak destek sağlanmaz. Uygulamanızla kimlik doğrulaması/yetkilendirme için X (eski adı Twitter) özelliğini kullanmaya devam etmek istiyorsanız, özel bir sağlayıcı kaydedecek şekilde uygulama yapılandırmanızı güncelleştirin.

Önkoşullar

Azure Static Web Apps ile kimlik doğrulaması ve yetkilendirme için aşağıdaki varsayılanlar ve kaynaklara dikkat edin.

Varsayılan:

  • Herhangi bir kullanıcı önceden yapılandırılmış bir sağlayıcıyla kimlik doğrulaması yapabilir
    • GitHub
    • Microsoft Entra Kimlik
    • Bir kimlik doğrulama sağlayıcısını kısıtlamak için özel yol kuralıyla erişimi engelleyin
  • Oturum açma sonrasında kullanıcılar ve authenticated rollerine anonymous aittir. Roller hakkında daha fazla bilgi için bkz. Rolleri yönetme

Kaynaklar:

Oturum açmayı ayarlama

Azure Static Web Apps, yetkilendirmeyle /.auth ilgili API'lere erişim sağlamak için sistem klasörünü kullanır. Klasörün altındaki /.auth yollardan herhangi birini doğrudan son kullanıcılara göstermek yerine kolay URL'ler için yönlendirme kuralları oluşturun.

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

Yetkilendirme sağlayıcısı Oturum açma yolu
Microsoft Entra Kimlik /.auth/login/aad
GitHub /.auth/login/github

Örneğin, GitHub ile oturum açmak için aşağıdaki örneğe benzer bir URL kullanabilirsiniz.

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

Birden fazla sağlayıcıyı desteklemeyi seçtiyseniz, web sitenizdeki her sağlayıcı için sağlayıcıya özgü bir bağlantı kullanın. Varsayılan sağlayıcıyı /login gibi kolay bir yola eşlemek için bir yol kuralı kullanın.

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

Oturum açma sonrası yeniden yönlendirmeyi ayarlama

Sorgu dizesi parametresinde tam URL sağlayarak, bir kullanıcıyı oturum açtıktan sonra belirli bir sayfaya post_login_redirect_uri döndürebilirsiniz.

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

You can also redirect unauthenticated users back to the referring page after they sign in. To add this redirect, create a response override rule that sets post_login_redirect_uri to .referrer, like in the following example.

{
  "responseOverrides": {
    "401": {
      "redirect": "/.auth/login/github?post_login_redirect_uri=.referrer",
      "statusCode": 302
    }
  }
}

Oturumu kapatmayı ayarlama

Yol, /.auth/logout kullanıcıların web sitesinden çıkışını imzalar. Aşağıdaki örnekte olduğu gibi, kullanıcının oturumu kapatmasına izin vermek için site gezintinize bir bağlantı ekleyebilirsiniz.

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

/logout gibi kolay bir yolu eşlemek için bir yol kuralı kullanın.

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

Oturum kapatma sonrası yeniden yönlendirmeyi ayarlama

Oturumu kapatan bir kullanıcıyı belirli bir sayfaya döndürmek için sorgu dizesi parametresinde post_logout_redirect_uri bir URL sağlayın.

Kimlik doğrulama sağlayıcısını engelleme

Varsayılan olarak, tüm kimlik doğrulama sağlayıcıları etkindir, ancak uygulamanızın sağlayıcı kullanmasını kısıtlamak isteyebilirsiniz. Örneğin, uygulamanız yalnızca e-posta adreslerini kullanıma sunan sağlayıcıları kullanmak isteyebilir.

Bir sağlayıcıyı engellemek için engellenen sağlayıcıya özgü yola yönelik istekler için durum kodu döndürmek üzere bir 404 yol kuralı oluşturun. Örneğin, Entra Id (eski adıyla Azure Active Directory, "aad" olarak bilinir) sağlayıcısını kısıtlamak için aşağıdaki yol kuralını ekleyin.

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

Kişisel verileri kaldırma

Bir uygulamaya son kullanıcı olarak onay verdiğinizde, uygulamanın kimlik sağlayıcısına bağlı olarak e-posta adresinize veya kullanıcı adınıza erişimi olur. Bu bilgiler sağlandıktan sonra, uygulamanın sahibi kişisel verilerin nasıl yönetileceğini karar verebilir.

Son kullanıcıların bu bilgileri sistemlerinden iptal etmek için tek tek web uygulamalarının yöneticilerine başvurması gerekir.

Azure Static Web Apps platformundan kişisel verileri kaldırmak ve platformun gelecekteki isteklerde bu bilgileri sağlamasını önlemek için aşağıdaki URL'yi kullanarak bir istek gönderin:

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

To prevent the platform from providing this information on future requests to individual apps, submit a request using the following URL:

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

If you're using Microsoft Entra ID, use aad as the value for the <AUTHENTICATION_PROVIDER_NAME> placeholder.

Tip

For information about general restrictions and limitations, see Quotas.

Sonraki adım