在每个OAuth2授权请求中提示AD凭据

时间:2015-06-04 13:45:30

标签: oauth-2.0 adfs3.0

我们有一个具有自己身份验证的应用程序,我们最近为其添加了OAuth2支持。公司客户可以为其ADFS或Google域指定数据,我们使用它来自动注册并登录其用户。

现在,问题是切换凭据。当我们从我们的应用程序注销时,单击登录按钮(重定向到配置的ADFS OAuth2授权端点)将立即验证用户并将其发送回我们的应用程序,并使用有效的当前凭据代码。

Google端点有一个特殊参数approval_prompt,我们可以使用它来强制执行中间步骤,用户可以在该步骤中切换其凭据。我不认为ADFS有这个。

我们还有其他解决方案吗?是否可以在ADFS服务器上配置一些提示用户为每个授权请求输入其凭据的内容?

2 个答案:

答案 0 :(得分:0)

以下是这些网址参数的工作方式,就像我理解的那样:

  • wa是我们要求的操作。到目前为止,我只看到过两个值:wsignin1.0和wsignout1.0
  • wfresh与缓存凭据的最大年龄有关,但我并不完全理解它。 0表示不使用缓存凭据。
  • wtrealm是ADFS中配置的AppID。这告诉ADFS服务器哪个应用程序正在尝试进行身份验证。对我们来说,这是应用程序的基本网址。
  • wctx是请求后从ADFS服务器返回给应用程序的一些特定于应用程序的数据。由于我们使用标准的System.IdentityModel设置,它会处理解析并对此值做出反应,而不是我们的代码。在其中编码了一个ru参数。这是返回网址。这就是我们回到我们来自的页面的方式。
  • wct是身份验证请求的时间戳

答案 1 :(得分:0)

我们添加参数prompt = login to que authorization request URL正在使用OAuth2:

  

/ ADFS /的oauth2 /授权RESPONSE_TYPE =代码&安培; CLIENT_ID = XXX&安培;资源= YYY&安培; REDIRECT_URI = ZZZZ&安培;提示=登录