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 userDetailsClaim
datovou čá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.
Pokud ještě není, nahrajte certifikát do služby Microsoft Key Vault.
Přidejte spravovanou identitu do statické webové aplikace.
U spravovaných identit přiřazených uživatelem nastavte
keyVaultReferenceIdentity
vlastnost objektu statické lokality naresourceId
spravovanou identitu přiřazenou uživatelem.Pokud je spravovaná identita přiřazená systémem, tento krok přeskočte.
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
Aktualizujte oddíl konfigurace ověřování oddílu
azureActiveDirectory
konfigurace hodnotouclientSecretCertificateKeyVaultReference
, 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.
- Na webu Azure Portal přejděte k prostředku Static Web Apps.
- V části Nastavení vyberte Správa rolí.
- Vyberte Pozvat.
- V seznamu možností vyberte zprostředkovatele autorizace.
- 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.
- 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.
- Do pole Role přidejte seznam názvů rolí oddělených čárkami.
- 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í.
- Vyberte Generovat.
- Zkopírujte odkaz z pole Pozvat odkaz .
- 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í
- Na webu Azure Portal přejděte k prostředku Static Web Apps.
- V části Nastavení vyberte Správa rolí.
- Vyberte uživatele v seznamu.
- Upravte seznam rolí v poli Role .
- Vyberte Aktualizovat.
Odebrat uživatele
- Na webu Azure Portal přejděte k prostředku Static Web Apps.
- V části Nastavení vyberte Správa rolí.
- Vyhledejte uživatele v seznamu.
- Zaškrtněte políčko na řádku uživatele.
- 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í.