容器应用认证会话生命周期配置及令牌使用技术咨询
关于Azure容器应用认证会话与令牌使用的疑问
额外问题
AppServiceAuthSession cookie的Expire/Max-Age属性设置为Session,导致用户每次关闭浏览器都需重新认证。部分浏览器有标签页持久化设置,但并非所有用户都启用,体验不佳。
会话时长的核心困惑
在容器应用的认证配置中,用户需在特定时间点重新认证,但官方文档未明确说明该时长。我希望尽可能延长已登录用户的会话时长,或至少明确会话过期时间及重新认证的可行操作。
曾看到资料称AppService认证的cookie有效期固定为8小时(容器应用认证应与之类似),但实际测试间隔16小时(当日17:00至次日9:00)访问应用无需重新认证,推翻了该说法。
身份提供商配置与测试细节
我的容器应用认证配置了两个身份提供商:一个依赖AzureAD B2C的自定义OIDC,另一个是Microsoft。
曾假设会话时长由身份提供商的访问令牌生命周期决定。在应用中获取的请求头里,X-MS-CLIENT-PRINCIPAL是Base64编码的JSON,其中包含exp(过期时间)声明,指向身份提供商颁发的访问令牌过期时间:
- Microsoft登录:令牌过期时间约1小时,原以为会话会在此后失效,但4小时后仍可无需重新认证访问应用;甚至退出Microsoft账号也不影响会话,反之,在应用中退出会同步退出所有需Microsoft会话的服务。
- 自定义OIDC(Azure AD B2C)登录:令牌过期时间为登录后7天,已通过exp声明确认。当日17:00登录,次日9:00访问无需重新认证,但iat(颁发时间)声明显示为当日9:00左右;不过短时间内重复此操作未出现该情况。
待解答问题
- 可配置的用户重新认证最长间隔时长是多少?
- 是否可在应用中使用身份提供商的访问令牌(例如,当用户通过Microsoft登录时,代表用户调用GraphApi获取组织信息)?
补充发现
重启容器应用修订版本时,http-auth容器(负责认证并将增强后的请求传递给应用)的日志中,有一项名为EasyAuthConfig的设置,其login/cookieExpiration字段值为08:00:00(8小时),与AppService文档一致。但仍不清楚是否及如何延长该会话(AppService有/.auth/refresh端点,但容器应用调用该端点无效果)。
内容的提问来源于stack exchange,提问作者milorad
相关产品推荐
相关产品推荐

