Oauth 2.0 在OIDC中实现类似SAML的认证流程

Oauth 2.0 在OIDC中实现类似SAML的认证流程,oauth-2.0,saml,okta,openid-connect,Oauth 2.0,Saml,Okta,Openid Connect,比如说,我们有一个SPA,它依赖于我的应用程序中的API。SPA和RESTAPI都托管在同一台服务器上。现在我正在使用基于SAML的IDP发起的联邦SSO 我清楚地知道有关各方以及信托是如何建立的 对于我们需要与之集成的每个客户,首先从我的web应用程序端获取配置详细信息,如IDP ID、数字证书和共享详细信息,如SAML ACS URL。 在客户端,他们使用我们提供的SAML ACS URL将我的应用程序添加为依赖方。 用户在IDP进行身份验证,然后SAMLResponse被发布到我的ACS

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

我清楚地知道有关各方以及信托是如何建立的

对于我们需要与之集成的每个客户,首先从我的web应用程序端获取配置详细信息,如IDP ID、数字证书和共享详细信息,如SAML ACS URL。 在客户端,他们使用我们提供的SAML ACS URL将我的应用程序添加为依赖方。 用户在IDP进行身份验证,然后SAMLResponse被发布到我的ACS URL。 我们可以验证此SAMLResponse,还可以观察NameID来识别用户,并继续授予对我的服务器上的API的访问权限。 现在,假设客户端的IDP是与OIDC兼容的服务,比如Okta,那么我也可以通过在服务器端进行一些更改来实现类似的身份验证流程。看起来这应该是可能的,但我不能把整个画面拼凑起来

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

水疗中心是客户 我公开RESTAPI的服务器是资源服务器。 客户的IDPOkta是授权服务器。 从我读过的文章来看,SPA应该首先调用授权服务器以获取访问令牌,然后使用此访问令牌调用资源服务器上的userInfo API。然后看起来像上面的第2点,我的服务器是资源服务器是错误的。客户的IDP应该同时是授权服务器和资源服务器

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

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


是否可以在OIDC中使用SAML实现等同于IDP启动的Fed SSO流的流

您可以使用Openid连接隐式授权类型和response\u mode=form\u post来实现类似于SAML HTTP post绑定的用户体验。如果您的IdP不支持form_post,则令牌将作为片段返回并留在浏览器中,您将需要代码从浏览器中获取令牌