在我的应用程序中,我要求用户为某些操作提供密码,这样做是为了确保执行操作的人被再次确认为当前用户。但是,对于OAuth,我不确定如何或是否可能让身份验证提供程序重新确认用户,似乎没有一种一致的方法让提供程序要求用户重新进行身份验证。除了修改每个提供商的OAuth身份验证流之外,是否有方法要求用户重新进行身份验证?或者,在OAuth的上下文中,是否有更好的方法来替换此模式?
jqjz2hbq1#
您可以根据作用域执行此操作,应用最初重定向的位置如下所示:
https://login.example.com?client_id=xxx&scope=openid ...
要执行高权限操作,应用将获取具有高权限范围的访问令牌。您可以使用OpenID Connect prompt=login参数强制重新输入密码。根据所涉及的数据类型,您还可以在同意屏幕中通知用户:
prompt=login
https://login.example.com?client_id=xxx&scope=openid payment&prompt=login
受权服务器还可以配置为要求对高权限作用域进行多因素身份验证.这样,您就可以避免通过prompt=none重新输入密码,而只提示输入第二个因素.重新验证后,高权限访问令牌将返回到应用程序并发送到API。API仅在存在高权限范围时才允许这些操作。
prompt=none
1条答案
按热度按时间jqjz2hbq1#
您可以根据作用域执行此操作,应用最初重定向的位置如下所示:
要执行高权限操作,应用将获取具有高权限范围的访问令牌。您可以使用OpenID Connect
prompt=login
参数强制重新输入密码。根据所涉及的数据类型,您还可以在同意屏幕中通知用户:受权服务器还可以配置为要求对高权限作用域进行多因素身份验证.这样,您就可以避免通过
prompt=none
重新输入密码,而只提示输入第二个因素.重新验证后,高权限访问令牌将返回到应用程序并发送到API。API仅在存在高权限范围时才允许这些操作。