Skip to content

Commit bd8425c

Browse files
committed
sources/SAML: fix signed response verify
1 parent 9763cf3 commit bd8425c

File tree

6 files changed

+223
-40
lines changed

6 files changed

+223
-40
lines changed

authentik/sources/saml/processors/response.py

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,38 @@ def parse(self):
7777
self._root_xml = b64decode(raw_response.encode())
7878
self._root = fromstring(self._root_xml)
7979

80+
sig_errors = []
81+
if self._source.verification_kp and self._source.signed_response:
82+
resp_error = self._verify_signed("/samlp:Response")
83+
if resp_error == "":
84+
self.response_signature_verified = True
85+
else:
86+
self.response_signature_verified = False
87+
sig_errors.append(resp_error)
88+
8089
if self._source.encryption_kp:
8190
self._decrypt_response()
8291

83-
if self._source.verification_kp:
84-
self._verify_signed()
92+
if self._source.verification_kp and self._source.signed_assertion:
93+
assert_error = self._verify_signed("/samlp:Response/saml:Assertion")
94+
if assert_error != "":
95+
raise InvalidSignature(f"Assertion signature invalid: {assert_error}")
96+
97+
if (
98+
self._source.verification_kp
99+
and self._source.signed_response
100+
and (self.response_signature_verified is not True)
101+
):
102+
post_error = self._verify_signed("/samlp:Response")
103+
if post_error == "":
104+
self.response_signature_verified = True
105+
else:
106+
self.response_signature_verified = False
107+
sig_errors.append(resp_error)
108+
109+
if self._source.signed_response and (self.response_signature_verified is False):
110+
raise InvalidSignature(f"SAML Response signature invalid: {'; '.join(sig_errors)}")
111+
85112
self._verify_request_id()
86113
self._verify_status()
87114

@@ -114,45 +141,34 @@ def _decrypt_response(self):
114141
decrypted_assertion,
115142
)
116143

117-
def _verify_signed(self):
144+
def _verify_signed(self, xpath: str) -> str:
118145
"""Verify SAML Response's Signature"""
119-
signatures = []
120-
121-
if self._source.signed_response:
122-
signature_nodes = self._root.xpath("/samlp:Response/ds:Signature", namespaces=NS_MAP)
123-
124-
if len(signature_nodes) != 1:
125-
raise InvalidSignature("No Signature exists in the Response element.")
126-
signatures.extend(signature_nodes)
127-
128-
if self._source.signed_assertion:
129-
signature_nodes = self._root.xpath(
130-
"/samlp:Response/saml:Assertion/ds:Signature", namespaces=NS_MAP
131-
)
132-
133-
if len(signature_nodes) != 1:
134-
raise InvalidSignature("No Signature exists in the Assertion element.")
135-
signatures.extend(signature_nodes)
136-
137-
if len(signatures) == 0:
138-
raise InvalidSignature()
139-
140-
for signature_node in signatures:
141-
xmlsec.tree.add_ids(self._root, ["ID"])
142-
143-
ctx = xmlsec.SignatureContext()
144-
key = xmlsec.Key.from_memory(
145-
self._source.verification_kp.certificate_data,
146-
xmlsec.constants.KeyDataFormatCertPem,
147-
)
148-
ctx.key = key
149-
150-
ctx.set_enabled_key_data([xmlsec.constants.KeyDataX509])
151-
try:
152-
ctx.verify(signature_node)
153-
except xmlsec.Error as exc:
154-
raise InvalidSignature() from exc
155-
LOGGER.debug("Successfully verified signature")
146+
nodes = self._root.xpath(xpath, namespaces=NS_MAP)
147+
if len(nodes) != 1:
148+
return f"no-node:{xpath}"
149+
node = nodes[0]
150+
sigs = node.findall("ds:Signature", namespaces=NS_MAP)
151+
if not sigs:
152+
return f"{xpath}: no-signature"
153+
if len(sigs) > 1:
154+
return f"{xpath}: multiple-signatures ({len(sigs)})"
155+
sig = sigs[0]
156+
157+
xmlsec.tree.add_ids(self._root, ["ID"])
158+
ctx = xmlsec.SignatureContext()
159+
key = xmlsec.Key.from_memory(
160+
self._source.verification_kp.certificate_data,
161+
xmlsec.constants.KeyDataFormatCertPem,
162+
)
163+
ctx.key = key
164+
try:
165+
ctx.verify(sig)
166+
return "" # OK
167+
except xmlsec.Error as exc:
168+
tag = node.tag.split("}", 1)[-1]
169+
ref_uri = sig.xpath("ds:SignedInfo/ds:Reference/@URI", namespaces=NS_MAP)
170+
ref_uri = ref_uri[0] if ref_uri else "N/A"
171+
return f"{tag}:ref={ref_uri}: {exc}"
156172

157173
def _verify_request_id(self):
158174
if self._source.allow_idp_initiated:
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="pfx6fa54702-0078-1485-2811-314e5865aac0" Version="2.0" IssueInstant="2014-03-30T20:48:44Z" Destination="https://pitbulk.no-ip.org/newonelogin/demo1/index.php?acs" InResponseTo="ONELOGIN_6bffb4ef837600e0676cb21f4f0aa4bad94dd962"><saml:Issuer>https://pitbulk.no-ip.org/simplesaml/saml2/idp/metadata.php</saml:Issuer><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
2+
<ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
3+
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
4+
<ds:Reference URI="#pfx6fa54702-0078-1485-2811-314e5865aac0"><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>KX0IuftI6uj+8bCW4GnGFbd+ahw=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>Zl7N2vcE3N6+KeTXfEcsZ3qQ/AQXiHwotEbIdgn5Ce6Sc/FZLXiU1C8DQmiaZMGX2Bmn2rcCXknCgPZ9kVSTC1PmFwRBQlj3HLFoakLz+RBTnBI2laI4+we5eT8ee7aZgxmnv1S7YWlKrV6Kd6uyMXSWPC61iOXuCRn2g5dyhgU=</ds:SignatureValue>
5+
<ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIICgTCCAeoCCQCbOlrWDdX7FTANBgkqhkiG9w0BAQUFADCBhDELMAkGA1UEBhMCTk8xGDAWBgNVBAgTD0FuZHJlYXMgU29sYmVyZzEMMAoGA1UEBxMDRm9vMRAwDgYDVQQKEwdVTklORVRUMRgwFgYDVQQDEw9mZWlkZS5lcmxhbmcubm8xITAfBgkqhkiG9w0BCQEWEmFuZHJlYXNAdW5pbmV0dC5ubzAeFw0wNzA2MTUxMjAxMzVaFw0wNzA4MTQxMjAxMzVaMIGEMQswCQYDVQQGEwJOTzEYMBYGA1UECBMPQW5kcmVhcyBTb2xiZXJnMQwwCgYDVQQHEwNGb28xEDAOBgNVBAoTB1VOSU5FVFQxGDAWBgNVBAMTD2ZlaWRlLmVybGFuZy5ubzEhMB8GCSqGSIb3DQEJARYSYW5kcmVhc0B1bmluZXR0Lm5vMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDivbhR7P516x/S3BqKxupQe0LONoliupiBOesCO3SHbDrl3+q9IbfnfmE04rNuMcPsIxB161TdDpIesLCn7c8aPHISKOtPlAeTZSnb8QAu7aRjZq3+PbrP5uW3TcfCGPtKTytHOge/OlJbo078dVhXQ14d1EDwXJW1rRXuUt4C8QIDAQABMA0GCSqGSIb3DQEBBQUAA4GBACDVfp86HObqY+e8BUoWQ9+VMQx1ASDohBjwOsg2WykUqRXF+dLfcUH9dWR63CtZIKFDbStNomPnQz7nbK+onygwBspVEbnHuUihZq3ZUdmumQqCw4Uvs/1Uvq3orOo/WJVhTyvLgFVK2QarQ4/67OZfHd7R+POBXhophSMv1ZOo</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature><samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></samlp:Status><saml:EncryptedAssertion><xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Type="http://www.w3.org/2001/04/xmlenc#Element"><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc"/><dsig:KeyInfo xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><xenc:EncryptedKey><xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/><xenc:CipherData><xenc:CipherValue>sACaXsz9JG3dTzKY6+GEapKfdWI8LrMqyuwQHp3n+fTbgfjvFPkg2HMIX0A0otAVKnkDiLDRFPDhAjqFNF1sr1GQjqWv/xwcwLvMCZ+25LXPcvNkkNkffwWLUuP8AE7do8XynvYj0pA6xxv/ikseuqRmj2y3lTJngu+DLwiKJuI=</xenc:CipherValue></xenc:CipherData></xenc:EncryptedKey></dsig:KeyInfo>
6+
<xenc:CipherData>
7+
<xenc:CipherValue>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</xenc:CipherValue>
8+
</xenc:CipherData>
9+
</xenc:EncryptedData></saml:EncryptedAssertion></samlp:Response>
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0"?>
2+
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="pfxb5fecb6f-64b7-d4ca-f07e-55bd982b57d7" Version="2.0" IssueInstant="2014-07-17T01:01:48Z" Destination="http://sp.example.com/demo1/index.php?acs" InResponseTo="ONELOGIN_4fee3b046395c4e751011e97f8900b5273d56685">
3+
<saml:Issuer>http://idp.example.com/metadata.php</saml:Issuer><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
4+
<ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
5+
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
6+
<ds:Reference URI="#pfxb5fecb6f-64b7-d4ca-f07e-55bd982b57d7"><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>paAKPyWfoctUwcvhymHb5M+nYg8=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>HtALAH0jNS3uVdOVTezLNDP10AXqDps+4Xky0dCEh5mwursQpOWIOc3MKcooTg14VWQYQr96bNfk4vBbhU1FWNp+An/iM3eZFuVMrjVfvQzEAa/0y7QG2MHkyScwpP165HRtNgZdTkipJmScQcfk9Nq6trx2f7w7Unno1F+GBGU8I4mVVgHzmFrZ9I+6JEEPuCjqy7qISUmNo4QkVGq1g6AuncNP8iUgX7zdNpikRh6u7PtIdpjfKah+GXfvTuvFQYHFT4v8sEvOHhnhjL4SJ4A16DzbyFUZMUlqyUweoV/ssn0fnGWaddb1KnyvRwH+i8sbDKATZfmxuK49fJLgFkaMyDX8TbA5qlDuMxS+9ZgpP6otaX0yeFpdB4G0QclUMqEmGhB9qRfE85NXHkmlHYBElG5mWdU7GfxmsIEj83Yuhy2UsUGFQIFym7BMpnCBIuNK16pCajnFgDf6+uxQYsBmemsDthDn6GgnNJjkau8xTXldoNYp+vKmG7oz7tBVRZa3aVBjMQKZ70L5Ur+Sctz7qEQDaYd0G20JoJSKW8Wz9bas1ib/gEOijM2TA928IbIRqKTNidy8hRDqBYo28HOIZy2UDoa0J3iTRriCRGdaJ8y25FsvWiTHKfxvNxG5ebzM9bNRyiNwlIp7xBR6yyTr2lsNacUnI4SQTH8ISS0=</ds:SignatureValue>
7+
<ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIIFUzCCAzugAwIBAgIRAL6tbNcE9Ej9gNlbGKswfFMwDQYJKoZIhvcNAQELBQAwHTEbMBkGA1UEAwwSYXV0aGVudGlrIDIwMjUuNi4zMB4XDTI1MDcxNTE4MDQzNloXDTI2MDcxNjE4MDQzNlowVjEqMCgGA1UEAwwhYXV0aGVudGlrIFNlbGYtc2lnbmVkIENlcnRpZmljYXRlMRIwEAYDVQQKDAlhdXRoZW50aWsxFDASBgNVBAsMC1NlbGYtc2lnbmVkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjmut/+bBRLlyrbf+WIfg8ZTw9t6VnsiU1n04nPTulpRAz4nBOoOHNRIruSpZyFeFa6x9jwn4Ma5EFUH7HqnRvhoujm8U17OglXWZt0DLCZ6S5xPmdMogFXjJDmg9okIcI/cb9VbR6I8uvm1oiaOWCr36RTiqZ6rmdjQcuUPLr1+V/LxWQI463S+5QA2HZxAGalp45MJAz2sa9iczktKMgyYlfjj1cruFARxxeheu5qIK7aQWfyPj1QlMb9mi4VQaxUwGrAui4Tq614ivRJY2SkZb0Aq/LLSQoQWYHtYyQIasrOXJm0JuPDqhINPBDowyhu8DihC3uzOpmTXLKc5UoIQk+Q1h5iH74A3/kxOJUw13FXzRiDxC/yGthPYLyFHsDiJolscMKSCqlDvEMcpM4mxFeud9sKUb71SZr8sqmJl3qtvZmKpkR4y8pN2c00p10t0htqONmr5kyPxmhz0HCrosiPYB4olNjaydKviNTtPJ7TtnPyeA3iXGzCP1e80XzUoJrDqON5/GcpYgqsP/kGj8Qvqesa4Fez+1+5pAGHN2VzQbkHAgK3s4YRXrGLTs7wg27F9T0RE28Mm0RYBkYpdp4/5PuTTulthB9mkUBSJMgENmQAYkapvonFDsJkTi39qnsddbZusOLT4z3hsA38eFEwRqnbNZVUGPIp/O1SsCAwEAAaNVMFMwUQYDVR0RAQH/BEcwRYJDRUZ4QXVLRzV6SlVUTWpWNTJoMkRJMUQ5MXdLblZKaXFwNmpwRTRTTy5zZWxmLXNpZ25lZC5nb2F1dGhlbnRpay5pbzANBgkqhkiG9w0BAQsFAAOCAgEAYLThxDVpA1OIAVK/buueRJExIWr6y4s6NtpuR8UQEcfq5hfoc4zMFGHR5+u1WFIb5siK25xh/OnS7bLdLic6AkjZSrx91+0v2Jn9gfUqbs5AJ040XzAAdx/Mb4s0+537yhB+/JXPylR1QxhGbO7koXQ5JDhAXWKCw2O1C+80mN8dbhQvDkEtsXrHrtXclcqf2TT89XAzc5HAC8NmP4SF+FafAREQB1KdaG4QAbc/gnjsX2YJD89SDL+3jMp6F7R1Ym+bWt5oWqx2tkm6HGXd3fbpfQlnfrRN60tMjjLmw1cDMhOhpdragY5zokniEUL2pKVtrxFp7V1ZpoMI0Kt5MKkOXrezi542NWSgkGehlsDLD9wtuCNem2arR0mNnMLdYkMG7G0dpAq3Tl32dgfMfyKnNyE2O/6/EeEuzUH2NfTU1p7AUQfLrf4rtNcJEs9OAPuC9vy7w9YEpF997T+FhR2Ub1C423NQj4bwlS/9f7MIBkSi1EgnQuiSGB5epxAKI3oOVrmzOpTuvr6wZXV9pM3zdfbcoGuFWP6Ix7W8G5vg+0WvoSjc2fwGXYlidEK3xlQSMAaQ4CMClpPsKLScRq1nrQGzPYoiL1DYubsOWx9ohll6+jNjKI6f79WwbHYrW4EeRIOz38+m46EDjAWZBMgrE7J/3DhgeLEVJYBA5K0=</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature>
8+
<samlp:Status>
9+
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
10+
</samlp:Status>
11+
<saml:Assertion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="_d71a3a8e9fcc45c9e9d248ef7049393fc8f04e5f75" Version="2.0" IssueInstant="2014-07-17T01:01:48Z">
12+
<saml:Issuer>http://idp.example.com/metadata.php</saml:Issuer>
13+
<saml:Subject>
14+
<saml:NameID SPNameQualifier="http://sp.example.com/demo1/metadata.php" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient">_ce3d2948b4cf20146dee0a0b3dd6f69b6cf86f62d7</saml:NameID>
15+
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
16+
<saml:SubjectConfirmationData NotOnOrAfter="2024-01-18T06:21:48Z" Recipient="http://sp.example.com/demo1/index.php?acs" InResponseTo="ONELOGIN_4fee3b046395c4e751011e97f8900b5273d56685"/>
17+
</saml:SubjectConfirmation>
18+
</saml:Subject>
19+
<saml:Conditions NotBefore="2014-07-17T01:01:18Z" NotOnOrAfter="2024-01-18T06:21:48Z">
20+
<saml:AudienceRestriction>
21+
<saml:Audience>http://sp.example.com/demo1/metadata.php</saml:Audience>
22+
</saml:AudienceRestriction>
23+
</saml:Conditions>
24+
<saml:AuthnStatement AuthnInstant="2014-07-17T01:01:48Z" SessionNotOnOrAfter="2024-07-17T09:01:48Z" SessionIndex="_be9967abd904ddcae3c0eb4189adbe3f71e327cf93">
25+
<saml:AuthnContext>
26+
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
27+
</saml:AuthnContext>
28+
</saml:AuthnStatement>
29+
<saml:AttributeStatement>
30+
<saml:Attribute Name="uid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
31+
<saml:AttributeValue xsi:type="xs:string">test</saml:AttributeValue>
32+
</saml:Attribute>
33+
<saml:Attribute Name="mail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
34+
<saml:AttributeValue xsi:type="xs:string">test@example.com</saml:AttributeValue>
35+
</saml:Attribute>
36+
</saml:AttributeStatement>
37+
</saml:Assertion>
38+
</samlp:Response>

0 commit comments

Comments
 (0)