Sdílet prostřednictvím


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 ukládání tajných informací do verzovacího systému, konfigurace prohledává nastavení aplikace a hledá 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 userDetailsClaim, což umožňuje vrátit datovou část s informacemi o uživateli. Naproti tomu verze 2 ve výchozím nastavení vrací informace o uživateli a je označena v2.0 v adrese URL openIdIssuer.

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

Ujistěte se, že nahrazujete <TENANT_ID> vaším 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 přiřazuje alias aad v rámci 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ískat/Seznam
  4. Aktualizujte oddíl konfigurace azureActiveDirectory pro ověřování 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řiřadit k určité verzi, zahrňte tuto verzi certifikátu, jinak verzi vynechejte, aby modul runtime mohl vybrat nejnovější verzi certifikátu.

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

Ověřovací zpětné volá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-mailová adresa
GitHub uživatelské jméno
X uživatelské jméno

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.
    • Pro 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 odkaz na pozvánku.
  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í body:

  • 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 se změní.

Další kroky