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

SP启动的SAML SSO的实际流程,包括所有组件,即IDP、SP客户端和SP服务器端

司徒寒
2023-03-14

我使用keycloak作为IDP,jersey rest services作为后端,angular UI作为前端,我的后端和前端是运行在同一个tomcat服务器上的独立应用程序。

我在互联网上找到的每个例子都使用SP启动的SAML SSO的完整后端。不明白frontend在哪里做贡献或者frontend是怎么保护的?

当我们谈论开放id SSO协议时,我发现用户代理调用前端应用程序,将用户重定向到IDP并获取代码并将其传递给后端。后端执行令牌的所有验证。

所以我有一些问题

  1. 如果我们有一个前端应用程序,SAML中的流是否与open id相同
  2. 前端应用程序能否生成SAML请求并将用户重定向到IDP
  3. 身份验证成功后,IDP重定向到后端还是前端
  4. 服务如何受到保护,SAML断言在哪里得到验证

共有1个答案

勾俊
2023-03-14
Is the flow in SAML same as open id if we have a frontend application?

或多或少。用户转到前端应用程序时,由于他们没有与应用程序的有效会话,因此被拒绝访问。

Can frontend application produce SAML request and redirect user to the IDP?

是的。它需要创建一个包含AuthNRequest的SAMLRequest并将其发布到SP。

身份验证成功后,IDP重定向到后端还是前端?

或多或少IdP首先检查元数据中的SP属性消费者服务(ACS)url。如果不匹配,它将拒绝向SP发送SAMLResponse。

How are services protected and where is the SAML assertion validated?

这取决于SP。如果用户在应用程序中没有有效会话,则需要将其重定向到IdP,应用程序必须验证SAMLResponse,并根据该响应中的属性为用户创建有效会话。

验证是通过SAML元数据中包含的X509证书完成的。不过这是复杂的事情。

 类似资料:
  • 我已成功配置SAML SSO,其中OpenAM为SP,PingFederate为IDP,SP启动SSO并使用重定向后绑定。我正在使用kerberos适配器实现SSO。 但是,我无法将RelayState参数从OpenAM传递给PF,并在成功验证后将其作为SAML自动post表单的一部分取回。它总是重定向到OpenAM断言处理服务,即OpenAM/metalias/sp 我试过的事情- > SAML

  • 我是KeyClope的新手,正在尝试将其配置为SalesForce客户端的SAML IDP。IDP启动的SSO流工作正常。我被引导到Salesforce主页正确地进行身份验证。然而,SP启动的SSO给了我一个JSON输出,而不是KeyClope登录页面。 这是SalesForce重定向到的URL(屏蔽IP):http://10.99.xxx.xxx:8080/auth/realms/test?SA

  • 我已经配置了OpenAM IdP和SP。我正在纠结于IdP发起的SSO URL和SP发起的SSO URL。我使用以下格式的IdP发起的单点登录网址。但是我得到错误< code >服务提供商ID为空。 http://testtestidam.com:8080/openam/idpssoinit?metaAlias=/realm1/idp 任何人都可以帮忙吗?

  • 更新: 我能够让ADFS将我的用户转发到依赖方应用程序。我使用了ComponentSpace的SAML2.0库和RelayState。即使它成功地转发到WIF应用程序,它也不会将我的用户识别为已通过身份验证。相反,它通过重定向到IDP STS来启动SP启动的SSO场景。我不太确定该怎么办。 原始消息: 我以以下方式配置了单点登录设置: IDP-向我的SP发布SAML2响应的门户网站。 SP-ADF

  • 如何从SAML响应中判断是SP启动的SSO还是IDP启动的SSO?是否有一个属性告诉我是谁发起了SSO? 例如,在这个StackOverflow问题中:SP发起的SSO和IDP发起的SSO之间的差异,他们讨论了差异,但没有谈论XML级别本身...... SAML响应如下所示:

  • TSPL(Template Signal Processing Library) 是一个 C++ 的信号处理库,主要包括滤波器设计、时频分析和小波变换,同时还包含一些关于向量和矩阵的基本算法,所有的算法基于 C++ 模板类编写而成。