Aangepaste verificatie in Azure Static Web Apps
Azure Static Web Apps biedt beheerde verificatie die gebruikmaakt van providerregistraties die worden beheerd door Azure. Als u meer flexibiliteit wilt bieden voor de registratie, kunt u de standaardwaarden overschrijven met een aangepaste registratie.
Met aangepaste verificatie kunt u ook aangepaste providers configureren die OpenID Connect ondersteunen. Met deze configuratie kunt u meerdere externe providers registreren.
Als u aangepaste registraties gebruikt, worden alle vooraf geconfigureerde providers uitgeschakeld.
Notitie
Aangepaste verificatie is alleen beschikbaar in het Azure Static Web Apps Standard-abonnement.
Een aangepaste id-provider configureren
Aangepaste id-providers worden geconfigureerd in de auth
sectie van het configuratiebestand.
Om te voorkomen dat geheimen in broncodebeheer worden opgenomen, zoekt de configuratie naar toepassingsinstellingen voor een overeenkomende naam in het configuratiebestand. U kunt er ook voor kiezen om uw geheimen op te slaan in Azure Key Vault.
Als u de registratie wilt maken, begint u met het maken van de volgende toepassingsinstellingen:
Naam van instelling | Weergegeven als |
---|---|
AZURE_CLIENT_ID |
De toepassings-id (client) voor de registratie van de Microsoft Entra-app. |
'AZURE_CLIENT_SECRET_APP_SETTING_NAME | De naam van de toepassingsinstelling die het clientgeheim bevat voor de registratie van de Microsoft Entra-app. |
Gebruik vervolgens het volgende voorbeeld om de provider in het configuratiebestand te configureren.
Microsoft Entra-providers zijn beschikbaar in twee verschillende versies. Versie 1 definieert expliciet de userDetailsClaim
, waarmee de nettolading gebruikersgegevens kan retourneren. Versie 2 retourneert daarentegen standaard gebruikersgegevens en wordt aangeduid in v2.0
de openIdIssuer
URL.
Microsoft Entra versie 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"
}
}
}
}
}
Zorg ervoor dat u vervangt door <TENANT_ID>
uw Microsoft Entra-tenant-id.
Microsoft Entra versie 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"
}
}
}
}
}
Zorg ervoor dat u vervangt door <TENANT_ID>
uw Microsoft Entra-tenant-id.
Zie de documentatie over App Service-verificatie/autorisatie voor het gebruik van een bestaande registratie voor meer informatie over het configureren van Microsoft Entra-id.
Zie De accounts wijzigen die worden ondersteund door een toepassing en uw Microsoft Entra-app beperken tot een set gebruikers in een Microsoft Entra-tenant om te configureren welke accounts zich kunnen aanmelden.
Notitie
Hoewel de configuratiesectie voor Microsoft Entra-id is azureActiveDirectory
, wordt dit aad
door het platform opgeslagen in de URL's voor aanmelding, afmelden en opschonen van gebruikersgegevens. Raadpleeg de sectie Verificatie en autorisatie voor meer informatie.
Aangepast certificaat
Gebruik de volgende stappen om een aangepast certificaat toe te voegen aan uw Microsoft Entra ID-app-registratie.
Als dit nog niet het probleem is, uploadt u uw certificaat naar een Microsoft Key Vault.
Voeg een beheerde identiteit toe aan uw statische web-app.
Voor door de gebruiker toegewezen beheerde identiteiten stelt u
keyVaultReferenceIdentity
de eigenschap op uw statische siteobject in op deresourceId
door de gebruiker toegewezen beheerde identiteit.Sla deze stap over als uw beheerde identiteit is toegewezen aan het systeem.
Verdeel de beheerde identiteit het volgende toegangsbeleid:
- Geheimen: Ophalen/weergeven
- Certificaten: Ophalen/weergeven
Werk de configuratiesectie voor verificatie van de
azureActiveDirectory
configuratiesectie bij met eenclientSecretCertificateKeyVaultReference
waarde, zoals wordt weergegeven in het volgende voorbeeld:{ "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": "*" } } } } }
Zorg ervoor dat u uw waarden vervangt voor de tijdelijke aanduidingen die worden omgeven door
<>
.Geef in de geheime URI de naam van de sleutelkluis en de certificaatnaam op. Als u een versie wilt vastmaken, neemt u de certificaatversie op, laat u anders de versie weg zodat de runtime de nieuwste versie van het certificaat kan selecteren.
Ingesteld
clientSecretCertificateThumbprint
op*
altijd de nieuwste versie van de vingerafdruk van de certificaten ophalen.
Callbacks voor verificatie
Id-providers vereisen een omleidings-URL om de aanmeldings- of afmeldingsaanvraag te voltooien. Voor de meeste providers moet u de callback-URL's toevoegen aan een acceptatielijst. De volgende eindpunten zijn beschikbaar als omleidingsbestemmingen.
Type | URL-patroon |
---|---|
Aanmelden | https://<YOUR_SITE>/.auth/login/<PROVIDER_NAME_IN_CONFIG>/callback |
Afmelden | https://<YOUR_SITE>/.auth/logout/<PROVIDER_NAME_IN_CONFIG>/callback |
Als u Microsoft Entra-id gebruikt, gebruikt aad
u deze als de waarde voor de <PROVIDER_NAME_IN_CONFIG>
tijdelijke aanduiding.
Notitie
Deze URL's worden geleverd door Azure Static Web Apps om het antwoord van de verificatieprovider te ontvangen. U hoeft geen pagina's op deze routes te maken.
Aanmeldings-, afmeldings- en gebruikersgegevens
Als u een aangepaste id-provider wilt gebruiken, gebruikt u de volgende URL-patronen.
Actie | Patroon |
---|---|
Aanmelden | /.auth/login/<PROVIDER_NAME_IN_CONFIG> |
Afmelden | /.auth/logout |
Gebruikersdetails | /.auth/me |
Gebruikersdetails leegmaken | /.auth/purge/<PROVIDER_NAME_IN_CONFIG> |
Als u Microsoft Entra-id gebruikt, gebruikt aad
u deze als de waarde voor de <PROVIDER_NAME_IN_CONFIG>
tijdelijke aanduiding.
Rollen beheren
Elke gebruiker die toegang heeft tot een statische web-app, behoort tot een of meer rollen. Er zijn twee ingebouwde rollen waartoe gebruikers kunnen behoren:
- anoniem: alle gebruikers behoren automatisch tot de anonieme rol.
- geverifieerd: alle gebruikers die zijn aangemeld, behoren tot de geverifieerde rol.
Naast de ingebouwde rollen kunt u aangepaste rollen toewijzen aan gebruikers en ernaar verwijzen in het staticwebapp.config.json-bestand .
Een gebruiker toevoegen aan een rol
Als u een gebruiker aan een rol wilt toevoegen, genereert u uitnodigingen waarmee u gebruikers aan specifieke rollen kunt koppelen. Rollen worden gedefinieerd en onderhouden in het staticwebapp.config.json-bestand .
Een uitnodiging maken
Uitnodigingen zijn specifiek voor afzonderlijke autorisatieproviders. Houd dus rekening met de behoeften van uw app wanneer u selecteert welke providers u wilt ondersteunen. Sommige providers stellen het e-mailadres van een gebruiker beschikbaar, terwijl anderen alleen de gebruikersnaam van de site opgeven.
Autorisatieprovider | Bloot |
---|---|
Microsoft Entra ID | e-mailadres |
GitHub | gebruikersnaam |
X | gebruikersnaam |
Gebruik de volgende stappen om een uitnodiging te maken.
- Ga naar een Static Web Apps-resource in Azure Portal.
- Selecteer onder Instellingen rolbeheer.
- Selecteer Uitnodigen.
- Selecteer een autorisatieprovider in de lijst met opties.
- Voeg de gebruikersnaam of het e-mailadres van de geadresseerde toe in het vak Details van genodigde .
- Voer voor GitHub en X de gebruikersnaam in. Voer voor alle anderen het e-mailadres van de geadresseerde in.
- Selecteer het domein van uw statische site in de vervolgkeuzelijst Domein .
- Het domein dat u selecteert, is het domein dat wordt weergegeven in de uitnodiging. Als er een aangepast domein aan uw site is gekoppeld, kiest u het aangepaste domein.
- Voeg een door komma's gescheiden lijst met rolnamen toe in het vak Rol .
- Voer het maximum aantal uren in dat de uitnodiging geldig moet blijven.
- De maximale limiet is 168 uur, dat is zeven dagen.
- Selecteer Genereren.
- Kopieer de koppeling vanuit het vak Uitnodigingskoppeling .
- Stuur een e-mail naar de uitnodigingskoppeling naar de gebruiker waartoe u toegang verleent.
Wanneer de gebruiker de koppeling in de uitnodiging selecteert, wordt hij of zij gevraagd zich aan te melden met het bijbehorende account. Nadat de gebruiker is aangemeld, is deze gekoppeld aan de geselecteerde rollen.
Let op
Zorg ervoor dat uw routeregels niet conflicteren met de geselecteerde verificatieproviders. Het blokkeren van een provider met een routeregel voorkomt dat gebruikers uitnodigingen accepteren.
Roltoewijzingen bijwerken
- Ga naar een Static Web Apps-resource in Azure Portal.
- Selecteer onder Instellingen rolbeheer.
- Selecteer de gebruiker in de lijst.
- Bewerk de lijst met rollen in het vak Rol .
- Selecteer Bijwerken.
Gebruiker verwijderen
- Ga naar een Static Web Apps-resource in Azure Portal.
- Selecteer onder Instellingen rolbeheer.
- Zoek de gebruiker in de lijst.
- Schakel het selectievakje in de rij van de gebruiker in.
- Selecteer Verwijderen.
Houd bij het verwijderen van een gebruiker rekening met de volgende items:
- Als u een gebruiker verwijdert, worden de machtigingen ongeldig.
- Wereldwijde doorgifte kan enkele minuten duren.
- Als de gebruiker weer aan de app wordt toegevoegd, worden de
userId
wijzigingen doorgevoerd.