Konfigurace tokenů ve službě Azure Active Directory B2C
Než začnete, pomocí selektoru Zvolit typ zásady zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.
V tomto článku se dozvíte, jak nakonfigurovat životnost a kompatibilitu tokenu v Azure Active Directory B2C (Azure AD B2C).
Předpoklady
- Vytvořte tok uživatele, aby se uživatelé mohli zaregistrovat a přihlásit k vaší aplikaci.
- Zaregistrujte webovou aplikaci.
Chování životnosti tokenu
Můžete nakonfigurovat dobu života tokenu, včetně:
- Životnost tokenů přístupu a ID (minuty) – životnost nosného tokenu OAuth 2.0 a tokenů ID. Výchozí hodnota je 60 minut (1 hodina). Minimální (včetně) je 5 minut. Maximum (včetně) je 1 440 minut (24 hodin).
- Doba platnosti obnovovacího tokenu (dny) – maximální časové období, před kterým se dá obnovovací token použít k získání nového přístupového tokenu, pokud byla vaší aplikaci udělena
offline_access
obor. Výchozí hodnota je 14 dní. Minimum (včetně) je jeden den. Maximální (včetně) 90 dnů. - Životnost posuvného okna obnovovacího tokenu – typ posuvného okna obnovovacího tokenu.
Bounded
označuje, že obnovovací token lze prodloužit tak, jak je uvedeno v délce životnosti (dny).No expiry
značí, že životnost posuvného okna obnovovacího tokenu nikdy nevyprší. - Délka životnosti (dny) – po uplynutí tohoto časového období je uživatel nucen znovu provést ověření bez ohledu na dobu platnosti posledního obnovovacího tokenu získaného aplikací. Hodnota musí být větší nebo rovna hodnotě životnosti obnovovacího tokenu.
Následující diagram znázorňuje chování životnosti posuvného okna tokenu aktualizace.
Poznámka:
Jednostránka aplikace používající tok autorizačního kódu s PKCE vždy mají životnost obnovovacího tokenu 24 hodin, zatímco u mobilních aplikací, desktopových aplikací a webových aplikací toto omezení neplatí. Přečtěte si další informace o bezpečnostních dopadech obnovovacích tokenů v prohlížeči.
Konfigurace životnosti tokenu
Konfigurace životnosti tokenu toku uživatele:
- Přihlaste se k portálu Azure.
- Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Vyberte Toky uživatelů (zásady).
- Otevřete tok uživatele, který jste vytvořili dříve.
- Vyberte Vlastnosti.
- V rámci životnosti tokenu upravte vlastnosti tak, aby vyhovovaly potřebám vaší aplikace.
- Zvolte Uložit.
Pokud chcete změnit nastavení kompatibility tokenů, nastavte metadata technického profilu vystavitele tokenu v rozšíření nebo soubor předávající strany zásady, kterou chcete ovlivnit. Technický profil vystavitele tokenu vypadá jako v následujícím příkladu:
<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>
V předchozím příkladu jsou nastaveny následující hodnoty:
- token_lifetime_secs – životnost přístupového tokenu (sekundy). Výchozí hodnota je 3 600 (1 hodina). Minimum je 300 (5 minut). Maximum je 86 400 (24 hodin).
- id_token_lifetime_secs – životnost tokenů ID (sekundy). Výchozí hodnota je 3 600 (1 hodina). Minimum je 300 (5 minut). Maximum je 86 400 (24 hodin).
- refresh_token_lifetime_secs životnosti tokenů (sekund). Výchozí hodnota je 1 209 600 (14 dní). Minimum je 86 400 (24 hodin). Maximum je 7 776 000 (90 dní).
- rolling_refresh_token_lifetime_secs – doba životnosti posuvného okna tokenu (sekundy) Výchozí hodnota je 7 776 000 (90 dní). Minimum je 86 400 (24 hodin). Maximum je 31 536 000 (365 dní). Pokud nechcete vynucovat životnost posuvného okna, nastavte hodnotu na
true
hodnotuallow_infinite_rolling_refresh_token
. - allow_infinite_rolling_refresh_token – Platnost životnosti posuvného okna tokenu aktualizace nikdy nevyprší.
Nastavení kompatibility tokenů
Můžete nakonfigurovat kompatibilitu tokenů, včetně následujících:
- Deklarace identity vystavitele (iss) – formát vystavitele tokenu PŘÍSTUPU a ID.
- Deklarace identity předmětu (sub) – objekt zabezpečení, o kterém token určuje informace, jako je uživatel aplikace. Tato hodnota je neměnná a nedá se znovu přiřadit ani znovu použít. Dá se použít k bezpečnému provedení kontrol autorizace, jako je například použití tokenu pro přístup k prostředku. Ve výchozím nastavení se deklarace identity subjektu naplní ID objektu uživatele v adresáři.
- Deklarace identity představující tok uživatele – Tato deklarace identity identifikuje tok uživatele, který byl proveden. Možné hodnoty:
tfp
(výchozí) neboacr
.
Konfigurace nastavení kompatibility toku uživatele:
- Vyberte Toky uživatelů (zásady).
- Otevřete tok uživatele, který jste vytvořili dříve.
- Vyberte Vlastnosti.
- V části Nastavení kompatibility tokenů upravte vlastnosti tak, aby vyhovovaly potřebám vaší aplikace.
- Zvolte Uložit.
Pokud chcete změnit nastavení kompatibility tokenů, nastavte metadata technického profilu vystavitele tokenu v rozšíření nebo soubor předávající strany zásady, kterou chcete aktualizovat. Technický profil vystavitele tokenu vypadá jako v následujícím příkladu:
<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>
Deklarace identity vystavitele (iss) – Deklarace vystavitele (iss) je nastavená s položkou metadat IssuerClaimPattern . Platné hodnoty jsou
AuthorityAndTenantGuid
aAuthorityWithTfp
.Nastavení deklarace identity představující ID zásady – možnosti pro nastavení této hodnoty jsou
TFP
(zásady architektury důvěryhodnosti) aACR
(odkaz na kontext ověřování).TFP
je doporučená hodnota. Nastavte AuthenticationContextReferenceClaimPattern s hodnotouNone
.Do elementu ClaimsSchema přidejte tento element:
<ClaimType Id="trustFrameworkPolicy"> <DisplayName>Trust framework policy name</DisplayName> <DataType>string</DataType> </ClaimType>
V zásadách předávající strany přidejte v rámci elementu OutputClaims následující výstupní deklaraci identity:
<OutputClaim ClaimTypeReferenceId="trustFrameworkPolicy" Required="true" DefaultValue="{policy}" PartnerClaimType="tfp" />
Pro ACR odeberte položku AuthenticationContextReferenceClaimPattern .
Deklarace identity předmětu (sub) – Tato možnost je výchozí hodnotou ObjectID, pokud chcete toto nastavení přepnout na
Not Supported
, nahraďte tento řádek:<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
tímto řádkem:
<OutputClaim ClaimTypeReferenceId="sub" />
Zadání volitelných deklarací identity do aplikace
Deklarace identity aplikace jsou hodnoty, které se vrátí do aplikace. Aktualizujte tok uživatele tak, aby obsahoval požadované deklarace identity.
- Vyberte Toky uživatelů (zásady).
- Otevřete tok uživatele, který jste vytvořili dříve.
- Vyberte Deklarace identit aplikace.
- Zvolte deklarace identity a atributy, které chcete odeslat zpět do aplikace.
- Zvolte Uložit.
Výstupní deklarace identity zásad předávající strany jsou hodnoty vrácené do aplikace. Přidání výstupních deklarací identity vydá deklarace identity do tokenu po úspěšné cestě uživatele a odešle se do aplikace. Upravte prvek technického profilu v části předávající strany tak, aby se požadované deklarace identity přidaly jako výstupní deklarace identity.
- Otevřete soubor vlastních zásad. Například SignUpOrSignin.xml.
- Najděte element OutputClaims. Přidejte outputClaim, který chcete zahrnout do tokenu.
- Nastavte výstupní atributy deklarace identity.
Následující příklad přidá accountBalance
deklaraci identity. Deklarace zůstatku účtu se odešle do aplikace jako zůstatek.
<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 obsahuje následující atributy:
- ClaimTypeReferenceId – identifikátor typu deklarace identity, který je již definován v části ClaimsSchema v souboru zásad nebo nadřazeném souboru zásad.
- PartnerClaimType – Umožňuje změnit název deklarace identity v tokenu.
- DefaultValue – výchozí hodnota. Výchozí hodnotu můžete nastavit také na překladač deklarací identity, například ID tenanta.
- AlwaysUseDefaultValue – vynuťte použití výchozí hodnoty.
Životnost autorizačního kódu
Při použití toku autorizačního kódu OAuth 2.0 může aplikace použít autorizační kód k vyžádání přístupového tokenu pro cílový prostředek. Autorizační kódy jsou krátkodobé, jejichž platnost vyprší přibližně po 10 minutách. Životnost autorizačního kódu se nedá nakonfigurovat. Ujistěte se, že vaše aplikace do 10 minut uplatní autorizační kódy.
Další kroky
- Přečtěte si další informace o tom, jak požádat o přístupové tokeny.
- Naučte se vytvářet odolnost prostřednictvím osvědčených postupů pro vývojáře.