Konfigurera token i Azure Active Directory B2C

Innan du börjar använder du väljaren Välj en principtyp 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.

I den här artikeln får du lära dig hur du konfigurerar livslängden och kompatibiliteten för en token i Azure Active Directory B2C (Azure AD B2C).

Förutsättningar

Beteende för tokenlivslängd

Du kan konfigurera tokens livslängd, inklusive:

  • Livslängd för åtkomst- och ID-token (minuter) – livslängden för OAuth 2.0-ägartoken och ID-token. Standardvärdet är 60 minuter (1 timme). Minimivärdet (inklusive) är 5 minuter. Maximalt (inklusive) är 1 440 minuter (24 timmar).
  • Livslängd för uppdateringstoken (dagar) – Den maximala tidsperiod innan en uppdateringstoken kan användas för att hämta en ny åtkomsttoken, om ditt program hade beviljats omfånget offline_access . Standardvärdet är 14 dagar. Minimivärdet (inklusive) är en dag. Maximalt (inkluderande) 90 dagar.
  • Livslängd för skjutfönster för uppdateringstoken – skjutfönstertypen för uppdateringstoken. Bounded anger att uppdateringstoken kan utökas enligt vad som anges i Livslängdslängd (dagar). No expiry anger att livslängden för skjutfönstret för uppdateringstoken aldrig upphör att gälla.
  • Livslängd (dagar) – Efter den här tidsperioden tvingas användaren att autentisera igen, oavsett giltighetsperioden för den senaste uppdateringstoken som hämtats av programmet. Värdet måste vara större än eller lika med livslängdsvärdet för uppdateringstoken.

Följande diagram visar livslängdsbeteendet för uppdateringstokens glidande fönster.

Refresh token lifetime

Kommentar

Ensidesprogram som använder auktoriseringskodflödet med PKCE har alltid en livslängd på 24 timmar för uppdateringstoken medan mobilappar, skrivbordsappar och webbappar inte upplever den här begränsningen. Läs mer om säkerhetskonsekvenserna av uppdateringstoken i webbläsaren.

Konfigurera tokenlivslängd

Så här konfigurerar du livslängden för användarflödestoken:

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klient från menyn Kataloger + prenumerationer.
  3. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.
  4. Välj Användarflöden (principer).
  5. Öppna användarflödet som du skapade tidigare.
  6. Välj Egenskaper.
  7. Under Tokens livslängd justerar du egenskaperna så att de passar programmets behov.
  8. Välj Spara.

configure user flows tokens in Azure portal.

Om du vill ändra inställningarna för din tokenkompatibilitet anger du metadata för tokenutfärdarens tekniska profil i tillägget eller den förlitande partfilen för principen som du vill påverka. Den tekniska profilen för token utfärdare ser ut som i följande exempel:

<ClaimsProviders>
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="JwtIssuer">
        <Metadata>
          <Item Key="token_lifetime_secs">3600</Item>
          <Item Key="id_token_lifetime_secs">3600</Item>
          <Item Key="refresh_token_lifetime_secs">1209600</Item>
          <Item Key="rolling_refresh_token_lifetime_secs">7776000</Item>
          <!--<Item Key="allow_infinite_rolling_refresh_token">true</Item>-->
          <Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
          <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>

Följande värden anges i föregående exempel:

  • token_lifetime_secs – Åtkomsttokens livslängd (sekunder). Standardvärdet är 3 600 (1 timme). Minst 300 (5 minuter). Maxvärdet är 86 400 (24 timmar).
  • id_token_lifetime_secs – livslängd för ID-token (sekunder). Standardvärdet är 3 600 (1 timme). Minst 300 (5 minuter). Maxvärdet är 86 400 (24 timmar).
  • refresh_token_lifetime_secs Uppdateringstokens livslängd (sekunder). Standardvärdet är 1 209 600 (14 dagar). Minst 86 400 (24 timmar). Maxvärdet är 7 776 000 (90 dagar).
  • rolling_refresh_token_lifetime_secs – Uppdatera livslängden för skjutbara tokenfönster (sekunder). Standardvärdet är 7 776 000 (90 dagar). Minst 86 400 (24 timmar). Maximalt är 31 536 000 (365 dagar). Om du inte vill framtvinga en livslängd för skjutfönster anger du värdet allow_infinite_rolling_refresh_token för till true.
  • allow_infinite_rolling_refresh_token – Livslängden för skjutbara token för uppdateringstoken upphör aldrig att gälla.

Inställningar för tokenkompatibilitet

Du kan konfigurera tokenkompatibiliteten, inklusive:

  • Utfärdare (iss) anspråk – formatet för utfärdare av åtkomst- och ID-token.
  • Ämnesanspråk (under) – det huvudnamn som token hävdar information om, till exempel användaren av ett program. Det här värdet är oföränderligt och kan inte omtilldelas eller återanvändas. Den kan användas för att utföra auktoriseringskontroller på ett säkert sätt, till exempel när token används för att komma åt en resurs. Som standard fylls ämnesanspråket med objekt-ID för användaren i katalogen.
  • Anspråk som representerar användarflöde – Det här anspråket identifierar användarflödet som kördes. Möjliga värden: tfp (standard) eller acr.

Så här konfigurerar du kompatibilitetsinställningar för användarflöde:

  1. Välj Användarflöden (principer).
  2. Öppna användarflödet som du skapade tidigare.
  3. Välj Egenskaper.
  4. Under Inställningar för tokenkompatibilitet justerar du egenskaperna så att de passar programmets behov.
  5. Välj Spara.

Om du vill ändra inställningarna för din tokenkompatibilitet anger du metadata för tokenutfärdarens tekniska profil i tillägget eller den förlitande partfilen för principen som du vill uppdatera. Den tekniska profilen för token utfärdare ser ut som i följande exempel:

<ClaimsProviders>
  <ClaimsProvider>
    <DisplayName>Token Issuer</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="JwtIssuer">
        <Metadata>
          ...
          <Item Key="IssuanceClaimPattern">AuthorityAndTenantGuid</Item>
          <Item Key="AuthenticationContextReferenceClaimPattern">None</Item>
        </Metadata>
      </TechnicalProfile>
    </TechnicalProfiles>
  </ClaimsProvider>
</ClaimsProviders>
  • Utfärdare (iss)-anspråk – Utfärdarens anspråk (iss) anges med metadataobjektet IssuanceClaimPattern . Tillämpliga värden är AuthorityAndTenantGuid och AuthorityWithTfp.

  • Ange anspråk som representerar princip-ID – Alternativen för att ange det här värdet är TFP (princip för förtroenderamverk) och ACR (referens för autentiseringskontext). TFP är det rekommenderade värdet. Ange AuthenticationContextReferenceClaimPattern med värdet None.

    Lägg till det här elementet i elementet ClaimsSchema :

    <ClaimType Id="trustFrameworkPolicy">
      <DisplayName>Trust framework policy name</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    

    Lägg till följande utdataanspråk under elementet OutputClaims i principen för förlitande part:

    <OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp" />
    

    För ACR tar du bort objektet AuthenticationContextReferenceClaimPattern .

  • Ämnesanspråk (under) – Det här alternativet är som standard ObjectID, om du vill växla den här inställningen till Not Supported, ersätt den här raden:

    <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
    

    med här raden:

    <OutputClaim ClaimTypeReferenceId="sub" />
    

Ange valfria anspråk till din app

Programanspråken är värden som returneras till programmet. Uppdatera användarflödet så att det innehåller önskade anspråk.

  1. Välj Användarflöden (principer).
  2. Öppna användarflödet som du skapade tidigare.
  3. Välj Programanspråk.
  4. Välj de anspråk och attribut som du vill skicka tillbaka till ditt program.
  5. Välj Spara.

Den förlitande partens princip för tekniska profilutdataanspråk är värden som returneras till ett program. Om du lägger till utdataanspråk utfärdas anspråken i token efter en lyckad användarresa och skickas till programmet. Ändra det tekniska profilelementet i avsnittet förlitande part för att lägga till önskade anspråk som ett utdataanspråk.

  1. Öppna din anpassade principfil. Till exempel SignUpOrSignin.xml.
  2. Leta upp elementet OutputClaims. Lägg till den OutputClaim som du vill ska ingå i token.
  3. Ange utdataanspråkattributen.

I följande exempel läggs anspråket till accountBalance . AccountBalance-anspråket skickas till programmet som ett saldo.

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="displayName" />
      <OutputClaim ClaimTypeReferenceId="givenName" />
      <OutputClaim ClaimTypeReferenceId="surname" />
      <OutputClaim ClaimTypeReferenceId="email" />
      <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
      <OutputClaim ClaimTypeReferenceId="identityProvider" />
      <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      <!--Add the optional claims here-->
      <OutputClaim ClaimTypeReferenceId="accountBalance" DefaultValue="" PartnerClaimType="balance" />
    </OutputClaims>
    <SubjectNamingInfo ClaimType="sub" />
  </TechnicalProfile>
</RelyingParty>

OutputClaim-elementet innehåller följande attribut:

  • ClaimTypeReferenceId – identifieraren för en anspråkstyp som redan definierats i avsnittet ClaimsSchema i principfilen eller den överordnade principfilen.
  • PartnerClaimType – Gör att du kan ändra namnet på anspråket i token.
  • DefaultValue – ett standardvärde. Du kan också ange standardvärdet till en anspråkslösare, till exempel klientorganisations-ID.
  • AlwaysUseDefaultValue – Framtvinga användningen av standardvärdet.

Livslängd för auktoriseringskod

När du använder OAuth 2.0-auktoriseringskodflödet kan appen använda auktoriseringskoden för att begära en åtkomsttoken för en målresurs. Auktoriseringskoderna är kortvariga och upphör att gälla efter cirka 10 minuter. Det går inte att konfigurera livslängden för auktoriseringskoden. Se till att ditt program löser in auktoriseringskoderna inom 10 minuter.

Nästa steg