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

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 bu ilkeyi desteklemeye devam edemiyoruz. 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.

Azure Static Web Apps, kimlik doğrulaması için GitHub ve Microsoft Entra Id kullanmak için başka hiçbir eylem veya 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.

Ö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 bağlantıya benzer bir şey ekleyebilirsiniz.

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

Birden fazla sağlayıcıyı desteklemeyi seçerseniz, web sitenizdeki her sağlayıcı için sağlayıcıya özgü bir bağlantı açı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

Aşağıdaki örnekte olduğu gibi sorgu dizesi parametresinde post_login_redirect_uri tam URL sağlayarak kullanıcıyı oturum açtıktan sonra belirli bir sayfaya döndür.

<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 configure this behavior, 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

Tüm kimlik doğrulama sağlayıcıları etkinleştirildiğinden uygulamanızın kimlik doğrulama sağlayıcısı kullanmasını kısıtlamak isteyebilirsiniz. Örneğin, uygulamanız yalnızca e-posta adreslerini kullanıma sunan sağlayıcılarda standart hale getirmek isteyebilir.

Bir sağlayıcıyı engellemek için, engellenen sağlayıcıya özgü yola yönelik istekler için 404 durum kodunu döndürmek üzere 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
}

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