Come cambio il certificato di un fornitore di servizi Shibboleth? Ho un provider di identità esistente (IDP) e un fornitore di servizi (SP) e devo sostituire il certificato con un certificato firmato da Verisign. Sto testando un certificato autofirmato creato con Shibboleth etc / shibboleth / keygen.bat.
Ho aggiunto il nuovo cert & chiave come standby CredentialResolver in shibboleth2.xml per SP:
<CredentialResolver keyName="Standby" type="File" key="D:/tmp/sp-key-qa.pem" certificate="D:/tmp/sp-cert-qa.pem"/>
Ho aggiornato i metadati per l'IDP aggiungendo il certificato nel file dei metadati:
affidandosi-party.xml:
<metadata:MetadataProvider id="CMSMd" xsi:type="metadata:ResourceBackedMetadataPro$
<metadata:MetadataResource xsi:type="resource:FilesystemResource" file="/usr/s$
</metadata:MetadataProvider>
metadata.xml:
<KeyDescriptor>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
MIIDMDCCAhigAwIBAgIJAJ1BXaNNWMHhMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV
...
E funziona fino a quel punto. Tuttavia, quando commento il vecchio certificato dai metadati sull'IDP e riavvio, fallisce.
metadata.xml:
<!-- Old cert
<KeyDescriptor>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIFjjCCA3agAwIBAgICAsowDQYJKoZIhvcNAQEFBQAwgaAxCzAJBgNVBAYTAlVT
...
Quando provo ad accedere all'URL protetto, reindirizza correttamente all'IDP, autenticarlo, reindirizza all'SP all'URL /Shibboleth.sso/SAML2/Artifact?SAMLart=AAQAAilR ... e fallisce con 'Internal Errore del server. Si prega di contattare l'amministratore del sito. ' nel browser.
Nel registro IDP, dice
10:14:12.124 - ERROR [org.opensaml.ws.security.provider.ClientCertAuthRule:156] - Authentication via client certificate failed for context presenter entity ID urn:company:cms
10:14:12.154 - DEBUG [PROTOCOL_MESSAGE:64] -
<?xml version="1.0" encoding="UTF-8"?><soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">
<soap11:Body>
<saml2p:ArtifactResponse xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" ID="_6cbe5f5c3327d6bea5223322eb637a75" InResponseTo="_d7eda74f5805219b22c4e5be2fe8bbb7" IssueInstant="2012-07-17T14:14:12.143Z" Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">urn:company:sso:idp</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder">
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:RequestDenied"/>
</saml2p:StatusCode>
<saml2p:StatusMessage>Message did not meet security requirements</saml2p:StatusMessage>
</saml2p:Status>
</saml2p:ArtifactResponse>
</soap11:Body>
</soap11:Envelope>
Nel registro SP, dice:
<13>Jul 17 10:13:38 CMSMACHINE01 [apache-error]: [Tue Jul 17 10:13:38 2012] [error] [client 172.17.87.25] client denied by server configuration: D:/Packages/Apache2.2/htdocs/favicon.ico
<-5>[shibd] ERROR [[1]] OpenSAML.SOAPClient - SOAP client detected a SAML error: (urn:oasis:names:tc:SAML:2.0:status:Responder) (Message did not meet security requirements)
<-5>[apache-shibd] ERROR [[9888] shib_handler] Shibboleth.Listener - remoted message returned an error: Identity provider returned a SAML error in response to artifact.
<-5>[apache-shibd] ERROR [[9888] shib_handler] Shibboleth.Apache - Identity provider returned a SAML error in response to artifact.
<-5>[apache-shibd] ERROR [[9888] shib_handler] Shibboleth.ServiceProvider - sendError could not process error template ()
<13>Jul 17 10:14:12 CMSMACHINE01 [apache-error]: [Tue Jul 17 10:14:12 2012] [error] [client 172.17.87.25] Identity provider returned a SAML error in response to artifact., referer: https://sso.dev.company.com/idp/Authn/BB
Per favore aiuto. Ho la sensazione che ci sia un settaggio di politica di sicurezza da qualche parte, ma non riesco a trovare alcuna documentazione su di esso né alcuna impostazione nei file di configurazione.