1

我在记录 ADFS SSO 时遇到了这个问题。“没有加密 SAML 响应的解密密钥”。从另一个帐户登录正在成功。有人可以帮我解决这个问题。我正在使用 Express 和 passport-saml 工作。

这是我卡住的代码快照。

node_modules/passport-saml/lib/passport-saml/saml.js 为空。在第 623:15 行

 if (encryptedAssertions.length == 1) {
  if (!self.options.decryptionPvk)
    throw new Error('No decryption key for encrypted SAML response');
  var encryptedAssertionXml = encryptedAssertions[0].toString();
4

1 回答 1

6

SAML 中加密的工作原理:身份提供者使用服务提供者的公钥加密 SAML 响应的某些元素。服务提供商使用与用于加密的公钥对应的私钥进行解密。换句话说,服务提供商需要拥有一个密钥对——私钥和公钥——才能使这个用例工作。

上述密钥对的私钥需要通过decryptionPvkpassport-saml中的参数进行配置。由于断言是加密的,但在 中找不到私钥decryptionPvk,因此 passport-saml 会抱怨。

删除 ADFS 端的加密或将私钥提供给 passport-saml。

于 2019-09-16T15:23:20.177 回答