You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-5Lines changed: 13 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -522,6 +522,13 @@ There's an easier method -- use a metadata exchange. Metadata is just an XML fi
522
522
523
523
Using ````parse_remote```` IdP metadata can be obtained and added to the settings without further ado.
524
524
525
+
Take in mind that the OneLogin_Saml2_IdPMetadataParser class does not validate in any way the URL that is introduced in order to be parsed.
526
+
527
+
Usually the same administrator that handles the Service Provider also sets the URL to the IdP, which should be a trusted resource.
528
+
529
+
But there are other scenarios, like a SAAS app where the administrator of the app delegates this functionality to other users. In this case, extra precaution should be taken in order to validate such URL inputs and avoid attacks like SSRF.
@@ -602,12 +610,12 @@ An explanation of some advanced request parameters:
602
610
603
611
*`https` - Defaults to ``off``. Set this to ``on`` if you receive responses over HTTPS.
604
612
605
-
*`lowercase_urlencoding` - Defaults to `false`. ADFS users should set this to `true`.
606
-
607
-
*`request_uri` - The path where your SAML server recieves requests. Set this if requests are not recieved at the server's root.
613
+
*`request_uri` - The path where your SAML server receives requests. Set this if requests are not received at the server's root.
608
614
609
615
*`query_string` - Set this with additional query parameters that should be passed to the request endpoint.
610
616
617
+
*`validate_signature_from_qs` - If `True`, use `query_string` to validate request and response signatures. Otherwise, use `get_data`. Defaults to `False`. Note that when using `get_data`, query parameters need to be url-encoded for validation. By default we use upper-case url-encoding. Some IdPs, notably Microsoft AD, use lower-case url-encoding, which makes signature validation to fail. To fix this issue, either pass `query_string` and set `validate_signature_from_qs` to `True`, which works for all IdPs, or set `lowercase_urlencoding` to `True`, which only works for AD.
0 commit comments