Uw App Service- of Azure Functions-app configureren voor het gebruik van Microsoft Entra-aanmelding
Notitie
Vanaf 1 juni 2024 kunnen nieuw gemaakte App Service-apps een unieke standaardhostnaam genereren die gebruikmaakt van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net
. Voorbeeld: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
. Bestaande app-namen blijven ongewijzigd.
Zie het blogbericht over het maken van een web-app met een unieke standaardhostnaamvoor meer informatie.
Selecteer een andere verificatieprovider om daarnaartoe te gaan.
- Microsoft Entra
- X
- OpenID Connect-provider
- Aanmelden met Apple (voorbeeld)
In dit artikel leest u hoe u verificatie configureert voor Azure-app Service of Azure Functions, zodat uw app gebruikers aanmeldt met het Microsoft Identity Platform (Microsoft Entra) als verificatieprovider.
Kies een tenant voor uw toepassing en de bijbehorende gebruikers
Voordat uw toepassing gebruikers kan aanmelden, moet u deze registreren in een personeelstenant of een externe tenant. Als u uw app beschikbaar maakt voor werknemers of zakelijke gasten, registreert u uw app in een personeelstenant. Als uw app voor consumenten en zakelijke klanten is, registreert u deze in een externe tenant.
Meld u aan bij Azure Portal en ga naar uw app.
Selecteer in het linkermenu van uw app Instellingen>Authenticatie, en selecteer vervolgens Identiteitsprovider toevoegen.
Selecteer Op de pagina Een id-provider toevoegenMicrosoft als id-providerwaarde om Microsoft- en Microsoft Entra-identiteiten aan te melden.
Selecteer onder Kies een tenant voor uw toepassing en de bijbehorende gebruikers:
- Personeelsconfiguratie (huidige tenant) voor werknemers en zakelijke gasten
- Externe configuratie voor consumenten en zakelijke klanten
De app-registratie kiezen
De App Service-verificatiefunctie kan automatisch een app-registratie voor u maken. U kunt ook een registratie gebruiken die u of een adreslijstbeheerder afzonderlijk maakt.
Maak automatisch een nieuwe app-registratie, tenzij u een app-registratie afzonderlijk moet maken. U kunt de app-registratie later aanpassen in het Microsoft Entra-beheercentrum .
De volgende situaties zijn de meest voorkomende gevallen voor het gebruik van een bestaande app-registratie:
- Uw account heeft geen machtigingen voor het maken van app-registraties in uw Microsoft Entra-tenant.
- U wilt een app-registratie van een andere Microsoft Entra-tenant gebruiken dan de tenant die uw app bevat. Dit is altijd het geval als u externe configuratie hebt geselecteerd bij het kiezen van een tenant.
- De optie voor het maken van een nieuwe registratie is niet beschikbaar voor overheidsclouds.
Optie 1: Een nieuwe app-registratie maken en gebruiken
Selecteer Nieuwe app-registratie maken.
Voer bij Naam de naam in van de nieuwe app-registratie.
Selecteer de waarde van het ondersteunde accounttype :
- Huidige huurder - Enkelvoudige huurder. Alleen accounts in deze organisatiemap. Alle gebruikers- en gastaccounts in uw map kunnen gebruikmaken van uw toepassing of API. Gebruik deze optie als uw doelgroep zich binnen uw organisatie bevindt.
- Elke Microsoft Entra-directory - Multitenant. Accounts in elke organisatiemap. Alle gebruikers met een werk- of schoolaccount van Microsoft kunnen uw toepassing of API gebruiken. Deze accounts omvatten scholen en bedrijven die Gebruikmaken van Office 365. Gebruik deze optie als uw doelgroep zakelijke of educatieve klanten is en multitenancy mogelijk wilt maken.
- Alle Microsoft Entra-directory's en persoonlijke Microsoft-accounts. Accounts in een organisatiedirectory en persoonlijke Microsoft-accounts (bijvoorbeeld Skype of Xbox). Alle gebruikers met een werk- of schoolaccount of een persoonlijk Microsoft-account kunnen uw toepassing of API gebruiken. Het omvat scholen en bedrijven die Gebruikmaken van Office 365, samen met persoonlijke accounts die worden gebruikt om u aan te melden bij services zoals Xbox en Skype. Gebruik deze optie om gericht te zijn op de breedste set van Microsoft-identiteiten en om multitenancy te activeren.
- Persoonlijke Microsoft-accounts alleen. Persoonlijke accounts die worden gebruikt om u aan te melden bij services zoals Xbox en Skype. Gebruik deze optie om de breedste set Microsoft-identiteiten te targeten.
U kunt desgewenst de naam van de registratie of de ondersteunde accounttypen wijzigen.
Er wordt een clientgeheim gemaakt als een slot-sticky toepassingsinstelling genaamd MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
. Als u het geheim in Azure Key Vault wilt beheren, kunt u deze instelling later bijwerken om Key Vault-verwijzingen te gebruiken. U kunt dit ook wijzigen om een identiteit te gebruiken in plaats van een clientgeheim. Ondersteuning voor het gebruik van een identiteit is momenteel beschikbaar als preview-versie.
Optie 2: Gebruik een bestaande registratie die afzonderlijk is gemaakt
Als u een bestaande registratie wilt gebruiken, selecteert u:
Kies een bestaande app-registratie in deze map. Selecteer vervolgens een app-registratie in de vervolgkeuzelijst.
Geef de details op van een bestaande app-registratie. Geef vervolgens het volgende op:
Applicatie (client) ID.
Clientgeheim (aanbevolen). Een geheime waarde die door de toepassing wordt gebruikt om de identiteit te bewijzen wanneer er een token wordt aangevraagd. Deze waarde wordt opgeslagen in de configuratie van uw app als een slot-sticky app-instelling met de naam
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
. Als het clientgeheim niet is ingesteld, gebruiken aanmeldingsbewerkingen van de service de impliciete toekenningsstroom OAuth 2.0, die we niet aanbevelen.U kunt de toepassing ook configureren voor het gebruik van een identiteit in plaats van een clientgeheim. Ondersteuning voor het gebruik van een identiteit is momenteel beschikbaar als preview-versie.
URL van uitgever. Deze URL heeft de vorm
<authentication-endpoint>/<tenant-id>/v2.0
. Vervang door<authentication-endpoint>
de waarde van het verificatie-eindpunt die specifiek is voor de cloudomgeving. Een personeelstenant in globale Azure zou bijvoorbeeldhttps://sts.windows.net
als zijn verificatie-eindpunt gebruiken.
Als u handmatig een app-registratie in een werknemersomgeving moet maken, raadpleegt u Een toepassing registreren bij het Microsoft Identity Platform. Wanneer u het registratieproces doorloopt, moet u de waarden voor de toepassings-id (client) en clientgeheim noteren.
Tijdens het registratieproces, in de sectie Omleidings-URI's, selecteer Web voor het platform en geef <app-url>/.auth/login/aad/callback
in. Voer bijvoorbeeld https://contoso.azurewebsites.net/.auth/login/aad/callback
in.
Wijzig nu de app-registratie:
Selecteer in het linkerdeelvenster Een API beschikbaar maken>Toevoegen>Opslaan. Deze waarde identificeert de toepassing uniek wanneer deze wordt gebruikt als een resource, waarmee tokens die toegang verlenen, kunnen worden aangevraagd. De waarde is een voorvoegsel voor scopen die u aanmaakt.
Voor een app met één tenant kunt u de standaardwaarde gebruiken, die zich in het formulier bevindt
api://<application-client-id>
. U kunt ook een beter leesbare URI opgeven, zoalshttps://contoso.com/api
, op basis van een van de geverifieerde domeinen voor uw tenant. Voor een multitenant-app moet u een aangepaste URI opgeven. Zie de aanbevolen beveiligingsprocedures voor toepassingseigenschappen in Microsoft Entra ID voor meer informatie over geaccepteerde indelingen voor app-id-URI's.Selecteer Een bereik toevoegen en vervolgens:
- In de bereiknaam voert u user_impersonation in.
- In Wie kan toestemming geven, selecteert u Beheerders en gebruikers als u wilt toestaan dat gebruikers toestemming geven voor dit bereik.
- Voer de naam van het toestemmingsbereik in. Voer een beschrijving in die gebruikers moeten zien op de toestemmingspagina. Voer bijvoorbeeld de naam van deAccess-toepassing in.
- Selecteer Bereik toevoegen.
(Aanbevolen) Maak een clientbevestiging voor de app. Het cliëntgeheim aanmaken:
- Selecteer in het linkerdeelvenster
Certificaten & Geheimen Clientgeheimen Nieuw clientgeheim . - Voer een beschrijving en vervaldatum in en selecteer Vervolgens Toevoegen.
- Kopieer in het veld Waarde de waarde van het clientgeheim. Nadat u van deze pagina bent verwijderd, wordt deze niet meer weergegeven.
U kunt de toepassing ook configureren voor het gebruik van een identiteit in plaats van een clientgeheim. Ondersteuning voor het gebruik van een identiteit is momenteel beschikbaar als preview-versie.
- Selecteer in het linkerdeelvenster
(Optioneel) Als u meerdere antwoord-URL's wilt toevoegen, selecteert u Verificatie.
Aanvullende controles configureren
Aanvullende controles bepalen welke aanvragen toegang hebben tot uw toepassing. U kunt dit gedrag nu aanpassen of u kunt deze instellingen later aanpassen op de hoofdpagina voor verificatie door Bewerken naast verificatie-instellingen te selecteren.
Voor de vereiste clienttoepassing, kies of u het volgende wilt doen:
- Alleen aanvragen van deze toepassing zelf toestaan.
- Aanvragen van specifieke clienttoepassingen toestaan.
- Aanvragen van een toepassing toestaan (niet aanbevolen).
Kies voor identiteitsvereiste of u het volgende wilt doen:
- Aanvragen van elke identiteit toestaan.
- Aanvragen van specifieke identiteiten toestaan.
Voor tenantvereisten, kies of u het volgende wilt doen:
- Alleen verzoeken van de uitgevende tenant toestaan.
- Aanvragen van specifieke tenants toestaan.
- Gebruik standaardbeperkingen op basis van de verlener.
Uw app moet mogelijk nog andere autorisatiebeslissingen nemen in code. Zie Een ingebouwd autorisatiebeleid gebruiken verderop in dit artikel voor meer informatie.
Verificatie-instellingen configureren
Verificatie-instellingen bepalen hoe uw toepassing reageert op niet-geverifieerde aanvragen. De standaardselecties sturen alle verzoeken door om in te loggen bij deze nieuwe provider. U kunt dit gedrag nu aanpassen of u kunt deze instellingen later aanpassen op de hoofdpagina voor verificatie door Bewerken naast verificatie-instellingen te selecteren. Zie Verificatiestroom voor meer informatie.
Als u de toegang wilt beperken, moet u beslissen of u het volgende wilt doen:
- Authenticatie vereist.
- Niet-geverifieerde toegang toestaan.
Voor niet-geverifieerde aanvragen kiest u foutopties:
- HTTP
302 Found redirect
: aanbevolen voor websites - HTTP
401 Unauthorized
: aanbevolen voor API's - HTTP
403 Forbidden
- HTTP
404 Not found
Selecteer Tokenwinkel (aanbevolen). In het tokenarchief worden tokens voor uw toepassing verzameld, opgeslagen en vernieuwd. U kunt dit gedrag later uitschakelen als uw app geen tokens nodig heeft of als u de prestaties wilt optimaliseren.
De id-provider toevoegen
Als u de configuratie van werknemers hebt geselecteerd, kunt u Volgende selecteren: Machtigingen en eventuele Microsoft Graph-machtigingen toevoegen die de toepassing nodig heeft. Deze machtigingen worden toegevoegd aan de app-registratie, maar u kunt ze later ook wijzigen. Als u externe configuratie hebt geselecteerd, kunt u later Microsoft Graph-machtigingen toevoegen.
- Selecteer Toevoegen.
U bent nu klaar om het Microsoft Identity Platform te gebruiken voor verificatie in uw app. De provider wordt weergegeven op de pagina Verificatie . Van daaruit kunt u deze providerconfiguratie bewerken of verwijderen.
Zie App-verificatie toevoegen aan uw web-app voor een voorbeeld van het configureren van Microsoft Entra-aanmelding voor een web-app die toegang heeft tot Azure Storage en Microsoft Graph.
Aanvragen autoriseren
Standaard verwerkt App Service-verificatie alleen verificatie. Het bepaalt of de beller is wie ze zeggen dat ze zijn. Autorisatie, het bepalen of die beller toegang moet hebben tot een bepaalde resource, is een stap verder dan verificatie. Zie De basisprincipes van autorisatie voor meer informatie.
Uw app kan autorisatiebeslissingen nemen in code. App Service-verificatie biedt een aantal ingebouwde controles, wat kan helpen, maar ze alleen zijn mogelijk niet voldoende om de autorisatiebehoeften van uw app te dekken. In de volgende secties worden deze mogelijkheden besproken.
Tip
Multitenant-toepassingen moeten de uitgever en tenant-ID van de aanvraag valideren als onderdeel van dit proces om er zeker van te zijn dat de waarden toegestaan zijn. Wanneer App Service-verificatie is geconfigureerd voor een scenario met meerdere tenants, wordt niet gevalideerd van welke tenant de aanvraag afkomstig is. Een app moet mogelijk worden beperkt tot specifieke tenants, op basis van of de organisatie zich heeft geregistreerd voor de service (bijvoorbeeld). Zie Uw code bijwerken om meerdere uitgeverswaarden te verwerken.
Validaties uitvoeren vanuit toepassingscode
Wanneer u autorisatiecontroles uitvoert in uw app-code, kunt u de claimgegevens gebruiken die App Service-verificatie beschikbaar maakt. Zie Access-gebruikersclaims in app-code voor meer informatie.
De geïnjecteerde x-ms-client-principal
header bevat een Base64-gecodeerd JSON-object met de claims die over aanroeper zijn gesteld. Deze claims doorlopen standaard een claimtoewijzing, zodat de claimnamen mogelijk niet altijd overeenkomen met wat u in het token zou zien. De claim wordt bijvoorbeeld gemapt naar http://schemas.microsoft.com/identity/claims/tenantid
in plaats daarvan.
U kunt ook rechtstreeks met het onderliggende toegangstoken werken vanuit de geïnjecteerde x-ms-token-aad-access-token
header.
Een ingebouwd autorisatiebeleid gebruiken
De gemaakte app-registratie verifieert binnenkomende aanvragen voor uw Microsoft Entra-tenant. Standaard kan iedereen binnen de tenant toegang krijgen tot de toepassing. Deze aanpak is prima voor veel toepassingen. Sommige toepassingen moeten de toegang verder beperken door autorisatiebeslissingen te nemen.
Uw toepassingscode is vaak de beste plaats om aangepaste autorisatielogica te verwerken. Voor veelvoorkomende scenario's biedt het Microsoft Identity Platform echter ingebouwde controles die u kunt gebruiken om de toegang te beperken.
In deze sectie wordt beschreven hoe u ingebouwde controles kunt inschakelen met behulp van de App Service-verificatie-V2-API. Momenteel is de enige manier om deze ingebouwde controles te configureren met behulp van Azure Resource Manager-sjablonen of de REST API.
Binnen het API-object heeft de configuratie van de Microsoft Entra-id-provider een sectie die een validation
defaultAuthorizationPolicy
object kan bevatten, zoals wordt weergegeven in de volgende structuur:
{
"validation": {
"defaultAuthorizationPolicy": {
"allowedApplications": [],
"allowedPrincipals": {
"identities": []
}
}
}
}
Eigenschap | Beschrijving |
---|---|
defaultAuthorizationPolicy |
Aan een groep vereisten waaraan moet worden voldaan voor toegang tot de app. Toegang wordt verleend op basis van een logische AND waarde voor elk van de geconfigureerde eigenschappen. Wanneer allowedApplications en allowedPrincipals beide zijn geconfigureerd, moet de binnenkomende aanvraag voldoen aan beide vereisten om te worden geaccepteerd. |
allowedApplications |
Een acceptatielijst van client-id's voor tekenreekstoepassingen die de clientresource vertegenwoordigen die de app aanroepen. Wanneer deze eigenschap is geconfigureerd als een niet-lege matrix, worden alleen tokens geaccepteerd die zijn verkregen via een toepassing die in de lijst is opgegeven. Met dit beleid wordt de appid of azp claim van het binnenkomende token geëvalueerd. Dit moet een toegangstoken zijn. Zie Payload claims. |
allowedPrincipals |
Een groep controles die bepalen of de principal die de binnenkomende aanvraag vertegenwoordigt, toegang heeft tot de app. Tevredenheid van allowedPrincipals is gebaseerd op een logische OR over de geconfigureerde eigenschappen ervan. |
identities (onder allowedPrincipals ) |
Een acceptatielijst met tekenreeksobject-id's die gebruikers of toepassingen vertegenwoordigen die toegang hebben. Wanneer deze eigenschap is geconfigureerd als een niet-lege matrix, kan aan de allowedPrincipals vereiste worden voldaan als de gebruiker of toepassing die de aanvraag vertegenwoordigt, is gespecificeerd in de lijst. Er geldt een limiet van 500 tekens (totaal) in de lijst met identiteiten.Met dit beleid wordt de oid claim van het binnenkomende token geëvalueerd. Zie ladingaanspraken. |
U kunt ook enkele controles configureren via een toepassingsinstelling, ongeacht de API-versie die u gebruikt. U kunt de WEBSITE_AUTH_AAD_ALLOWED_TENANTS
toepassingsinstelling configureren met een door komma's gescheiden lijst met maximaal 10 tenant-id's, aaaabbbb-0000-cccc-1111-dddd2222eeee
bijvoorbeeld. Deze instelling kan vereisen dat het binnenkomende token afkomstig is van een van de opgegeven tenants, zoals opgegeven door de tid
claim.
U kunt de WEBSITE_AUTH_AAD_REQUIRE_CLIENT_SERVICE_PRINCIPAL
toepassingsinstelling configureren op true
of 1
, zodat het binnenkomende token een oid
claim moet bevatten. Als u deze instelling hebt geconfigureerd allowedPrincipals.identities
, wordt deze instelling genegeerd en behandeld als waar omdat de oid
claim wordt gecontroleerd op basis van deze opgegeven lijst met identiteiten.
Aanvragen die mislukken bij deze ingebouwde controles krijgen een HTTP-antwoord 403 Forbidden
.
Een beheerde identiteit gebruiken in plaats van een geheim (preview)
In plaats van een clientgeheim te configureren voor uw app-registratie, kunt u een toepassing configureren om een beheerde identiteit (preview) te vertrouwen. Als u een identiteit gebruikt in plaats van een geheim, hoeft u geen geheim te beheren. U hebt geen geheime verloop gebeurtenissen om af te handelen en u hebt niet hetzelfde risiconiveau dat is gekoppeld aan het mogelijk vrijgeven of lekken van dat geheim.
Met de identiteit kunt u een federatieve identiteitsreferentie maken, die kan worden gebruikt in plaats van een clientgeheim als clientverklaring. Deze benadering is alleen beschikbaar voor personeelsconfiguraties. De ingebouwde verificatiefunctie ondersteunt momenteel federatieve identiteitsgegevens als preview.
U kunt de stappen in deze sectie gebruiken om uw App Service- of Azure Functions-resource te configureren om dit patroon te gebruiken. In de volgende stappen wordt ervan uitgegaan dat u al een app-registratie hebt ingesteld met behulp van een van de ondersteunde methoden en dat u al een geheim hebt gedefinieerd.
Maak een door de gebruiker toegewezen beheerde identiteitresource volgens deze instructies.
Wijs die identiteit toe aan uw App Service- of Azure Functions-resource.
Belangrijk
De door de gebruiker toegewezen beheerde identiteit die u maakt, mag alleen worden toegewezen aan de App Service- of Azure Functions-toepassing via deze registratie. Als u de identiteit toewijst aan een andere resource, geeft u die resource onnodige toegang tot uw app-registratie.
Noteer de object-id en client-id-waarden van de beheerde identiteit. U hebt de object-id nodig om in de volgende stap een federatieve identiteitsreferentie te maken. In een latere stap gebruikt u de client-id van de beheerde identiteit.
Volg de instructies voor Microsoft Entra ID om een federatieve identiteitsreferentie voor een bestaande toepassing te configureren. Deze instructies bevatten ook secties voor het bijwerken van toepassingscode, die u kunt overslaan.
Voeg een nieuwe toepassingsinstelling toe met de naam
OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID
. Stel de waarde ervan in op de client-id-waarde van de beheerde identiteit die u in een vorige stap hebt verkregen. Gebruik de client-id van uw app-registratie niet. Zorg ervoor dat deze toepassingsinstelling als slot-sticky gemarkeerd is.Stel in de ingebouwde verificatie-instellingen voor uw app-resource de naam van de clientgeheiminstelling in op
OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID
.Ga als volgt te werk om deze wijziging aan te brengen met behulp van Azure Portal:
- Ga terug naar uw App Service- of Azure Functions-resource en selecteer het tabblad Verificatie .
- Selecteer in de sectie Id-provider voor het Microsoft-item het pictogram in de kolom Bewerken .
- Open in het dialoogvenster Id-provider bewerken de vervolgkeuzelijst voor de naam van de instelling clientgeheim en selecteer
OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID
. - Selecteer Opslaan.
Ga als volgt te werk om deze wijziging aan te brengen met behulp van de REST API:
- Stel de eigenschap
clientSecretSettingName
in opOVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID
. U vindt deze eigenschap onderproperties
azureActiveDirectory
>registration
identityProviders
>>.
Controleer of de toepassing werkt zoals verwacht. U moet een nieuwe aanmeldingsactie kunnen uitvoeren.
Wanneer u tevreden bent met het gedrag met behulp van een beheerde identiteit, verwijdert u het bestaande geheim:
Zorg ervoor dat uw app-code geen afhankelijkheid heeft van de toepassingsinstelling. Als dit het geval is, volgt u de instructies om uw toepassingscode bij te werken om een toegangstoken aan te vragen.
Verwijder de toepassingsinstelling die eerder uw geheime informatie bevatte. De naam van deze toepassingsinstelling is de naamwaarde van de vorige clientgeheiminstelling , voordat u deze instelt op
OVERRIDE_USE_MI_FIC_ASSERTION_CLIENTID
.Meld u aan bij het Microsoft Entra-beheercentrum met behulp van de tenant die uw app-registratie bevat. Ga opnieuw naar de app-registratie.
Selecteer onder Certificaten en geheimenclientgeheimen en verwijder het clientgeheim.
Uw app is nu geconfigureerd voor het gebruik van Microsoft Entra ID-verificatie zonder geheimen.
Client-apps configureren voor toegang tot App Service
In eerdere secties hebt u uw App Service- of Azure Functions-app geregistreerd om gebruikers te verifiëren. In de volgende secties wordt uitgelegd hoe u systeemeigen clients of daemon-apps registreert in Microsoft Entra. Deze clients of apps kunnen toegang aanvragen tot API's die door App Service worden weergegeven namens gebruikers of zichzelf, zoals in een architectuur met N-lagen. Als u alleen gebruikers wilt verifiëren, zijn de stappen in de volgende secties niet vereist.
Systeemeigen client
U kunt systeemeigen clients registreren om toegang te vragen tot de API's van uw App Service-app namens een aangemelde gebruiker:
Selecteer Microsoft Entra ID in het menu van Azure Portal.
In het linkerdeelvenster, selecteer beheren>App-registraties. Selecteer vervolgens Nieuwe registratie.
Voer in het deelvenster Een toepassing registreren bij Naam een naam in voor uw app-registratie.
Selecteer in Redirect URI de optie openbare client/systeemeigen (mobiel en desktop) en voer de URL
<app-url>/.auth/login/aad/callback
in. Voer bijvoorbeeldhttps://contoso.azurewebsites.net/.auth/login/aad/callback
in.Selecteer Registreren.
Nadat de app-registratie is gemaakt, kopieert u de waarde van de toepassings-id (client).
Notitie
Voor een Microsoft Store-toepassing gebruikt u in plaats daarvan de pakket-SID als de URI.
Selecteer Beheren>API-machtigingen in het linkerdeelvenster. Selecteer vervolgens Een machtiging toevoegen>Mijn API's.
Selecteer de app-registratie die u eerder hebt gemaakt voor uw App Service-app. Als u de app-registratie niet ziet, zorg ervoor dat het user_impersonation scope is toegevoegd in de app-registratie.
Onder Gedelegeerde Machtigingen selecteer user_impersonation en selecteer vervolgens machtigingen toevoegen.
U hebt nu een systeemeigen clienttoepassing geconfigureerd die namens een gebruiker toegang kan aanvragen tot uw App Service-app.
Daemon-clienttoepassing (service-naar-service-aanroepen)
In een N-tier-architectuur kan uw clienttoepassing een token verkrijgen om een App Service- of Azure Functions-app aan te roepen namens de client-app zelf, niet namens een gebruiker. Dit scenario is handig voor niet-interactieve daemon-toepassingen die taken uitvoeren zonder een aangemelde gebruiker. Het maakt gebruik van de standaard OAuth 2.0 clientreferenties-toekenning. Zie Microsoft Identity Platform en de OAuth 2.0-clientreferentiestroom voor meer informatie.
Selecteer Microsoft Entra ID in het menu van Azure Portal.
Selecteer in het linkerdeelvenster Beheren>App-registraties. Selecteer vervolgens Nieuwe registratie.
Voer in het deelvenster Een toepassing registreren bij Naam een naam in voor uw app-registratie.
Voor een daemon-toepassing hebt u geen omleidings-URI nodig, zodat u het vak Omleidings-URI leeg kunt houden.
Selecteer Registreren.
Nadat de app-registratie is gemaakt, kopieert u de waarde van de toepassings-id (client).
SelecteerCertificaten en geheimen beheren> in het linkerdeelvenster. Vervolgens Clientgeheimen>Nieuw clientgeheim selecteren.
Voer een beschrijving en vervaldatum in en selecteer Vervolgens Toevoegen.
Kopieer in het veld Waarde de waarde van het clientgeheim. Nadat u van deze pagina bent verwijderd, wordt deze niet meer weergegeven.
U kunt nu een toegangstoken aanvragen met behulp van de client-id en het clientgeheim. Stel de resource
parameter in op de URI-waarde van de toepassings-id van de doel-app. Het resulterende toegangstoken kan vervolgens worden gepresenteerd aan de doel-app via de standaard OAuth 2.0-autorisatieheader. App Service-verificatie valideert en gebruikt het token om aan te geven dat de beller is geverifieerd. In dit geval is de aanroeper een toepassing, niet een gebruiker.
Met deze methode kan elke clienttoepassing in uw Microsoft Entra-tenant een toegangstoken aanvragen en verifiëren bij de doel-app. Als u ook autorisatie wilt afdwingen om alleen bepaalde clienttoepassingen toe te staan, moet u extra configuratie uitvoeren.
Definieer een app-rol in het manifest van de app-registratie die de App Service- of Azure Functions-app vertegenwoordigt die u wilt beveiligen.
Selecteer in de app-registratie die de te autoriseren client vertegenwoordigt, API-machtigingen>Een machtiging toevoegen>Mijn API's.
Selecteer de app-registratie die u eerder hebt gemaakt. Als u de app-registratie niet ziet, controleert u of u een app-rol hebt toegevoegd.
Selecteer onder Toepassingsmachtigingen de app-rol die u eerder hebt gemaakt. Selecteer vervolgens Machtigingen toevoegen.
Selecteer Beheerderstoestemming verlenen om de clienttoepassing toestemming te geven om de machtiging aan te vragen.
Net als bij het vorige scenario (voordat u rollen hebt toegevoegd), kunt u nu een toegangstoken aanvragen voor dezelfde doelresource. Het toegangstoken bevat een
roles
claim die de app-rollen bevat die zijn geautoriseerd voor de clienttoepassing.
In de app-code van de doel-App Service of Azure Functions kunt u nu valideren dat het token de verwachte rollen heeft. App Service-verificatie voert deze validatie niet uit. Zie Access-gebruikersclaims in app-code voor meer informatie.
U hebt nu een daemon-clienttoepassing geconfigureerd die toegang heeft tot uw App Service-app met behulp van een eigen identiteit.
Beste praktijken
Ongeacht de configuratie die u gebruikt om verificatie in te stellen, houden de volgende aanbevolen procedures uw tenant en toepassingen veiliger:
- Configureer elke App Service-app met een eigen app-registratie in Microsoft Entra.
- Geef elke App Service-app zijn eigen machtigingen en toestemming.
- Vermijd het delen van machtigingen tussen omgevingen. Gebruik afzonderlijke app-registraties voor afzonderlijke implementatieslots. Wanneer u nieuwe code test, kan deze procedure helpen voorkomen dat problemen van invloed zijn op de productie-app.
Migreren naar Microsoft Graph
Sommige oudere apps kunnen worden ingesteld met een afhankelijkheid van Azure AD Graph, die is afgeschaft en gepland voor volledige buitengebruikstelling. Uw app-code kan bijvoorbeeld Azure AD Graph aanroepen om het groepslidmaatschap te controleren als onderdeel van een autorisatiefilter in een middleware-pijplijn. Apps moeten worden verplaatst naar Microsoft Graph. Zie Uw apps migreren van Azure AD Graph naar Microsoft Graph voor meer informatie.
Tijdens deze migratie moet u mogelijk enkele wijzigingen aanbrengen in uw configuratie van App Service-verificatie. Nadat u Microsoft Graph-machtigingen hebt toegevoegd aan uw app-registratie, kunt u het volgende doen:
Werk de URL-waarde van de uitgever bij om het
/v2.0
achtervoegsel op te nemen als dit nog niet het geval is.Verwijder aanvragen voor Azure AD Graph-machtigingen uit uw aanmeldingsconfiguratie. Welke eigenschappen u wilt wijzigen, is afhankelijk van de versie van de beheer-API die u gebruikt:
- Als u de V1-API (
/authsettings
) gebruikt, bevindt deze instelling zich in deadditionalLoginParams
matrix. - Als u de V2-API (
/authsettingsV2
) gebruikt, bevindt deze instelling zich in deloginParameters
matrix.
U moet bijvoorbeeld een verwijzing naar
https://graph.windows.net
verwijderen. Deze wijziging omvat deresource
parameter die het/v2.0
eindpunt niet ondersteunt. Het omvat ook scopen die u specifiek aanvraagt van Azure AD Graph.U moet ook de configuratie bijwerken om de nieuwe Microsoft Graph-machtigingen aan te vragen die u hebt ingesteld voor de registratie van de toepassing. In veel gevallen kunt u het standaardbereik gebruiken om deze installatie te vereenvoudigen. Voeg hiervoor een nieuwe aanmeldingsparameter toe:
scope=openid profile email https://graph.microsoft.com/.default
.- Als u de V1-API (
Wanneer App Service-verificatie zich probeert aan te melden, worden met deze wijzigingen geen machtigingen meer aangevraagd voor Azure AD Graph. In plaats daarvan krijgt het een token voor Microsoft Graph. Elk gebruik van dat token vanuit uw toepassingscode moet ook worden bijgewerkt, zoals beschreven in Uw apps migreren van Azure AD Graph naar Microsoft Graph.
Verwante inhoud
- Verificatie en autorisatie in Azure-app Service en Azure Functions
- Zelfstudie: Gebruikers van begin tot eind verifiëren en autoriseren in Azure App Service