Azure Static Web Apps'te özel kimlik doğrulaması

Azure Static Web Apps, Azure tarafından yönetilen sağlayıcı kayıtlarını kullanan yönetilen kimlik doğrulaması sağlar. Kayıt üzerinde daha fazla esneklik sağlamak için, özel bir kayıtla varsayılanları geçersiz kılabilirsiniz.

  • Özel kimlik doğrulaması, OpenID Connect'i destekleyen özel sağlayıcılar yapılandırmanıza da olanak tanır. Bu yapılandırma, birden çok dış sağlayıcının kaydedilmesine izin verir.

  • Herhangi bir özel kaydın kullanılması, önceden yapılandırılmış tüm sağlayıcıları devre dışı bırakır.

Not

Özel kimlik doğrulaması yalnızca Azure Static Web Apps Standart planında kullanılabilir.

Özel kimlik sağlayıcısı yapılandırma

Özel kimlik sağlayıcıları yapılandırma dosyasının authbölümünde yapılandırılır.

Gizli dizileri kaynak denetimine yerleştirmekten kaçınmak için yapılandırma, yapılandırma dosyasında eşleşen bir ad için uygulama ayarlarına bakar. Gizli dizilerinizi Azure Key Vault'ta depolamayı da seçebilirsiniz.

Kaydı oluşturmak için aşağıdaki uygulama ayarlarını oluşturarak başlayın:

Ayar Adı Değer
AZURE_CLIENT_ID Microsoft Entra uygulama kaydı için Uygulama (istemci) kimliği.
'AZURE_CLIENT_SECRET_APP_SETTING_NAME Microsoft Entra uygulama kaydı için istemci gizli dizisini tutan uygulama ayarının adı.

Ardından, yapılandırma dosyasında sağlayıcıyı yapılandırmak için aşağıdaki örneği kullanın.

Microsoft Entra sağlayıcıları iki farklı sürümde kullanılabilir. Sürüm 1, yükün userDetailsClaimkullanıcı bilgilerini döndürmesine izin veren öğesini açıkça tanımlar. Buna karşılık, sürüm 2 varsayılan olarak kullanıcı bilgilerini döndürür ve URL'de openIdIssuer tarafından v2.0 belirlenir.

Microsoft Entra Sürüm 1

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET_APP_SETTING_NAME"
        }
      }
    }
  }
}

değerini Microsoft Entra kiracı kimliğiniz ile değiştirdiğinden <TENANT_ID> emin olun.

Microsoft Entra Sürüm 2

{
  "auth": {
    "identityProviders": {
      "azureActiveDirectory": {
        "registration": {
          "openIdIssuer": "https://login.microsoftonline.com/<TENANT_ID>/v2.0",
          "clientIdSettingName": "AZURE_CLIENT_ID",
          "clientSecretSettingName": "AZURE_CLIENT_SECRET_APP_SETTING_NAME"
        }
      }
    }
  }
}

değerini Microsoft Entra kiracı kimliğiniz ile değiştirdiğinden <TENANT_ID> emin olun.

Microsoft Entra Id'yi yapılandırma hakkında daha fazla bilgi için app service kimlik doğrulaması/yetkilendirme belgelerine bakın.

Hangi hesapların oturum açabileceğini yapılandırmak için bkz . Uygulama tarafından desteklenen hesapları değiştirme ve Microsoft Entra uygulamanızı Bir Microsoft Entra kiracısında bir kullanıcı kümesiyle kısıtlama.

Not

Microsoft Entra Id yapılandırma bölümü olsa azureActiveDirectoryda, platform oturum açma, oturum kapatma ve kullanıcı bilgilerini temizleme için URL'lerde buna aad diğer ad verir. Daha fazla bilgi için kimlik doğrulaması ve yetkilendirme bölümüne bakın.

Özel sertifika

Microsoft Entra ID uygulama kaydınıza özel bir sertifika eklemek için aşağıdaki adımları kullanın.

  1. Henüz yüklü değilse sertifikanızı bir Microsoft Key Vault'a yükleyin.

  2. Statik Web Uygulamanıza yönetilen kimlik ekleyin.

    Kullanıcı tarafından atanan yönetilen kimlikler için, statik site nesnenizdeki resourceId özelliği kullanıcı tarafından atanan yönetilen kimliğin değerine ayarlayınkeyVaultReferenceIdentity.

    Yönetilen kimliğiniz sistem atanmışsa bu adımı atlayın.

  3. Yönetilen kimliğe aşağıdaki erişim ilkelerini verin:

    • Gizli Diziler: Alma/Listeleme
    • Sertifikalar: Alma/Listeleme
  4. Yapılandırma bölümünün kimlik doğrulama yapılandırması bölümünü azureActiveDirectory aşağıdaki örnekte gösterildiği gibi bir clientSecretCertificateKeyVaultReference değerle güncelleştirin:

    {
      "auth": {
        "rolesSource": "/api/GetRoles",
        "identityProviders": {
          "azureActiveDirectory": {
            "userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
            "registration": {
              "openIdIssuer": "https://login.microsoftonline.com/common/v2.0",
              "clientIdSettingName": "AZURE_CLIENT_ID",
              "clientSecretCertificateKeyVaultReference": "@Microsoft.KeyVault(SecretUri=https://<KEY_VAULT_NAME>.azure.net/certificates/<CERTIFICATE_NAME>/<CERTIFICATE_VERSION_ID>)",
              "clientSecretCertificateThumbprint": "*"
            }
          }
        }
      }
    }
    

    ile <>çevrelenen yer tutucular için içindeki değerlerinizi değiştirdiğinden emin olun.

    Gizli dizi URI'sinde anahtar kasası adını ve sertifika adını belirtin. Bir sürüme sabitlemek istiyorsanız sertifika sürümünü ekleyin, aksi takdirde çalışma zamanının sertifikanın en yeni sürümünü seçmesine izin vermek için sürümü atlarsınız.

    değerine eşit * olarak ayarlayın clientSecretCertificateThumbprint ve her zaman sertifikaların en son sürümünün parmak izini çekin.

Kimlik doğrulama geri çağırmaları

Kimlik sağlayıcıları, oturum açma veya oturum kapatma isteğini tamamlamak için yeniden yönlendirme URL'si gerektirir. Çoğu sağlayıcı, geri çağırma URL'lerini bir izin verilenler listesine eklemenizi gerektirir. Aşağıdaki uç noktalar yeniden yönlendirme hedefleri olarak kullanılabilir.

Tür URL deseni
Oturum aç https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
Oturumu kapatma https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback

Microsoft Entra Id kullanıyorsanız yer tutucunun değeri <PROVIDER_NAME_IN_CONFIG> olarak kullanınaad.

Not

Bu URL'ler, kimlik doğrulama sağlayıcısından yanıt almak için Azure Static Web Apps tarafından sağlanır; bu yollarda sayfa oluşturmanız gerekmez.

Oturum açma, oturumu kapatma ve kullanıcı ayrıntıları

Özel kimlik sağlayıcısı kullanmak için aşağıdaki URL desenlerini kullanın.

Eylem Desen
Oturum aç /.auth/login/<PROVIDER_NAME_IN_CONFIG>
Oturumu kapatma /.auth/logout
Kullanıcı Ayrıntıları /.auth/me
Kullanıcı ayrıntılarını temizleme /.auth/purge/<PROVIDER_NAME_IN_CONFIG>

Microsoft Entra Id kullanıyorsanız yer tutucunun değeri <PROVIDER_NAME_IN_CONFIG> olarak kullanınaad.

Rolleri yönetme

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

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

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

Role kullanıcı ekleme

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

Davet oluşturma

Davetler bireysel yetkilendirme sağlayıcılarına özeldir, bu nedenle hangi sağlayıcıların desteklenmesi gerektiğini seçerken uygulamanızın gereksinimlerini göz önünde bulundurun. Bazı sağlayıcılar kullanıcının e-posta adresini kullanıma sunarken, bazıları yalnızca sitenin kullanıcı adını sağlar.

Yetkilendirme sağlayıcısı Kullanıma sunar
Microsoft Entra Kimlik e-posta adresi
GitHub username
X username

Davet oluşturmak için aşağıdaki adımları kullanın.

  1. Azure portalında Statik Web Apps kaynağına gidin.
  2. Ayarlar'ın altında Rol Yönetimi'ne tıklayın.
  3. Davet et’i seçin.
  4. Seçenekler listesinden bir Yetkilendirme sağlayıcısı seçin.
  5. Davetli ayrıntıları kutusuna alıcının kullanıcı adını veya e-posta adresini ekleyin.
    • GitHub ve X için kullanıcı adını girin. Diğer tüm kullanıcılar için alıcının e-posta adresini girin.
  6. Etki alanı açılan menüsünden statik sitenizin etki alanını seçin.
    • Seçtiğiniz etki alanı, davette görünen etki alanıdır. Sitenizle ilişkilendirilmiş özel bir etki alanınız varsa, özel etki alanını seçin.
  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.
    • Mümkün olan en yüksek sınır 168 saattir ve bu da yedi gündür.
  9. Oluştur seçeneğini belirleyin.
  10. Davet et bağlantı kutusundan bağlantıyı kopyalayın.
  11. Erişim izni vermekte olduğunuz kullanıcıya davet bağlantısını e-postayla gönderin.

Kullanıcı davetteki bağlantıyı seçtiğinde ilgili hesabıyla oturum açması istenir. Başarıyla oturum açtıktan sonra kullanıcı seçilen rollerle ilişkilendirilir.

Dikkat

Rota kurallarınızın seçili kimlik doğrulama sağlayıcılarınızla çakışmadığından emin olun. Yönlendirme kuralıyla sağlayıcının engellenmesi, kullanıcıların davetleri kabul etmesini engeller.

Rol atamalarını güncelleştirme

  1. Azure portalında Statik Web Apps kaynağına gidin.
  2. Ayarlar'ın altında Rol Yönetimi'ne tıklayın.
  3. Listeden kullanıcıyı seçin.
  4. Rol kutusundaki rol listesini düzenleyin.
  5. Güncelleştir'i seçin.

Kullanıcıyı kaldır

  1. Azure portalında Statik Web Apps kaynağına gidin.
  2. Ayarlar'ın altında Rol Yönetimi'ne tıklayın.
  3. Listede kullanıcıyı bulun.
  4. Kullanıcının satırındaki onay kutusunu işaretleyin.
  5. Sil'i seçin.

Bir kullanıcıyı kaldırırken aşağıdaki öğeleri göz önünde bulundurun:

  • Bir kullanıcının kaldırılması izinlerini geçersiz kılıyor.
  • Dünya çapında yayılma birkaç dakika sürebilir.
  • Kullanıcı uygulamaya geri eklenirse, değişiklikler yapılıruserId.

Sonraki adımlar