使IdentityServer与自行开发的SSO解决方案共存

时间:2016-01-05 16:22:31

标签: single-sign-on identityserver3

我正在将IdentityServer作为我们产品系列中的SSO解决方案。所有产品都依赖于IdentityServer。

我面向公众的应用程序之一拥有自行开发的SSO解决方案供客户使用。显然,这是一个可怕的想法,我们需要用一个真正标准的东西来代替它。我希望我的IdentityServer成为我们的应用程序和客户之间的代理。因此mycustomer.myapp.com将用户发送到IdentityServer,并且根据我们为mycustomer定义的内容,它使用本地身份验证或SAML等等。

这是IdentityServer的一个很好的支持用例,效果很好。

目前,我需要IdentityServer与旧的本土解决方案共存。一旦我们拥有IdentityServer,我就可以开始转换客户,但我需要6个月或更长时间的重叠。

我需要让客户将旧式SSO令牌(包含密钥的表单发布变量)发布到mycustomer.myapp.com并让myapp.com告诉身份服务器将用户登录。我希望这样做没有任何用户交互就会发生

我当然可以使用ACR集合从依赖方传递值,但我需要让IdentityServer立即对用户进行身份验证并将其发送回依赖方(混合流)。我该怎么做呢?

我不可能是唯一一个需要拥有稳固的行业标准系统并与一些奇怪的本土解决方案共存的人。

1 个答案:

答案 0 :(得分:1)

为了后代的利益......

您可以在Github issue中阅读更多详细信息,但秘诀是在PreAuthenticateAsync中进行身份验证,但请确保将AuthenticateResult的IdentityProvider设置为客户端中的一个&#39}。 ;可接受的身份提供者列表。

如果你不这样做,你会得到一个重定向循环。日志确实记录了问题,但它将其列为WARN,而不是ERROR。