当前位置: 首页 > 知识库问答 >
问题:

实现类似于OIDC中SAML的身份验证流程

陈法
2023-03-14

假设我们有一个 SPA,它依赖于我的应用程序中的 API。SPA 和 REST API 都托管在同一台服务器上。现在,我正在使用基于 SAML 的 IDP 发起的联合 SSO。

我清楚地知道参与的各方以及信任是如何建立的。

  1. 对于我们需要与之集成的每个客户,首先从我的web应用程序端获取IDP ID、数字证书等配置详细信息,并共享SAML ACS URL等详细信息
  2. 在客户端,他们使用我们提供的SAML ACS URL将我的应用程序添加为依赖方
  3. 在IDP对用户进行身份验证,然后将SAMLResponse发布到我的ACS URL
  4. 我们可以验证这个SAMLResponse,还可以观察NameID来识别用户,并继续访问我的服务器上的API

现在,假设客户端的IDP是与OIDC兼容的服务,比如Okta,我可以通过在服务器端做一些更改来实现类似的身份验证流程。看起来这应该是可能的,但我无法将整个画面拼凑在一起。

根据我对OIDC的了解,它看起来像

    < li >水疗中心是客户 < li >我的公开REST APIs的服务器是资源服务器。 < li >客户的IDP(Okta)是授权服务器。

从我阅读的文章来看,SPA应该首先调用Authoration Server以获取访问令牌,然后使用此访问令牌调用资源服务器上的userInfo API。然后看起来上面的第2点我的服务器是资源服务器是错误的。客户的IDP也应该是授权服务器和资源服务器?

在这种情况下,我的服务器在整个 OIDC 流中的位置如何?

如何在Okta(客户的IDP)和我的服务器之间建立信任?

是否有可能在OIDC中实现等同于IDP发起的美联储SSO流(使用SAML)的流?

共有1个答案

冉子石
2023-03-14

您可以使用Openid Connect隐式授权类型(和response_mode=form_post)来实现类似SAML HTTP Post绑定的用户体验。如果您的IdP不支持form_post,令牌将作为片段返回并保留在浏览器中,您将需要代码从浏览器中获取令牌。

 类似资料:
  • 我应该在Jupyter中实现SAML身份验证(Okta)。我试过搜索,但什么也没找到。也许有人知道答案。谢谢你的帮助。

  • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1

  • 我正在学习使用ADFS进行基于SAML的声明验证。与其将用户带到IDP的登录页面,然后请求用户输入她的凭据,不如在SP中获取用户的凭据并将其传递给IDP以在那里进行验证,然后使用SAML令牌返回SP。 这纯粹是实验性的,我想尝试一下,以避免用户在IdP登录页面中输入凭据,而不是在SP中获取她的凭据从IdP验证。 谢谢

  • 版本:WSO2身份服务器5.4.1 出于审计的目的,我们编写了UserOperationEventListener,以便通过实现doPostAuthenticate()来挂钩到身份验证过程。 这通过表单捕获API身份验证和web登录。不幸的是,当is作为另一个第三方SAML IDP的SAML SP运行时,侦听器没有被调用。 问:有没有一个监听器在SAML认证成功时被调用?或者有没有其他方法可以连接

  • 我正在尝试为自己构建一个仪表板,为我使用的一些应用程序提供基于SAML的身份验证。 从我作为测试平台构建的: 我正在使用一个登录名作为我要使用的应用程序的身份提供者。 举个例子:对于Netflix,我被重新路由到Netflix页面,我的用户ID和密码被预先填入其中,就像密码管理器的工作方式一样。(它使用OneLogin的扩展名) Netflix是否允许基于SAML的单点登录身份验证?我无法从谷歌搜

  • 本文向大家介绍Asp.Net Core中基于Session的身份验证的实现,包括了Asp.Net Core中基于Session的身份验证的实现的使用技巧和注意事项,需要的朋友参考一下 在Asp.Net框架中提供了几种身份验证方式:Windows身份验证、Forms身份验证、passport身份验证(单点登录验证)。 每种验证方式都有适合它的场景: 1.Windowss身份验证通常用于企业内部环境,