Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LG-14813 default users requiring facial match to LN #11531

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

theabrad
Copy link
Contributor

🎫 Ticket

Link to the relevant ticket:
LG-14813

🛠 Summary of changes

If a user is going through IdV with a Service Provider requiring facial match, we want to default them to Lexis Nexis and not have them go through Socure.

📜 Testing Plan

Provide a checklist of steps to confirm the changes.

  • Set doc_auth_vendor_default: 'socure' in application.yml
  • Go through IdV with Facial Match required.
  • Confirm that you are sent through the LN flow instead of socure
  • Try going through IdV without facial match required.
  • Confirm you are sent through the Socure flow.

changelog: Upcoming Features, IdV Socure, default users requiring facial match to LN
Copy link
Member

@AShukla-GSA AShukla-GSA left a comment

Choose a reason for hiding this comment

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

LGTM!

@@ -6,8 +6,16 @@ module DocAuthVendorConcern

# @returns[String] String identifying the vendor to use for doc auth.
def doc_auth_vendor
bucket = ab_test_bucket(:DOC_AUTH_VENDOR)
if resolved_authn_context_result.facial_match? && default_vendor_is_not_mock?
Copy link
Contributor

@amirbey amirbey Nov 21, 2024

Choose a reason for hiding this comment

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

could we have mock, lexisnexis and socure enabled at the same time. what if a facial match is required and the default vendor is :mock? would a user be routed to a vendor that does not support facial match? 🤔

Copy link
Contributor

Choose a reason for hiding this comment

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

yeah, say default is socure and facial match is requested. Maybe:

bucket = ab_test_bucket(:DOC_AUTH_VENDOR
if resolved_authn_context_result.facial_match? && bucket != :mock
  bucket = :lexis_nexus
end

Copy link
Contributor

Choose a reason for hiding this comment

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

furthering Doug's point ... this appears to assume that mock or lexis nexis is enabled as a doc auth vendor. It seems that we'd need to know whether a vendor is enabled before routing to that vendor. what happens if only socure is enabled, would we have a doc auth vendor when a facial match is req'd 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah, say default is socure and facial match is requested. Maybe:

bucket = ab_test_bucket(:DOC_AUTH_VENDOR
if resolved_authn_context_result.facial_match? && bucket != :mock
  bucket = :lexis_nexus
end

We want to bypass A/B test bucketing if facial match is required.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

furthering Doug's point ... this appears to assume that mock or lexis nexis is enabled as a doc auth vendor. It seems that we'd need to know whether a vendor is enabled before routing to that vendor. what happens if only socure is enabled, would we have a doc auth vendor when a facial match is req'd 🤔

If LN is not enabled should we just redirect them to an error page?

Comment on lines -67 to +68
let(:idv_vendor) { Idp::Constants::Vendors::LEXIS_NEXIS }
context 'when doc_auth_vendor is Lexis Nexis' do
let(:idv_vendor) { Idp::Constants::Vendors::LEXIS_NEXIS }
Copy link
Contributor

Choose a reason for hiding this comment

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

thanks 🙏🏿

Copy link
Contributor

@amirbey amirbey left a comment

Choose a reason for hiding this comment

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

what if mock is default vendor and facial match is req'd? do we have testing for this?

@amirbey amirbey self-requested a review November 22, 2024 19:47
@@ -56,9 +56,13 @@
{}
end
let(:idv_vendor) { Idp::Constants::Vendors::MOCK }
let(:vot) { 'P1' }
Copy link
Contributor

Choose a reason for hiding this comment

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

Vectors of Trust is deprecated and slated to be removed. 😢

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.

4 participants