SAML证书,私钥

时间:2019-07-08 16:22:27

标签: single-sign-on saml saml-2.0 okta

因此,我正在为我们的应用程序通过SAML2.0实现SSO。我们正在使用saml2-js,并且正在执行SP发起的SSO。

该实现已经准备就绪,并且可以正常工作,但是我有很多地方很难解决。

  1. saml2-js要求您在ServiceProvider实例上提供私钥和证书-> https://www.npmjs.com/package/saml2-js#serviceprovideroptions我不理解它们的用途,并且saml2-js不提供有关以下内容的任何有意义的描述他们。我试图从SAML的角度进行了解,但我仍然不知道。
  2. 作为IdP,Okta是目标,在Okta中设置SAML之后,Okta提供它的证书。现在,我理解了这一部分,因为Okta将签署响应,并且在我们这方面,SP使用该证书来确保断言来自某个受信任的方。但是Okta如何确保请求来自受信任的一方?我以为会使用saml2-js要求我们提供的证书,但是事实证明,这种假设是错误的,因为Okta不会以任何方式获得我们的证书
  3. 在第6点的Okta(okta guide)中设置SAML时,它们要求您填充受众群体URI,默认情况下,该受众群体URI是SP entity_id。但这可以是任意值吧?这是做什么用的,为什么是强制性的?

1 个答案:

答案 0 :(得分:2)

  1. 如果服务提供者正在签名SAML消息或解密SAML断言,则需要私钥。如果两者都不是,则不需要私钥。

  2. 我不认为Okta要求对SAML身份验证请求进行签名。这并不罕见。如果未签名SAML身份验证请求,则IDP不能确定是谁发送了邮件,但这通常不会出现任何安全问题。如果单击Okta配置中的“显示高级设置”链接,则可以选择提供证书。但是,只有在注销信息签名时才需要。

  3. 受众URI标识SAML响应的预期收件人,该收件人应该是SP。它是SAML协议的一部分,因此,您希望SP对照SP的实体ID检查其值。如果您查看SAML规范,那么它就是在帮助维护法院排除保修的目的。您可以得出有关此功能有用性的结论。

相关问题