如何使用Apache mod_mellon模块签名AuthnRequest

时间:2019-06-27 14:45:54

标签: apache saml

我们要求在发送给IDP之前先签名SAML AuthnRequest。我们正在使用 Apache模块mod_mellon进行SAML实现。根据文档,我们在SP元数据xml文件中添加了以下属性,但仍未对请求进行签名。

AuthnRequestsSigned =“ true”

在SP元数据下面供参考。

<EntityDescriptor entityID="https://foo.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
  <SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>MIIC.....</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </KeyDescriptor>
    <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://foo.com/mellon/logout"/>
    <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://foo.com/mellon/postResponse" index="0"/>
</SPSSODescriptor>
</EntityDescriptor>
当我们访问应用程序时,

请求仍未签名。如果遇到类似问题,有人可以提供帮助吗?

谢谢

1 个答案:

答案 0 :(得分:0)

签名是用私钥而不是公钥创建的。

此处未使用SP元数据。

您需要在mellon配置中定义私钥

例如

MellonSPPrivateKeyFile /etc/apache2/mellon/ssotest.key

请参阅https://github.com/UNINETT/mod_auth_mellon