
[英]thinktecture identityserver 2 - bouncing between app and IdP
[英]IdP initiated login with ThinkTecture IdentityServer v3
在SAML中,存在由IdP发起的登录的概念,这意味着身份验证方(IdP)可以向依赖方(RP /消费应用程序)发送未经请求的令牌,并且用户无需登录IdP就可以登录。 我有一个需要执行此操作的场景,但是我希望ThinkTecture Identity Server v3处于中间位置,因为我将在那里处理我的普通身份验证(与非SAML日常工作一样)。 由于无法控制的原因,我无法致电SAML IdP。 我想做的是这样的:
我花了很多时间研究这个问题,也看过了有关从第三方启动登录的规范 ,但是如果我理解正确的话,它仍然始于第三方将用户定向到RP。 ,然后将登录请求发送到IdP(即ThinkTecture Identity Server),这并不是我真正需要的。
总而言之,我不认为OpenID Connect具有SAML的IdP发起的SSO的等效功能。 那是正确的还是我只是无法弄清楚,还是ThinkTecture IdentityServer不支持它?
一切都很漂亮,这要感谢ThinkTecture和KentorIT。 las,这仍然从我的网站开始,并最终重定向到SAML服务器,出于非技术原因,在我的方案中无法执行此操作。
在这种情况下,我当然可以完全省去IdSrv,但我有理由将IdSrv放在中间,并使我的所有身份验证都通过。 因此,目前我的想法是执行以下流程:
在我开始实施它之前,有人可以告诉我这是否是正确的解决方法,还是我确实缺少一些明显的东西?
似乎这个想法也行不通。 本质上,我需要做的是使用IdP启动的SAML SSO对Identity Server进行身份验证,然后重定向到RP,并通过身份验证请求使RP重定向到Identity Server。 但是 ,据我所知, 除了作为RP请求的一部分之外 ,没有其他方法可以使Identity Server登录。 换句话说,即使我的SAML中间件很乐意接受未经请求的令牌,IdSrv也会忽略SAML中间件的登录请求(我认为这很公平)。
因此,我认为一种替代解决方案是编写一个控制器,该控制器可以验证SAML令牌并直接 在同一服务器上运行的代码中调用IdSrv ,并告诉它使用我手动构造的主体登录用户。
(新)问题是, Identity Server是否以代码形式向我提供了一种用于登录用户的机制,因此Identity Server为用户设置了适当的cookie ?
简短的答案是,目前尚不可能。
我已经打开了Identity Server的问题,并现在开发了一些概念验证代码 。
现在,此答案只是一个占位符-当解决方案出现时,我将以合理的详细程度更新此答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.