I found out that Xwiki SAML module from https://github.com/xwiki-contrib/sandbox/tree/master/authenticators/xwiki-authentication-saml differs significantly from what I have. It works according to: http://docs.oasis-open.org/wsfed/federation/v1.2/os/ws-federation-1.2-spec-os.html And is implemented in .Net: http://msdn.microsoft.com/en-us/library/ee517291.aspx http://msdn.microsoft.com/en-us/library/bb498017.aspx http://msdn.microsoft.com/en-us/library/bb608217.aspx
Even though by standard I should use location parameter in response parameters, actually it can be invoked with GET/POST parameters, e.g. simply by following: https://...gov.lv/.../default.aspx?wa=wsignin1.0&wtrealm=http%3A%2F% 2F11.22.33.44%2Fxwiki where gov.lv is authentication federation service, and 11.22.33.44 is my xwiki site. Then after authentication service redirects back to xwiki with POST parameters: wa= wsignin1.0 wresult= ========================= <trust:RequestSecurityTokenResponseCollection xmlns:trust="http://docs.oasis-open.org/ws-sx/ws-trust/200512"> <trust:RequestSecurityTokenResponse> <trust:Lifetime> <wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2013-04-11T12:41:15.525Z</wsu:Created> <wsu:Expires xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2013-04-11T13:41:15.525Z</wsu:Expires> </trust:Lifetime> <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <EndpointReference xmlns="http://www.w3.org/2005/08/addressing"> <Address>http://11.22.33.44/xwiki</Address> </EndpointReference> </wsp:AppliesTo> <trust:RequestedSecurityToken> <saml:Assertion MajorVersion="1" MinorVersion="1" AssertionID="_05d753b3-3f4c-4709-ad74-bdce19fb23c2" Issuer="http://...gov.lv/trust" IssueInstant="2013-04-11T12:41:15.525Z" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"> <saml:Conditions NotBefore="2013-04-11T12:41:15.525Z" NotOnOrAfter="2013-04-11T13:41:15.525Z"> <saml:AudienceRestrictionCondition> <saml:Audience>http://11.22.33.44/xwiki</saml:Audience> </saml:AudienceRestrictionCondition> </saml:Conditions> <saml:AttributeStatement> <saml:Subject> <saml:SubjectConfirmation> <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer </saml:ConfirmationMethod> </saml:SubjectConfirmation> </saml:Subject> <saml:Attribute AttributeName="privatepersonalidentifier" AttributeNamespace="http://schemas.xmlsoap.org/ws/2005/05/identity/claims"> <saml:AttributeValue>112233-12345</saml:AttributeValue> </saml:Attribute> <saml:Attribute AttributeName="givenname" AttributeNamespace="http://schemas.xmlsoap.org/ws/2005/05/identity/claims"> <saml:AttributeValue>VALDIS</saml:AttributeValue> </saml:Attribute> <saml:Attribute AttributeName="surname" AttributeNamespace="http://schemas.xmlsoap.org/ws/2005/05/identity/claims"> <saml:AttributeValue>VĪTOLIŅŠ</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement> <saml:AuthenticationStatement AuthenticationMethod="URN:..." AuthenticationInstant="2013-04-11T12:41:15.525Z"> <saml:Subject> <saml:SubjectConfirmation> <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer </saml:ConfirmationMethod> </saml:SubjectConfirmation> </saml:Subject> </saml:AuthenticationStatement> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <ds:Reference URI="#_05d753b3-3f4c-4709-ad74-bdce19fb23c2"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:DigestValue>HU3/uQFbvSciSkPXxQURI+hUkNU=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue>... </ds:SignatureValue> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>... </X509Certificate> </X509Data> </KeyInfo> </ds:Signature> </saml:Assertion> </trust:RequestedSecurityToken> ...Bla, bla, bla... ============================= Am I right, that I need to change: 1. showLogin() where most of authRequest.set... seems unnecessary, 2. checkSAMLResponse() where I need to do request.getParameter("wresult") and somehow extract out necessary data and check them from this XML. Thanks for any hints! Valdis _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users