Authentication 抽象Windows身份基础STS背后的OpenID连接IDP

Authentication 抽象Windows身份基础STS背后的OpenID连接IDP,authentication,wif,claims-based-identity,federated-identity,openid-connect,Authentication,Wif,Claims Based Identity,Federated Identity,Openid Connect,前提: 我有一个基础设施,我们有一个自定义的RPSTS与Windows身份基础实现,提供了一些网站的SSO。此STS通过WSFederation与站点通信。此自定义STS即将被弃用,因为该组织正在将开放ID Connect Idp添加到基础结构中 网站本身(Episerver)包含所有定制的授权逻辑,这些逻辑已经基于STS提供的声明,如果我们只是简单地抛弃STS,我们就必须替换所有这些逻辑 问题: 将RP-STS集成到openId connect提供程序的浏览器重定向流是什么,以便最终用户浏览器

前提: 我有一个基础设施,我们有一个自定义的RPSTS与Windows身份基础实现,提供了一些网站的SSO。此STS通过WSFederation与站点通信。此自定义STS即将被弃用,因为该组织正在将开放ID Connect Idp添加到基础结构中

网站本身(Episerver)包含所有定制的授权逻辑,这些逻辑已经基于STS提供的声明,如果我们只是简单地抛弃STS,我们就必须替换所有这些逻辑

问题: 将RP-STS集成到openId connect提供程序的浏览器重定向流是什么,以便最终用户浏览器为RP-STS和openId connect IdP获得会话

关于如何实现它的个人想法(基于对openid connect如何工作的大量假设),如果您知道如何回答,请跳过此部分:

  • 网站向RP-STS发送包含用户名/密码的HTTP帖子
  • RP STS通过重定向到OpenId Connect Idp响应浏览器(重定向包含用户名/密码,并且RP STS设置了replyto地址)
  • OpenId Connect Idp创建一个本地会话(??),并用重定向到RP STS进行响应,重定向包含auth_令牌。(我不确定进入openid connect登录流的部分)
  • RP STS接收用户令牌并获取/请求用户数据,构建声明并构建本地会话
  • RP STS通过WSFed向RP站点发送SAML令牌中的声明
  • 我离你很近吗

    进一步澄清:

    • 我不想删除现有的STS,但要抽象其背后的新基础结构更改,以便从最终用户站点的角度来看,标识对象和授权逻辑保持不变
    • 我需要特别的帮助,看看在STS和开放ID连接IDP之间的登录/注销流是否可行

    WIF和OpenID Connect是完全不同的协议,例如WIF主要基于被动配置文件中的浏览器。令牌类型不同-SAML和JWT等

    实现这一点的方法是通过OWIN(Katana是Microsoft的实现)。WS-Fed和OpenID Connect都有NuGet包

    有Azure AD可用的示例-请参考,您可以将其用作指南

    OWIN将允许您使用这两种协议

    事实上,看看吧


    这是两者的开源STS实现。

    WIF不是安全协议。它是一个实现WS-Trust和WS-Federation等协议的Microsoft库。它已被.NET 4.5中System.IdentityModel命名空间中的类所取代。如果要将最终用户站点交换为使用OWIN进行身份验证,则该端的身份看起来也会有所不同,并且必须重写所有授权逻辑。这是我想要避免的,我的问题与此相关。我的问题更多地涉及openid流,以及它是否可行。为了进一步澄清:我不想删除我们现有的STS,我想抽象它背后的新基础设施。MvdD-说清楚-4.5中的类仍然是WIF。它只是.NET的一部分,而不是单独下载。所以WIF3.5移到WIF4.5。@Lan-为什么不将STS与identityserver联合起来?