saml2 mtls issue

Corin.Langosch at swisscom.com Corin.Langosch at swisscom.com
Tue Nov 9 14:11:23 UTC 2021


Hi guys,

I need to configure a shibboleth SP with an IDP which requires mTLS for the SAML2 artifact back-channel. The challenge is that the IDP requires different certificates to be used for encryption, signing and the mTLS of the back-channel.

When I configure the RelyingParty#Name with the entity-id of the IDP it seems shibboleth is using the mtls-crt (client certificate) not only for the mTLS of the back-channel but also already in the AuthnRequest:

<RelyingParty Name="some-idp" keyName="client-cert"/>
<CredentialResolver type="Chaining">
  <CredentialResolver type="File" use="signing" certificate="sp-signing-cert.pem" key="sp-signing-key.pem"/>
  <CredentialResolver type="File" use="encryption" certificate="sp-encrypt-cert.pem" key="sp-encrypt-key.pem"/>
  <CredentialResolver type="File" certificate="mtls-crt.pem" key="mtls-key.pem" keyName="client-cert"/>
</CredentialResolver>

When I configure the RelyingParty#Name with the domain of the back-channel (ex. mtls.example.org) it seems the client-certificate is not used at all.

<RelyingParty Name="mtls.example.org" keyName="client-cert"/>
<CredentialResolver type="Chaining">
  <CredentialResolver type="File" use="signing" certificate="sp-signing-cert.pem" key="sp-signing-key.pem"/>
  <CredentialResolver type="File" use="encryption" certificate="sp-encrypt-cert.pem" key="sp-encrypt-key.pem"/>
  <CredentialResolver type="File" certificate="mtls-crt.pem" key="mtls-key.pem" keyName="client-cert"/>
</CredentialResolver>

I also tried a different syntax like putting the domain name in the keyName, but it still doesn't get used:

<RelyingParty keyName="mtls.example.org"/>
<CredentialResolver type="Chaining">
  <CredentialResolver type="File" use="signing" certificate="sp-signing-cert.pem" key="sp-signing-key.pem"/>
  <CredentialResolver type="File" use="encryption" certificate="sp-encrypt-cert.pem" key="sp-encrypt-key.pem"/>
  <CredentialResolver type="File" certificate="mtls-crt.pem" key="mtls-key.pem" keyName="mtls.example.org"/>
</CredentialResolver>

How can I make shibboleth to use the client-certificate only for the mTLS of the back-channel and the other two certificates for signing and encryption? Thank you very much in advance for any help.

Corin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20211109/bc5d6693/attachment.htm>


More information about the users mailing list