Udostępnij za pośrednictwem


Konfigurowanie tokenów w usłudze Azure Active Directory B2C

Przed rozpoczęciem użyj selektora Wybierz typ zasad, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.

Z tego artykułu dowiesz się, jak skonfigurować okres istnienia i zgodność tokenu w usłudze Azure Active Directory B2C (Azure AD B2C).

Wymagania wstępne

Zachowanie okresu istnienia tokenu

Okres istnienia tokenu można skonfigurować, w tym:

  • Okresy istnienia tokenu dostępu i identyfikatora (w minutach) — okres istnienia tokenu elementu nośnego OAuth 2.0 i tokenów identyfikatora. Wartość domyślna to 60 minut (1 godzina). Minimalna (włącznie) wynosi 5 minut. Maksymalna (włącznie) wynosi 1440 minut (24 godziny).
  • Okres istnienia tokenu odświeżania (dni) — maksymalny okres, przed którym można użyć tokenu odświeżania do uzyskania nowego tokenu dostępu, jeśli aplikacja otrzymała offline_access zakres. Wartość domyślna to 14 dni. Minimalna (włącznie) wynosi jeden dzień. Maksymalna (włącznie) 90 dni.
  • Okres istnienia okna przewijania tokenu odświeżania — typ okna przewijania tokenu odświeżania. Boundedwskazuje, że token odświeżania można rozszerzyć zgodnie z wartością w polu Długość okresu istnienia (dni). No expiry wskazuje, że okres istnienia okna przewijania tokenu odświeżania nigdy nie wygasa.
  • Długość okresu istnienia (dni) — po upływie tego czasu użytkownik zostanie zmuszony do ponownego uwierzytelnienia, niezależnie od okresu ważności ostatniego tokenu odświeżania uzyskanego przez aplikację. Wartość musi być większa lub równa wartości okresu istnienia tokenu Odświeżanie.

Na poniższym diagramie przedstawiono zachowanie okresu istnienia okna przewijania tokenu odświeżania.

Refresh token lifetime

Uwaga

Aplikacje jednostronicowe korzystające z przepływu kodu autoryzacji z protokołem PKCE zawsze mają okres istnienia tokenu odświeżania przez 24 godziny, podczas gdy aplikacje mobilne, aplikacje klasyczne i aplikacje internetowe nie mają tego ograniczenia. Dowiedz się więcej na temat wpływu na zabezpieczenia tokenów odświeżania w przeglądarce.

Konfigurowanie okresu istnienia tokenu

Aby skonfigurować okres istnienia tokenu przepływu użytkownika:

  1. Zaloguj się w witrynie Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
  4. Wybierz pozycję Przepływy użytkownika (zasady)..
  5. Otwórz utworzony wcześniej przepływ użytkownika.
  6. Wybierz Właściwości.
  7. W obszarze Okres istnienia tokenu dostosuj właściwości do potrzeb aplikacji.
  8. Wybierz pozycję Zapisz.

configure user flows tokens in Azure portal.

Aby zmienić ustawienia zgodności tokenu, należy ustawić metadane profilu technicznego wystawcy tokenu w rozszerzeniu lub plik jednostki uzależnionej zasad, które mają mieć wpływ. Profil techniczny wystawcy tokenu wygląda następująco:

<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>

W poprzednim przykładzie ustawiono następujące wartości:

  • token_lifetime_secs — okresy istnienia tokenu dostępu (w sekundach). Wartość domyślna to 3600 (1 godzina). Wartość minimalna to 300 (5 minut). Maksymalna wartość to 86 400 (24 godziny).
  • id_token_lifetime_secs — okresy istnienia tokenu identyfikatora (w sekundach). Wartość domyślna to 3600 (1 godzina). Wartość minimalna to 300 (5 minut). Maksymalna wartość to 86 400 (24 godziny).
  • refresh_token_lifetime_secs okresów istnienia tokenu odświeżania (w sekundach). Wartość domyślna to 1209 600 (14 dni). Wartość minimalna to 86 400 (24 godziny). Maksymalna wartość to 776 000 (90 dni).
  • rolling_refresh_token_lifetime_secs — okres istnienia okna przewijania tokenu odświeżania (w sekundach). Wartość domyślna to 776 000 (90 dni). Wartość minimalna to 86 400 (24 godziny). Maksymalna wartość to 31 536 000 (365 dni). Jeśli nie chcesz wymuszać okresu istnienia okna przewijania, ustaw wartość na allow_infinite_rolling_refresh_tokentrue.
  • allow_infinite_rolling_refresh_token — okres istnienia okna przewijania tokenu odświeżania nigdy nie wygasa.

Ustawienia zgodności tokenów

Można skonfigurować zgodność tokenów, w tym:

  • Oświadczenie wystawcy (iss) — format wystawcy tokenu dostępu i identyfikatora.
  • Oświadczenie podmiotu (sub) — podmiot zabezpieczeń, o którym token potwierdza informacje, takie jak użytkownik aplikacji. Ta wartość jest niezmienna i nie można jej ponownie przypisać ani ponownie użyć. Może służyć do bezpiecznego przeprowadzania kontroli autoryzacji, na przykład gdy token jest używany do uzyskiwania dostępu do zasobu. Domyślnie oświadczenie podmiotu jest wypełniane identyfikatorem obiektu użytkownika w katalogu.
  • Oświadczenie reprezentujące przepływ użytkownika — to oświadczenie identyfikuje przepływ użytkownika, który został wykonany. Możliwe wartości: tfp (wartość domyślna) lub acr.

Aby skonfigurować ustawienia zgodności przepływu użytkownika:

  1. Wybierz pozycję Przepływy użytkownika (zasady)..
  2. Otwórz utworzony wcześniej przepływ użytkownika.
  3. Wybierz Właściwości.
  4. W obszarze Ustawienia zgodności tokenów dostosuj właściwości do potrzeb aplikacji.
  5. Wybierz pozycję Zapisz.

Aby zmienić ustawienia zgodności tokenu, należy ustawić metadane profilu technicznego wystawcy tokenu w rozszerzeniu lub plik jednostki uzależnionej zasad, które chcesz zaktualizować. Profil techniczny wystawcy tokenu wygląda następująco:

<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>
  • Oświadczenie wystawcy (iss) — oświadczenie wystawcy (iss) jest ustawione z elementem metadanych IssuerClaimPattern . Odpowiednie wartości to AuthorityAndTenantGuid i AuthorityWithTfp.

  • Ustawianie oświadczenia reprezentującego identyfikator zasad — opcje ustawiania tej wartości to TFP (zasady platformy zaufania) i ACR (odwołanie kontekstu uwierzytelniania). TFP jest zalecaną wartością. Ustaw właściwość AuthenticationContextReferenceClaimPattern z wartością None.

    W elemecie ClaimsSchema dodaj następujący element:

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

    W zasadach jednostki uzależnionej w obszarze Elementu OutputClaims dodaj następujące oświadczenie wyjściowe:

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

    W przypadku usługi ACR usuń element AuthenticationContextReferenceClaimPattern .

  • Oświadczenie podmiotu (sub) — ta opcja jest domyślnie ustawiona na ObjectID, jeśli chcesz przełączyć to ustawienie na Not Supported, zastąp ten wiersz:

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

    na ten wiersz:

    <OutputClaim ClaimTypeReferenceId="sub" />
    

Podaj opcjonalne oświadczenia do aplikacji

Oświadczenia aplikacji to wartości zwracane do aplikacji. Zaktualizuj przepływ użytkownika, aby zawierał żądane oświadczenia.

  1. Wybierz pozycję Przepływy użytkownika (zasady)..
  2. Otwórz utworzony wcześniej przepływ użytkownika.
  3. Wybierz pozycję Oświadczenia aplikacji.
  4. Wybierz oświadczenia i atrybuty, które chcesz wysłać z powrotem do aplikacji.
  5. Wybierz pozycję Zapisz.

Oświadczenia wyjściowe profilu technicznego zasad jednostki uzależnionej to wartości zwracane do aplikacji. Dodanie oświadczeń wyjściowych spowoduje wysłanie oświadczeń do tokenu po pomyślnej podróży użytkownika i zostanie wysłane do aplikacji. Zmodyfikuj element profilu technicznego w sekcji jednostki uzależnionej, aby dodać żądane oświadczenia jako oświadczenie wyjściowe.

  1. Otwórz plik zasad niestandardowych. Na przykład SignUpOrSignin.xml.
  2. Znajdź element OutputClaims. Dodaj element OutputClaim, który chcesz uwzględnić w tokenie.
  3. Ustaw atrybuty oświadczenia wyjściowego.

Poniższy przykład dodaje accountBalance oświadczenie. Oświadczenie accountBalance jest wysyłane do aplikacji jako 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>

Element OutputClaim zawiera następujące atrybuty:

  • ClaimTypeReferenceId — identyfikator typu oświadczenia już zdefiniowany w sekcji ClaimsSchema w pliku zasad lub pliku zasad nadrzędnych.
  • PartnerClaimType — umożliwia zmianę nazwy oświadczenia w tokenie.
  • DefaultValue — wartość domyślna. Można również ustawić wartość domyślną na rozpoznawanie oświadczeń, na przykład identyfikator dzierżawy.
  • AlwaysUseDefaultValue — wymusza użycie wartości domyślnej.

Okres istnienia kodu autoryzacji

W przypadku korzystania z przepływu kodu autoryzacji OAuth 2.0 aplikacja może użyć kodu autoryzacji, aby zażądać tokenu dostępu dla zasobu docelowego. Kody autoryzacji są krótkotrwałe, które wygasają po około 10 minutach. Nie można skonfigurować okresu istnienia kodu autoryzacji. Upewnij się, że aplikacja zrealizowała kody autoryzacji w ciągu 10 minut.

Następne kroki