我有一个应用程序,在系统内执行某些操作需要用户执行数字签名(例如,重新输入用户凭据)。我希望使用Azure AD实现此操作(B2C)OIDC SSO。我的计划是使用OIDC参数prompt=login
和max_age=0
重定向到授权URL(灵感来自2017年的this article),但Azure AD似乎不再支持此功能,因为我在尝试时收到以下错误消息:
- 模数转换器ADB2C90120:要求中指定的最大存留期参数'0'无效。最大存留期必须是介于'900'到'86400'之间的整数(含这两个值)。*
900秒的认证时间不足以保证用户已经对需要签名的操作进行了重新认证。能否以某种方式绕过900秒的限制?是否有其他方法来解决此问题?
2条答案
按热度按时间lsmd5eda1#
使用prompt=login就足够了,只要用户使用此参数登录到身份验证页面,会话cookie就会被破坏,因此暗示这还不够的文章不再适用。
chhkpiq42#
AAD B2C不支持
max_age=0
,如果您获得重定向URL并在导航到prompt=login
之前删除它(例如使用curl),则可以绕过prompt=login
。B2B更容易绕过
prompt=login
(让浏览器导航到URL,删除prompt=login
并刷新页面),但B2B支持max_age=0
,这是无法绕过的。奥克塔有一个great description of the limitations of
prompt=login
。