Commit 873309e
committed
Stop validating InResponseTo when AllowIDPInitiated is set
With this change we no longer validate InResponseTo when AllowIDPInitiated is set. Here's why:
The SAML specification does not provide clear guidance for handling InResponseTo for IDP-initiated requests where there is no request to be in response to. The specification says:
InResponseTo [Optional]
The ID of a SAML protocol message in response to which an attesting entity can present the
assertion. For example, this attribute might be used to correlate the assertion to a SAML
request that resulted in its presentation.
The initial thought was that we should specify a single empty string in possibleRequestIDs for IDP-initiated requests so that we would ensure that an InResponseTo was *not* provided in those cases where it wasn't expected. Even that turns out to be frustrating for users. And in practice some IDPs (e.g. Rippling) set a specific non-empty value for InResponseTo in IDP-initiated requests.
Finally, it is unclear that there is significant security value in checking InResponseTo when we allow IDP initiated assertions.
This issue has been reported quite a few times, including:
Fixes #291 #286 #300 #301 #2861 parent 6614c51 commit 873309e
1 file changed
+27
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
717 | 717 | | |
718 | 718 | | |
719 | 719 | | |
720 | | - | |
721 | | - | |
722 | | - | |
723 | | - | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
724 | 747 | | |
725 | | - | |
726 | | - | |
727 | | - | |
728 | 748 | | |
729 | 749 | | |
730 | 750 | | |
| |||
0 commit comments