我正在开发SAML2服务提供商功能(支持IdP启动的SSO)。
我理解一般流程是: 1)用户在IdP进行身份验证。 2)用户通过HTTP POST启动我的SP到我的SAML端点 - 包含XML令牌。 3)我的SP的Assertion Consumer Service吃掉了令牌,验证它并将所述用户记录下来。
我不明白的是证书/私钥部分。我知道IdP与SP共享一个证书,并且该证书用于在SAML令牌到达时验证它......但是,我找不到任何关于此的详细信息(除了官方的SAML规范,我真的很难理解。)
我的问题是: 1)谁创建了证书? IdP还是SP? 2)谁创建了私钥? IdP还是SP? 3)密钥与证书有何关系? 4)如何共享密钥/证书? 5)如何创建密钥/证书?
所以,正如你所看到的,我只想要一个PK /证书来解释傻瓜。关于谁创建它们/如何创建它们/它们存储在哪里等等......
非常感谢,
答案 0 :(得分:1)
IDP将使用私钥对正在生成并发送到SP的SAML令牌进行签名。 SP将使用公钥证书来验证SAML令牌中的签名。
私钥 - 公钥对将由IDP创建,私钥保存在IDP服务器上,以便在签名期间使用。公钥将作为元数据的一部分提供给SP。
我建议您阅读PKI文章,了解PKI设置的详细信息。私钥的存储非常关键,因为它们用于保证令牌不被篡改。