Konfigurera en anpassad anspråksprovider för en tokenutfärdingshändelse
Den här artikeln beskriver hur du konfigurerar en anpassad anspråksprovider för en starthändelse för tokenutfärdning. Med hjälp av ett befintligt REST-API för Azure Functions registrerar du ett anpassat autentiseringstillägg och lägger till attribut som du förväntar dig att det ska parsa från rest-API:et. Om du vill testa tillägget för anpassad autentisering registrerar du ett OpenID Connect-exempelprogram för att hämta en token och visa anspråken.
Förutsättningar
- En Azure-prenumeration med möjlighet att skapa Azure Functions. Om du inte har ett befintligt Azure-konto registrerar du dig för en kostnadsfri utvärderingsversion eller använder dina Visual Studio-prenumerationsförmåner när du skapar ett konto.
- En HTTP-utlösarfunktion som konfigurerats för en tokenutfärdingshändelse som distribuerats till Azure Functions. Om du inte har något följer du stegen i skapa ett REST API för en tokenutfärdarstarthändelse i Azure Functions.
- En grundläggande förståelse av de begrepp som beskrivs i översikten över anpassade autentiseringstillägg.
- En Microsoft Entra-ID-klientorganisation. Du kan använda antingen en kund- eller personalklientorganisation för den här instruktionsguiden.
- För externa klienter använder du ett användarflöde för registrering och inloggning.
Steg 1: Registrera ett anpassat autentiseringstillägg
Nu ska du konfigurera ett anpassat autentiseringstillägg som ska användas av Microsoft Entra-ID för att anropa din Azure-funktion. Det anpassade autentiseringstillägget innehåller information om rest-API-slutpunkten, de anspråk som det parsar från rest-API:et och hur du autentiserar till rest-API:et. Följ de här stegen för att registrera ett anpassat autentiseringstillägg till azure-funktionsappen.
Kommentar
Du kan ha högst 100 anpassade tilläggsprinciper.
Registrera ett anpassat autentiseringstillägg
- Logga in på Azure-portalen som minst programadministratör och autentiseringsadministratör.
- Sök efter och välj Microsoft Entra-ID och välj Företagsprogram.
- Välj Anpassade autentiseringstillägg och välj sedan Skapa ett anpassat tillägg.
- I Grundläggande väljer du händelsetypen TokenIssuanceStart och väljer Nästa.
- Fyll i följande egenskaper i Slutpunktskonfiguration:
- Namn – Ett namn på ditt anpassade autentiseringstillägg. Till exempel tokenutfärdingshändelse.
- Mål-URL – Url:en för
{Function_Url}
din Azure-funktion. Gå till sidan Översikt för azure-funktionsappen och välj sedan den funktion som du skapade. På funktionsöversiktssidan väljer du Hämta funktions-URL och använder kopieringsikonen för att kopiera url:en för customauthenticationextension_extension (systemnyckel). - Beskrivning – En beskrivning av dina anpassade autentiseringstillägg.
- Välj Nästa.
- I API-autentisering väljer du alternativet Skapa ny appregistrering för att skapa en appregistrering som representerar din funktionsapp.
- Ge appen ett namn, till exempel API för Azure Functions-autentiseringshändelser.
- Välj Nästa.
- I Anspråk anger du de attribut som du förväntar dig att ditt anpassade autentiseringstillägg ska parsa från rest-API:et och sammanfogas till token. Lägg till följande anspråk:
- dateOfBirth
- customRoles
- apiVersion
- correlationId
- Välj Nästa och sedan Skapa, som registrerar det anpassade autentiseringstillägget och den associerade programregistreringen.
- Observera app-ID :t under API-autentisering, som behövs för att konfigurera autentisering för din Azure-funktion i azure-funktionsappen.
1.2 Bevilja administratörsmedgivande
När det anpassade autentiseringstillägget har skapats måste du bevilja behörigheter till API:et. Det anpassade autentiseringstillägget använder client_credentials
för att autentisera till Azure-funktionsappen med hjälp av behörigheten Receive custom authentication extension HTTP requests
.
Öppna sidan Översikt för ditt nya anpassade autentiseringstillägg. Anteckna app-ID:t under API-autentisering, eftersom det behövs när du lägger till en identitetsprovider.
Under API-autentisering väljer du Bevilja behörighet.
Ett nytt fönster öppnas och när det har loggat in begär det behörigheter för att ta emot HTTP-begäranden för anpassat autentiseringstillägg. Detta gör att det anpassade autentiseringstillägget kan autentisera till ditt API. Välj Godkänn.
Steg 2: Konfigurera en OpenID Connect-app för att ta emot berikade token
Om du vill hämta en token och testa tillägget för anpassad autentisering kan du använda https://jwt.ms appen. Det är ett Microsoft-ägt webbprogram som visar det avkodade innehållet i en token (innehållet i token lämnar aldrig webbläsaren).
2.1 Registrera ett testwebbprogram
Följ dessa steg för att registrera jwt.ms webbappen:
På sidan Start i Azure-portalen väljer du Microsoft Entra-ID.
Välj Appregistreringar>Ny registrering.
Ange ett namn för programmet. Till exempel Mitt testprogram.
Under Kontotyper som stöds väljer du Endast Konton i den här organisationskatalogen.
I listrutan Välj en plattform i Omdirigerings-URI väljer du Webb och anger
https://jwt.ms
sedan i textrutan URL.Välj Registrera för att slutföra appregistreringen.
På sidan Översikt för din appregistrering kopierar du program-ID:t (klient). App-ID:t kallas
{App_to_enrich_ID}
i senare steg. I Microsoft Graph refereras den av egenskapen appId .
2.2 Aktivera implicit flöde
Det jwt.ms testprogrammet använder det implicita flödet. Aktivera implicit flöde i registreringen av mitt testprogram :
- Under Hantera väljer du Autentisering.
- Under Implicit beviljande och hybridflöden markerar du kryssrutan ID-token (används för implicita flöden och hybridflöden).
- Välj Spara.
2.3 Aktivera din app för en princip för anspråksmappning
En princip för anspråksmappning används för att välja vilka attribut som returneras från det anpassade autentiseringstillägget som mappas till token. Om du vill tillåta att token utökas måste du uttryckligen aktivera programregistreringen för att acceptera mappade anspråk:
- I registreringen av mitt testprogram går du till Hantera och väljer Manifest.
- Leta upp attributet i
acceptMappedClaims
manifestet och ange värdet tilltrue
. - Ange
accessTokenAcceptedVersion
till2
. - Välj Spara för att spara ändringarna.
Följande JSON-kodfragment visar hur du konfigurerar dessa egenskaper.
{
"id": "22222222-0000-0000-0000-000000000000",
"acceptMappedClaims": true,
"accessTokenAcceptedVersion": 2,
...
}
Varning
Ange acceptMappedClaims
inte egenskapen till true
för appar med flera klientorganisationer, vilket kan göra det möjligt för skadliga aktörer att skapa principer för anspråksmappning för din app. Konfigurera i stället en anpassad signeringsnyckel.
Fortsätt till nästa steg: Tilldela en anpassad anspråksprovider till din app.
Steg 3: Tilldela en anpassad anspråksprovider till din app
För att token ska utfärdas med anspråk som inkommande från det anpassade autentiseringstillägget måste du tilldela en anpassad anspråksprovider till ditt program. Detta baseras på token-målgruppen, så providern måste tilldelas till klientprogrammet för att ta emot anspråk i en ID-token och till resursprogrammet för att ta emot anspråk i en åtkomsttoken. Providern för anpassade anspråk förlitar sig på det anpassade autentiseringstillägget som konfigurerats med tokenutfärdarens starthändelselyssnare . Du kan välja om alla, eller en delmängd av anspråk, från den anpassade anspråksprovidern ska mappas till token.
Kommentar
Du kan bara skapa 250 unika tilldelningar mellan program och anpassade tillägg. Om du vill använda samma anpassade tilläggsanrop för flera appar rekommenderar vi att du använder authenticationEventListeners Microsoft Graph API för att skapa lyssnare för flera program. Detta stöds inte i Azure-portalen.
Följ de här stegen för att ansluta programmet Mitt test med ditt anpassade autentiseringstillägg:
Tilldela det anpassade autentiseringstillägget som en källa för en anpassad anspråksprovider.
På sidan Start i Azure-portalen väljer du Microsoft Entra-ID.
VäljFöretagsprogram och välj sedan Alla program under Hantera. Leta upp och välj Mitt testprogram i listan.
Gå till Hantera på översiktssidan i mitt testprogram och välj Enkel inloggning.
Under Attribut och anspråk väljer du Redigera.
Expandera menyn Avancerade inställningar.
Bredvid Anpassad anspråksprovider väljer du Konfigurera.
Expandera listrutan Anpassad anspråksprovider och välj händelsen Tokenutfärdande som du skapade tidigare.
Välj Spara.
Tilldela sedan attributen från den anpassade anspråksprovidern, som ska utfärdas till token som anspråk:
Välj Lägg till nytt anspråk för att lägga till ett nytt anspråk. Ange ett namn på det anspråk som du vill utfärda, till exempel dateOfBirth.
Under Källa väljer du Attribut och väljer customClaimsProvider.dateOfBirth i listrutan Källattribut .
Välj Spara.
Upprepa den här processen för att lägga till attributen customClaimsProvider.customRoles, customClaimsProvider.apiVersion och customClaimsProvider.correlationId och motsvarande namn. Det är en bra idé att matcha namnet på anspråket med namnet på attributet.
Steg 4: Skydda din Azure-funktion
Microsoft Entra-tillägget för anpassad autentisering använder server-till-server-flöde för att hämta en åtkomsttoken som skickas i HTTP-huvudet till din Azure-funktion Authorization
. När du publicerar din funktion till Azure, särskilt i en produktionsmiljö, måste du verifiera token som skickas i auktoriseringshuvudet.
Om du vill skydda din Azure-funktion följer du de här stegen för att integrera Microsoft Entra-autentisering för att verifiera inkommande token med din Api-programregistrering för Azure Functions-autentiseringshändelser. Välj någon av följande flikar baserat på din klienttyp.
Kommentar
Om Azure-funktionsappen finns i en annan Azure-klientorganisation än den klient där ditt anpassade autentiseringstillägg är registrerat väljer du fliken Öppna ID Connect .
4.1 Använda Microsoft Entra-identitetsprovider
Använd följande steg för att lägga till Microsoft Entra som identitetsprovider i azure-funktionsappen.
I Azure-portalen letar du upp och väljer den funktionsapp som du tidigare publicerade.
Under Inställningar väljer du Autentisering.
Välj Lägg till identitetsprovider.
Välj Microsoft som identitetsprovider.
Välj Personal som klientorganisationstyp.
Under Appregistrering väljer du Välj en befintlig appregistrering i den här katalogen för appregistreringstypen och välj api-appregistreringen för Azure Functions-autentiseringshändelser som du skapade tidigare när du registrerade den anpassade anspråksprovidern.
Ange följande utfärdar-URL, ,
https://login.microsoftonline.com/{tenantId}/v2.0
där{tenantId}
är klientorganisations-ID:t för din arbetsstyrkas klientorganisation.Under Krav för klientprogram väljer du Tillåt begäranden från specifika klientprogram och anger
99045fe1-7639-4a75-9d4a-577b6ca3810f
.Under Krav för klientorganisation väljer du Tillåt begäranden från specifika klienter och anger ditt klient-ID för anställda.
Under Oautentiserade begäranden väljer du HTTP 401 Obehörig som identitetsprovider.
Avmarkera alternativet Tokenlagring .
Välj Lägg till för att lägga till autentisering i din Azure-funktion.
4.2 Använda OpenID Connect-identitetsprovider
Om du har konfigurerat Microsofts identitetsprovider hoppar du över det här steget. Om Azure-funktionen annars finns i en annan klientorganisation än klientorganisationen där ditt anpassade autentiseringstillägg är registrerat följer du dessa steg för att skydda din funktion:
Skapa en klienthemlighet
- På startsidan i Azure-portalen väljer du Appregistreringar för Microsoft Entra-ID>.
- Välj api-appregistreringen för Azure Functions-autentiseringshändelser som du skapade tidigare.
- Välj Certifikat och hemligheter>Klienthemligheter>Ny klienthemlighet.
- Välj en förfallotid för hemligheten eller ange en anpassad livslängd, lägg till en beskrivning och välj Lägg till.
- Registrera hemlighetens värde för användning i klientprogramkoden. Hemlighetens värde visas aldrig igen när du har lämnat den här sidan.
Lägg till OpenID Connect-identitetsprovidern i azure-funktionsappen.
Leta upp och välj den funktionsapp som du publicerade tidigare.
Under Inställningar väljer du Autentisering.
Välj Lägg till identitetsprovider.
Välj OpenID Connect som identitetsprovider.
Ange ett namn, till exempel Contoso Microsoft Entra-ID.
Under posten Metadata anger du följande URL till dokument-URL:en. Ersätt med ditt Klient-ID för
{tenantId}
Microsoft Entra.https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
Under Appregistrering anger du program-ID (klient-ID) för api-appregistreringen för Azure Functions-autentiseringshändelser som du skapade tidigare.
Gå tillbaka till Azure-funktionen under Appregistreringen och ange klienthemligheten.
Avmarkera alternativet Tokenlagring .
Välj Lägg till för att lägga till OpenID Connect-identitetsprovidern.
Steg 5: Testa programmet
Följ dessa steg för att testa din anpassade anspråksprovider:
Öppna en ny privat webbläsare och navigera och logga in via följande URL.
https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize?client_id={App_to_enrich_ID}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&state=12345&nonce=12345
Ersätt
{tenantId}
med ditt klientorganisations-ID, klientnamn eller något av dina verifierade domännamn. Exempel:contoso.onmicrosoft.com
Ersätt
{App_to_enrich_ID}
med klient-ID för mitt testprogram .När du har loggat in visas din avkodade token på
https://jwt.ms
. Kontrollera att anspråken från Azure-funktionen visas i den avkodade token, till exempeldateOfBirth
.