SP Init SSO使用javasaml

时间:2017-02-25 17:24:27

标签: java single-sign-on saml spring-saml federated-identity

我对这个世界很陌生并且在过去两周内学到了很多东西。想到这一点,我正在为支持多个Idp的服务提供商启动的SSO(在应用程序上)起草一个解决方案。我正在使用onelogin的javasaml库并配置样本工具包以使用我们自己的身份提供程序生成身份验证请求/响应以了解协议。

以下是我需要帮助进一步了解的问题。 Plesae建议。

识别客户ID

  1. 正如我所提到的,我们的应用程序将启动sso流程 应该支持多个Idp。我期待有一个共同点 受保护的资源,供客户启动此流程。我是 错误的想法是这样的吗?比如使用查询字符串来区分和识别IDP。 https://www.myapp.com?param=customerid
  2. 我还了解到应用程序URL可以包含子域 映射到唯一客户以识别的信息 Idp.How我实现这个吗?
  3. 还有其他方法吗?而不要求用户选择标识符。
  4. 用户

    在我的解决方案中,app用户名可能与sso用户名不同。我了解到我可以请求Idp提供商通过客户用户商店在saml响应中提供我的应用程序用户名作为属性。

    1. 客户是否可以将sp应用程序用户名作为查询字符串发送(如问题1)?
    2. 是否有其他方法可以获取sp应用程序的用户名?再次没有要求用户识别。
    3. 感谢您分享您的知识和指导。

1 个答案:

答案 0 :(得分:1)

如果执行基于SAML的基于WebSSO(无帐户链接),则身份验证(如此用户标识)仅发生在IdP端,而不是SP端。 SP'只是'消耗关于身份验证身份的断言。断言可以包括属性语句,SP(应用程序)可以使用这些属性语句将身份映射到本地“用户配置文件”。标准SAML元数据不提供定义应发送哪些属性语句的方法,因此您需要与IdP的管理员协商。

IdP发现可以通过不同的方式完成,SAML规范讨论了首选的IdP cookie。

您可以显示用户可以选择的IdP列表,也可以使用HTTP请求中的某些信息进行一些智能猜测。