2

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

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

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

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

4

2 回答 2

0

以下是这些 url 参数的工作方式,据我所知:

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

对于我们来说,将参数 prompt=login 添加到 que 授权请求 URL 正在使用 OAuth2 :

/adfs/oauth2/authorize?response_type=code&client_id=XXX&resource=YYY&redirect_uri=ZZZZ&prompt=login

于 2017-11-08T10:02:17.367 回答