Skip to content

Fix a 50/50 issue in the IALMax code#10141

Merged
jmhooper merged 3 commits intomainfrom
jmhooper-fix-ialmax-50-50-issue
Feb 22, 2024
Merged

Fix a 50/50 issue in the IALMax code#10141
jmhooper merged 3 commits intomainfrom
jmhooper-fix-ialmax-50-50-issue

Conversation

@jmhooper
Copy link
Contributor

We introduced a change (ref: https://github.com/18F/identity-idp/pull/10095/files) that started storing the IALMAX ACR value when the IAL1 ACR value is sent with the minimum authn context comparison. Prior to this change the ACR value in the session would be IAL1.

That commit and later commits introduced code that expected that ACR value to be IALMAX when an IALMAX request was made. That led to issues when an IALMAX request was made with the old code that stored the IAL1 value. Specifically issues occurred in the SAML IDP controller when prompting to user to unlock their PII.

This commit makes the code aware of the old approach as well as the new one and handling both.

We introduced a change (ref: https://github.com/18F/identity-idp/pull/10095/files) that started storing the IALMAX ACR value when the IAL1 ACR value is sent with the minimum authn context comparison. Prior to this change the ACR value in the session would be IAL1.

That commit and later commits introduced code that expected that ACR value to be IALMAX when an IALMAX request was made. That led to issues when an IALMAX request was made with the old code that stored the IAL1 value. Specifically issues occured in the SAML IDP controller when prompting to user to unlock their PII.

This commit makes the code aware of the old approach as well as the new one and handling both.

[skip changelog]
end

def ialmax_request_with_ial1_acr_and_pii_requested_and_locked?
requested_ial == 'ialmax' &&
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method looks directly at the SAML request that is present here instead of at the AuthnContextResolver result so it is not affected by the 50/50 issue.

@jmhooper jmhooper merged commit 4dd9359 into main Feb 22, 2024
@jmhooper jmhooper deleted the jmhooper-fix-ialmax-50-50-issue branch February 22, 2024 21:01
jmhooper added a commit that referenced this pull request Feb 22, 2024
A previous change introduced a temporary fix to avoid a 50/50 state issue in the SAML controller (ref: #10141).

That was intended to be temporary. Once it is deployed and stable the code can be removed. This change removes that code.

[skip changelog]
jmhooper added a commit that referenced this pull request Feb 23, 2024
A previous change introduced a temporary fix to avoid a 50/50 state issue in the SAML controller (ref: #10141).

That was intended to be temporary. Once it is deployed and stable the code can be removed. This change removes that code.

[skip changelog]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants