我正在开发SAML2服务提供商功能(支持IdP启动的SSO)。
我理解一般流程是: 1)用户在IdP进行身份验证。2)用户通过HTTPPOST启动到我的SP到我的SAMLendpoint——包含XML令牌。3)我SP的断言消费者服务吃掉该令牌,验证它并登录该用户。
我不明白的是证书/私钥部分。我知道IdP与SP共享一个证书,证书用于在SAML令牌到达时验证它…但是,我找不到任何细节(除了官方的SAML规范,我真的很难理解)。
我的问题是:1)谁创建证书?IdP还是SP?2)谁创建私钥?IdP还是SP?3)密钥与证书如何关联?4)密钥/证书如何共享?5)密钥/证书如何创建?
所以,如你所见,我只是想要一个假人的PK/证书解释。就谁创建它们/它们是如何创建的/它们存储在哪里等而言…
非常感谢,
IDP将使用私钥对正在生成并发送给SP的SAML令牌进行签名。SP将使用公钥证书来验证SAML令牌中的签名。
私钥-公钥对将由IDP和保存在IDP服务器上以供签名时使用的私钥创建。公钥将作为元数据的一部分提供给SP。
我建议您阅读PKI文章,以了解PKI设置的详细信息。私钥的存储非常关键,因为它们用于保证令牌不被篡改。