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.

Kaynak denetimine gizli bilgileri koymaktan kaçınmak için, yapılandırma dosyasında eşleşen bir adı uygulama ayarlarında arayarak kontrol eder. Gizli bilgilerinizi 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 anahtarını 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 v2.0 ile openIdIssuer olarak belirtilir.

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"
        }
      }
    }
  }
}

<TENANT_ID>'yi Microsoft Entra kiracı kimliğinizle değiştirdiğinizden 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"
        }
      }
    }
  }
}

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

Microsoft Entra ID'yi yapılandırma hakkında daha fazla bilgi için App Service Kimlik Doğrulaması/Yetkilendirmesi Belgelerine bakın.

Hangi hesapların oturum açabileceğini yapılandırmak için Bir 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 başlıklarına bakın.

Not

Microsoft Entra ID yapılandırma bölümü azureActiveDirectory iken, platform, oturum açma, oturum kapatma ve kullanıcı bilgilerini temizleme URL'lerinde bunu aad olarak takma adla kullanır. 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 keyVaultReferenceIdentity özelliği kullanıcı tarafından atanan yönetilen kimliğin değerine ayarlayınresourceId.

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

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

    • Sırlar: Getir/Listele
    • 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 çevrili olan yer tutuculara değerlerinizi girdiğinizden emin olun.

    Gizli URI'de 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ü eklemeyin.

    clientSecretCertificateThumbprint değerini * olarak ayarlayın ve sertifikaların en son sürümü için daima parmak izini alın.

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, <PROVIDER_NAME_IN_CONFIG> yer tutucusu için aad değerini kullanın.

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ı bilgileri

Ö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 olarak aad kullanın <PROVIDER_NAME_IN_CONFIG>.

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.

Bir kullanıcıyı bir role ekle

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 muhafaza edilir.

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 kullanıcı adı
X kullanıcı adı

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. Statik sitenizin alan adını açılan menüsünden seçin.
    • Seçtiğiniz etki alanı, davetiyede 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