Vlastní ověřování ve službě Azure Static Web Apps

Azure Static Web Apps poskytuje spravované ověřování , které používá registrace zprostředkovatele spravované v Azure. Pokud chcete u registrace povolit větší flexibilitu, můžete výchozí hodnoty přepsat vlastní registrací.

  • Vlastní ověřování také umožňuje konfigurovat vlastní zprostředkovatele , kteří podporují OpenID Connect. Tato konfigurace umožňuje registraci více externích poskytovatelů.

  • Použití všech vlastních registrací zakáže všechny předkonfigurované poskytovatele.

Poznámka:

Vlastní ověřování je dostupné jenom v plánu Azure Static Web Apps Standard.

Konfigurace vlastního zprostředkovatele identity

Vlastní zprostředkovatelé identity se konfigurují v auth části konfiguračního souboru.

Aby se zabránilo vkládání tajných kódů do správy zdrojového kódu, konfigurace se podívá do nastavení aplikace pro odpovídající název v konfiguračním souboru. Můžete se také rozhodnout ukládat tajné kódy ve službě Azure Key Vault.

Pokud chcete vytvořit registraci, začněte vytvořením následujícího nastavení aplikace:

Název nastavení Hodnota
AZURE_CLIENT_ID ID aplikace (klienta) pro registraci aplikace Microsoft Entra.
'AZURE_CLIENT_SECRET_APP_SETTING_NAME Název nastavení aplikace, které obsahuje tajný klíč klienta pro registraci aplikace Microsoft Entra.

Dále pomocí následující ukázky nakonfigurujte zprostředkovatele v konfiguračním souboru.

Poskytovatelé Microsoft Entra jsou k dispozici ve dvou různých verzích. Verze 1 explicitně definuje userDetailsClaimdatovou část, která umožňuje vrátit informace o uživateli. Naproti tomu verze 2 ve výchozím nastavení vrací informace o uživateli a je určena v2.0 v openIdIssuer adrese URL.

Microsoft Entra verze 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"
        }
      }
    }
  }
}

Nezapomeňte nahradit <TENANT_ID> ID tenanta Microsoft Entra.

Microsoft Entra verze 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"
        }
      }
    }
  }
}

Nezapomeňte nahradit <TENANT_ID> ID tenanta Microsoft Entra.

Další informace o tom, jak nakonfigurovat ID Microsoft Entra, najdete v dokumentaci k ověřování/autorizaci služby App Service při použití existující registrace.

Pokud chcete nakonfigurovat, které účty se můžou přihlásit, přečtěte si téma Úprava účtů podporovaných aplikací a omezení aplikace Microsoft Entra na sadu uživatelů v tenantovi Microsoft Entra.

Poznámka:

Zatímco konfigurační oddíl pro Microsoft Entra ID je azureActiveDirectory, platforma aliasy to v aad adrese URL pro přihlášení, odhlášení a vymazání informací o uživateli. Další informace najdete v části ověřování a autorizace .

Vlastní certifikát

Pomocí následujícího postupu přidejte vlastní certifikát do registrace aplikace Microsoft Entra ID.

  1. Pokud ještě není, nahrajte certifikát do služby Microsoft Key Vault.

  2. Přidejte spravovanou identitu do statické webové aplikace.

    U spravovaných identit přiřazených uživatelem nastavte keyVaultReferenceIdentity vlastnost objektu statické lokality na resourceId spravovanou identitu přiřazenou uživatelem.

    Pokud je spravovaná identita přiřazená systémem, tento krok přeskočte.

  3. Udělte spravované identitě následující zásady přístupu:

    • Tajné kódy: Získání/výpis
    • Certifikáty: Získání/výpis
  4. Aktualizujte oddíl konfigurace ověřování oddílu azureActiveDirectory konfigurace hodnotou clientSecretCertificateKeyVaultReference , jak je znázorněno v následujícím příkladu:

    {
      "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": "*"
            }
          }
        }
      }
    }
    

    Nezapomeňte nahradit hodnoty zástupných symbolů obklopených znakem <>.

    V identifikátoru URI tajného klíče zadejte název trezoru klíčů a název certifikátu. Pokud chcete připnout na verzi, zahrňte verzi certifikátu, jinak vynechejte verzi, aby modul runtime vybral nejnovější verzi certifikátu.

    Nastavte clientSecretCertificateThumbprint stejnou hodnotu tak, aby * vždy načítala nejnovější verzi kryptografického otisku certifikátů.

Zpětné volání ověřování

Zprostředkovatelé identity vyžadují k dokončení žádosti o přihlášení nebo odhlášení adresu URL přesměrování. Většina poskytovatelů vyžaduje, abyste do seznamu povolených přidali adresy URL zpětného volání. Následující koncové body jsou k dispozici jako cíle přesměrování.

Typ Vzor adresy URL
Přihlásit https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback
Odhlášení https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback

Pokud používáte ID Microsoft Entra, použijte aad jako hodnotu zástupného symbolu <PROVIDER_NAME_IN_CONFIG> .

Poznámka:

Tyto adresy URL poskytuje Služba Azure Static Web Apps, aby získala odpověď od zprostředkovatele ověřování, nemusíte na těchto trasách vytvářet stránky.

Podrobnosti o přihlášení, odhlášení a uživateli

Pokud chcete použít vlastního zprostředkovatele identity, použijte následující vzory adres URL.

Akce Vzor
Přihlásit /.auth/login/<PROVIDER_NAME_IN_CONFIG>
Odhlášení /.auth/logout
Podrobnosti uživatele /.auth/me
Vymazání podrobností o uživateli /.auth/purge/<PROVIDER_NAME_IN_CONFIG>

Pokud používáte ID Microsoft Entra, použijte aad jako hodnotu zástupného symbolu <PROVIDER_NAME_IN_CONFIG> .

Správa rolí

Každý uživatel, který přistupuje ke statické webové aplikaci, patří do jedné nebo více rolí. Uživatelé můžou patřit dvěma předdefinovanými rolemi:

  • anonymní: Všichni uživatelé automaticky patří do anonymní role.
  • ověřeno: Všichni přihlášení uživatelé patří k ověřené roli.

Kromě předdefinovaných rolí můžete uživatelům přiřadit vlastní role a odkazovat na ně v souboru staticwebapp.config.json .

Přidání uživatele do role

Pokud chcete přidat uživatele do role, vygenerujete pozvánky, které umožňují přidružit uživatele k určitým rolím. Role se definují a spravují v souboru staticwebapp.config.json .

Vytvoření pozvánky

Pozvánky jsou specifické pro jednotlivé poskytovatele autorizace, proto při výběru poskytovatelů, které mají podporovat, zvažte potřeby vaší aplikace. Někteří poskytovatelé zpřístupňují e-mailovou adresu uživatele, zatímco jiní zadají jenom uživatelské jméno webu.

Zprostředkovatel autorizace Vystavuje
Microsoft Entra ID e-mailovou adresu
GitHub username
X username

Pomocí následujícího postupu vytvořte pozvánku.

  1. Na webu Azure Portal přejděte k prostředku Static Web Apps.
  2. V části Nastavení vyberte Správa rolí.
  3. Vyberte Pozvat.
  4. V seznamu možností vyberte zprostředkovatele autorizace.
  5. Do pole s podrobnostmi o pozvánce přidejte buď uživatelské jméno, nebo e-mailovou adresu příjemce.
    • Jako GitHub a X zadejte uživatelské jméno. Pro všechny ostatní zadejte e-mailovou adresu příjemce.
  6. V rozevírací nabídce Doména vyberte doménu vaší statické lokality.
    • Doména, kterou vyberete, je doména, která se zobrazí v pozvánce. Pokud máte vlastní doménu přidruženou k webu, zvolte vlastní doménu.
  7. Do pole Role přidejte seznam názvů rolí oddělených čárkami.
  8. Zadejte maximální počet hodin, po které má pozvánka zůstat platná.
    • Maximální možný limit je 168 hodin, což je sedm dní.
  9. Vyberte Generovat.
  10. Zkopírujte odkaz z pole Pozvat odkaz .
  11. Pošlete e-mailem odkaz na pozvánku uživateli, kterému udělujete přístup.

Když uživatel vybere odkaz v pozvánce, zobrazí se výzva k přihlášení pomocí odpovídajícího účtu. Po úspěšném přihlášení se uživatel přidružuje k vybraným rolím.

Upozornění

Ujistěte se, že pravidla směrování nejsou v konfliktu s vybranými zprostředkovateli ověřování. Blokování zprostředkovatele pravidlem trasy brání uživatelům v přijímání pozvánek.

Aktualizujte přiřazení rolí

  1. Na webu Azure Portal přejděte k prostředku Static Web Apps.
  2. V části Nastavení vyberte Správa rolí.
  3. Vyberte uživatele v seznamu.
  4. Upravte seznam rolí v poli Role .
  5. Vyberte Aktualizovat.

Odebrat uživatele

  1. Na webu Azure Portal přejděte k prostředku Static Web Apps.
  2. V části Nastavení vyberte Správa rolí.
  3. Vyhledejte uživatele v seznamu.
  4. Zaškrtněte políčko na řádku uživatele.
  5. Vyberte Odstranit.

Při odebírání uživatele mějte na paměti následující položky:

  • Odebrání uživatele zneplatní svá oprávnění.
  • Šíření po celém světě může trvat několik minut.
  • Pokud se uživatel přidá zpět do aplikace, userId změny se změní.

Další kroky