Azure AD B2C 自定义策略 SAML 令牌生命周期和会话超时

问题描述 投票:0回答:1

我为使用 SAML 进行令牌交换的注册/登录流程配置了自定义 B2C 策略。 我想了解如何控制令牌生命周期 (SAML) 和会话持续时间。

会话持续时间应为 4 小时,为了防止用户继续重新输入凭据,我希望能够配置空闲超时,以便在没有交互的情况下断开会话。

我还希望如果用户关闭浏览器而不注销,重新打开时会提示输入凭据

这一切可能吗?目前我没有在应用程序注册中使用offline_access 范围。 offline_access scope app registration not enabled

目前我只尝试将其放入我的 RP 文件中:

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInMFAOption" />
    <UserJourneyBehaviors> 
        <SingleSignOn Scope="Application" /> 
        <SessionExpiryType>Rolling</SessionExpiryType> 
        <SessionExpiryInSeconds>900</SessionExpiryInSeconds> 
    </UserJourneyBehaviors>
    <TechnicalProfile Id="PolicyProfile">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="SAML2" />
azure-active-directory azure-ad-b2c azure-ad-b2c-custom-policy
1个回答
0
投票

控制令牌生命周期 (SAML) 和会话持续时间

要定义 SAML 的会话持续时间,您可以在 Saml2AssertionIssuer 技术配置文件元数据中使用“TokenLifeTimeInSeconds”。

根据 https://learn.microsoft.com/en-us/azure/active-directory-b2c/saml-issuer-technical-profile#metadata TokenLifeTimeInSeconds 指定 SAML 断言的生命周期。该值以秒为单位,与上面引用的 NotBefore 值相距。默认值为 300 秒(5 分钟)。

我希望如果用户关闭浏览器而不注销,重新打开时会提示输入凭据

对于本地帐户,这只能通过删除/排除“保持登录”(KMSI) 声明来实现,当您启用该功能时,用户可以选择保持登录状态,因此会话在关闭浏览器后仍保持活动状态。可以找到参考示例https://github.com/azure-ad-b2c/unit-tests/blob/main/session/Session_KeepAliveInDays.xml

此外,SAML IDP 元数据应将 ForceAuthN 设置为 true

在 SAML 身份验证请求中传递 ForceAuthN 值,以确定是否强制外部 SAML IDP 提示用户进行身份验证。默认情况下,Azure AD B2C 在初始登录时将 ForceAuthN 值设置为 false。如果随后重置会话(例如通过使用 OIDC 中的提示 = 登录),则 ForceAuthN 值将设置为 true。如下所示设置元数据项将强制向外部 IDP 发送所有请求的值。可能的值: true 或 false。参考:https://learn.microsoft.com/en-us/azure/active-directory-b2c/saml-identity-provider-technical-profile#metadata

© www.soinside.com 2019 - 2024. All rights reserved.