Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Från och med den 1 maj 2025 är Azure AD B2C inte längre tillgängligt att köpa för nya kunder. Läs mer i våra vanliga frågor och svar.
Innan du börjar använder du väljaren Välj en principtyp överst på den här sidan för att välja den typ av princip som du konfigurerar. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln skiljer sig åt för varje metod.
Beviljandeflödet för OAuth 2.0-klientautentiseringsuppgifter gör det möjligt för en app (konfidentiell klient) att använda sina egna autentiseringsuppgifter, i stället för att personifiera en användare, för att autentisera när webbresursen anropas, till exempel REST API. Den här typen av beviljande används ofta för server-till-server-interaktioner som måste köras i bakgrunden, utan omedelbar interaktion med en användare. Dessa typer av program kallas ofta för daemoner eller tjänstkonton.
I flödet för klientautentiseringsuppgifter beviljas behörigheter direkt till själva programmet av en administratör. När appen visar en token för en resurs framtvingar resursen att själva appen har behörighet att utföra en åtgärd eftersom det inte finns någon användare som är involverad i autentiseringen. Den här artikeln beskriver de steg som krävs för att auktorisera ett program att anropa ett API och hur du hämtar de token som behövs för att anropa API:et.
Anmärkning
Den här funktionen tillhandahålls som en offentlig förhandsversion.
Översikt över appregistrering
Om du vill att din app ska kunna logga in med klientautentiseringsuppgifter och sedan anropa ett webb-API registrerar du två program i Azure AD B2C-katalogen.
Programregistreringen gör det möjligt för din app att logga in med Azure AD B2C. Appregistreringsprocessen genererar ett program-ID, även kallat klient-ID, som unikt identifierar din app. Du kan också skapa en klienthemlighet som din app använder för att på ett säkert sätt hämta token.
Med registreringen av webb-API :et kan din app anropa ett säkert webb-API. Registreringen innehåller webb-API-omfång. Omfången ger ett sätt att hantera behörigheter till skyddade resurser, till exempel ditt webb-API. Sedan ger du din applikation behörighet till webb-API:ets åtkomst. När en åtkomsttoken begärs anger din app omfångsparametern
.defaultför begäran. Azure AD B2C returnerar de webb-API-omfång som beviljats din app.
Apparkitekturen och registreringarna illustreras i följande diagram:
Steg 1: Registrera webb-API-appen
I det här steget registrerar du webb-API:et (App 2) med dess omfång. Senare ger du din applikation (App 1) behörighet till dessa omfattningar. Om du redan har en sådan appregistrering hoppar du över det här steget och går sedan vidare till nästa, Steg 1.1 Definiera webb-API-roller (omfång).
För att skapa appregistreringen för webb-API (App-ID: 2), gör följande:
Logga in på Azure-portalen.
Kontrollera att du använder katalogen som innehåller din Azure AD B2C-klientorganisation. Välj ikonen Kataloger + prenumerationer i portalens verktygsfält.
I portalinställningarna | Sidan Kataloger + prenumerationer, leta upp din Azure AD B2C-katalog i listan Katalognamn och välj sedan Växla.
I Azure Portal söker du efter och väljer Azure AD B2C.
Välj Appregistreringaroch välj sedan Ny registrering.
Som Namn anger du ett namn för programmet (till exempel my-api1). Lämna standardvärdena för omdirigerings-URI och kontotyper som stöds.
Välj Registrera.
När appregistreringen är klar väljer du Översikt.
Registrera program-ID-värdet (klient) för senare användning när du konfigurerar webbprogrammet.
Steg 1.1: Definiera webb-API-roller (omfång)
I det här steget konfigurerar du webb-API::ets program-ID-URI och definierar därefter Approller.
Approllerna, som används av OAuth 2.0-omfången och definieras i en programregistrering som representerar ditt API. Ditt program använder program-ID-URI:n med omfånget .default . Följ dessa steg för att definiera roller för appar:
Välj det webb-API som du skapade, till exempel my-api1.
Under Hantera, välj Exponera ett API.
Bredvid Program-ID-URI väljer du länken Ange . Ersätt standardvärdet (GUID) med ett unikt namn (till exempel api) och välj sedan Spara.
Kopiera program-ID-URI:n. Följande skärmbild visar hur du kopierar program-ID-URI:n.
Under Hantera väljer du Manifest för att öppna programmanifestredigeraren. Leta upp
appRolesinställningen i redigeraren och definiera approller som är inriktade påapplications. Varje approlldefinition måste ha en globalt unik identifierare (GUID) för sittidvärde. Generera ett nytt GUID genom att köranew-guidkommandot i Microsoft PowerShell eller en GUID-generator online. Egenskapenvalueför varje approlldefinition visas i omfångetscp-anspråket. Egenskapenvaluefår inte innehålla blanksteg. I följande exempel visas två applikationsroller, läs och skriv:"appRoles": [ { "allowedMemberTypes": ["Application"], "displayName": "Read", "id": "d6a15e20-f83c-4264-8e61-5082688e14c8", "isEnabled": true, "description": "Readers have the ability to read tasks.", "value": "app.read" }, { "allowedMemberTypes": ["Application"], "displayName": "Write", "id": "204dc4ab-51e1-439f-8c7f-31a1ebf3c7b9", "isEnabled": true, "description": "Writers have the ability to create tasks.", "value": "app.write" }],Längst upp på sidan väljer du Spara för att spara manifeständringarna.
Steg 2: Registrera ett program
Om du vill göra det möjligt för din app att logga in med Azure AD B2C med hjälp av flödet för klientautentiseringsuppgifter kan du använda ett befintligt program eller registrera ett nytt (app 1).
Om du använder en befintlig app, se till att appens accessTokenAcceptedVersion är inställd på 2:
- I Azure Portal söker du efter och väljer Azure AD B2C.
- Välj Appregistreringar och välj sedan din befintliga app i listan.
- I den vänstra menyn, under Hantera, väljer du Manifest för att öppna manifestredigeraren.
- Leta upp elementet
accessTokenAcceptedVersionoch ange dess värde till2. - Längst upp på sidan väljer du Spara för att spara ändringarna.
Följ dessa steg om du vill skapa en ny webbappregistrering:
I Azure-portalen söker du efter och väljer Azure AD B2C-
Välj Appregistreringaroch välj sedan Ny registrering.
Ange ett namn för programmet. Till exempel ClientCredentials_app.
Lämna de andra värdena som de är och välj sedan Registrera.
Notera Program (klient) ID för användning i ett senare steg.
Steg 2.1: Skapa en klienthemlighet
Skapa en klienthemlighet för det registrerade programmet. Din app använder klienthemligheten för att bevisa sin identitet när den begär token.
Under Hantera väljer du Certifikat och hemligheter.
Välj Ny klienthemlighet.
I rutan Beskrivning anger du en beskrivning av klienthemligheten (till exempel clientsecret1).
Under Upphör att gälla väljer du en varaktighet för vilken hemligheten är giltig och väljer sedan Lägg till.
Registrera hemlighetens värde. Du använder det här värdet för konfiguration i ett senare steg.
Steg 2.2: Ge appen behörigheter för webb-API:et
Följ dessa steg för att ge din app (app 1) behörighet:
Välj Appregistreringar och välj sedan den app som du skapade (App 1).
Under Hantera väljer du API-behörigheter.
Under Konfigurerade behörigheter väljer du Lägg till en behörighet.
Välj fliken Mina API:er .
Välj det API (app 2) som webbprogrammet ska beviljas åtkomst till. Ange till exempel my-api1.
Välj Programbehörighet.
Under Behörighet expanderar du app och väljer sedan de omfång som du definierade tidigare (till exempel app.read och app.write).
Välj Lägg till behörigheter.
Välj Bevilja administratörsmedgivande för <ditt klientnamn>.
Välj Ja.
Välj Uppdatera och kontrollera sedan att Beviljad för ... visas under Status för båda omfången.
Steg 3: Hämta en åtkomsttoken
Det finns inga specifika åtgärder för att aktivera klientautentiseringsuppgifter för användarflöden eller anpassade principer. Både Azure AD B2C-användarflöden och anpassade principer stöder flödet för klientautentiseringsuppgifter. Om du inte redan har gjort det skapar du ett användarflöde eller en anpassad princip. Använd sedan ditt favoritprogram för API-utveckling för att generera en auktoriseringsbegäran. Skapa ett anrop som det här exemplet med följande information som brödtext för POST-begäran:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy>/oauth2/v2.0/token
- Ersätt
<tenant-name>med namnet på din Azure AD B2C-klientorganisation. Till exempelcontoso.b2clogin.com. - Ersätt
<policy>med det fullständiga namnet på ditt användarflöde eller din anpassade princip. Observera att alla typer av användarflöden och anpassade principer stöder flöde för klientautentiseringsuppgifter. Du kan använda valfritt användarflöde eller anpassad princip som du har, eller skapa en ny, till exempel registrering eller inloggning.
| Nyckel | Värde |
|---|---|
| tilldelningstyp | client_credentials |
| klient-id | Klient-ID:t från steg 2: Registrera ett program. |
| klienthemlighet | Värdet för klienthemlighet från Steg 2.1: Skapa en klienthemlighet. |
| omfattning |
Program-ID-URI:n från steg 1.1: Definiera webb-API-roller (omfång) och .default. Till exempel https://contoso.onmicrosoft.com/api/.default, eller https://contoso.onmicrosoft.com/00001111-aaaa-2222-bbbb-3333cccc4444/.default. |
Den faktiska POST-begäran ser ut som i följande exempel:
Begäran:
POST /<tenant-name>.onmicrosoft.com/B2C_1A_SUSI/oauth2/v2.0/token HTTP/1.1
Host: <tenant-name>.b2clogin.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=11112222-bbbb-3333-cccc-4444dddd5555
&client_secret=FyX7Q~DuPJ...
&scope=https%3A%2F%2Fcontoso.onmicrosoft.com%2Fapi%2F.default
Svar:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5OZDlnUkNWWUc2dUs...",
"token_type": "Bearer",
"not_before": 1645172292,
"expires_in": 3600,
"expires_on": 1645175892,
"resource": "11112222-bbbb-3333-cccc-4444dddd5555"
}
Lär dig mer om anspråk för returåtkomsttoken . I följande tabell visas de anspråk som är relaterade till flödet för klientautentiseringsuppgifter.
| Anspråk | Beskrivning | Värde |
|---|---|---|
aud |
Identifierar den avsedda mottagaren av token. | Klient-ID för API:et. |
sub |
Tjänstens huvudnamn associeras med det program som initierade begäran. | Det är tjänstens huvudnamn för client_id auktoriseringsbegäran. |
azp |
Behörig part – den part som åtkomsttoken utfärdades till. |
Klient-ID för det program som initierade begäran. Det är samma värde som client_id du angav i auktoriseringsbegäran. |
scp |
Den uppsättning omfång som exponeras av ditt program-API (blankstegsavgränsare). | I flödet för klientautentiseringsuppgifter frågar auktoriseringsbegäran efter omfånget .default , medan token innehåller listan över omfång som exponeras (och godkänns av appadministratören) av API:et. Till exempel app.read app.write. |
Steg 3.1: Hämta en åtkomsttoken med skript
Använd följande PowerShell-skript för att testa konfigurationen:
$appId = "<client ID>"
$secret = "<client secret>"
$endpoint = "https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy>/oauth2/v2.0/token"
$scope = "<Your API id uri>/.default"
$body = "grant_type=client_credentials&scope=" + $scope + "&client_id=" + $appId + "&client_secret=" + $secret
$token = Invoke-RestMethod -Method Post -Uri $endpoint -Body $body
Använd följande cURL-skript för att testa konfigurationen:
curl --location --request POST 'https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/<policy>/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--form 'grant_type="client_credentials"' \
--form 'client_id="<client ID>"' \
--form 'client_secret="<client secret>"' \
--form 'scope="<Your API id uri>/.default"'
Steg 4: Anpassa token
Den här funktionen är endast tillgänglig för anpassade principer. För installationsinstruktioner väljer du Anpassad princip i ovanstående väljare.
Anpassade policyer ger ett sätt att utöka processen för utfärdande av token. Om du vill anpassa användarresan för OAuth 2.0-klientautentiseringsuppgifterna följer du anvisningarna för hur du konfigurerar en användarresa för klientautentiseringsuppgifter. I den JwtIssuer tekniska profilen lägger du sedan till ClientCredentialsUserJourneyId metadata med en referens till den användarresa som du skapade.
I följande exempel visas hur du lägger till ClientCredentialsUserJourneyId till den tekniska profilen för tokenutfärdare.
<TechnicalProfile Id="JwtIssuer">
<Metadata>
<Item Key="ClientCredentialsUserJourneyId">ClientCredentialsJourney</Item>
</Metadata>
</TechnicalProfile>
I följande exempel visas en användares resa med klientens autentiseringsuppgifter. Det första och det sista orkestreringssteget krävs.
<UserJourneys>
<UserJourney Id="ClientCredentialsJourney">
<OrchestrationSteps>
<!-- [Required] Do the client credentials -->
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="ClientCredSetupExchange" TechnicalProfileReferenceId="ClientCredentials_Setup" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- [Optional] Call a REST API or claims transformation -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="TokenAugmentation" TechnicalProfileReferenceId="TokenAugmentation" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- [Required] Issue the access token -->
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
</UserJourneys>