【问题标题】:WsFederation to SSO parameters (openId)WsFederation 到 SSO 参数 (openId)
【发布时间】:2017-06-08 06:17:50
【问题描述】:

这是使用带有自定义 SSO 的 openId 进行身份验证的当前架构。

我可以使用 acr_value 参数绕过 openId(identity server) 屏幕进入 3rd 方 sso:

context.ProtocolMessage.SetParameter("acr_values", "idp:Federation").Value);

我在返回途中遇到了如何绕过的问题。 我知道我在 WsFederationAuthenticationOptions 类中有一个 wreply 字段:

Wreply = "https://localhost:44300/core/wsfed"

这是 openId 身份服务器,自定义 SSO 在授权后重定向到该服务器。
我的问题是 openId 层上的屏幕(请稍候...)。如何绕过这个屏幕?我是否必须在 openId 层上设置设置,还是应该期待自定义 SSO 的某些参数,例如当我在初始请求中向 openId 层发送 acr_values 时?

【问题讨论】:

  • 那么问题是如何摆脱“请稍候...”屏幕?或者在使用 ws-fed 插件时如何绕过身份提供者选择?
  • 如何摆脱“请稍候...”屏幕。

标签: c# openid identityserver3 ws-federation


【解决方案1】:

您无法移除“请稍候...”屏幕,因为在使用外部身份提供者(您的 SSO 第 3 方)成功进行身份验证后处理重定向是必需的。外部身份提供者将重定向回 IdentityServer,但随后 IdentityServer 需要一种方法来重定向回您的应用程序。

如果您不喜欢消息或样式,可以覆盖 html,请参阅:authorizeresponse.html

【讨论】:

  • 问题是项目中没有提到的文件,只有 IdentityServer3 dll,一旦我通过 nuget 安装它
  • 这是一个常见的用例。请参阅“自定义默认视图服务”文档的“HTML 自定义”部分:identityserver.github.io/Documentation/docsv2/advanced/…
  • 我刚刚在模板文件夹中添加了 authorizeresponse.html,但是当模板被覆盖时,它不会重定向到最终应用程序。当我删除它时,它又开始工作了。我必须在 Startup.cs 中设置任何设置吗?
  • 你像原来一样包含表单帖子吗?
  • 是的,我看到了源代码,javascript 文件未添加到该页面内(用于发布重定向)。我会尝试在html中手动添加它们,看看是否有效。
猜你喜欢
  • 2012-09-06
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 2015-08-01
  • 2021-01-02
  • 2012-08-28
  • 1970-01-01
  • 2018-12-05
相关资源
最近更新 更多