LG-12858 - Add new vtr option (enhanced ipp)
🛑 -- DO NOT MERGE- WAITING ON DEPENDENCY -- 🛑
All items in list must be complete before this can be merged:
- [ ] Ensure dependency has been merged in and has been deployed to production
🎫 Ticket
LG-12858 Implementation: Add new Vector of Trust Option on Sinatra for F&F testing
🛠 Summary of changes
- Set eipp_allowed in staging in oidc-sinatra*
- Set eipp_allowed to false in all other environments in oidc-sinatra*
* I think this is achieved. Please see changes in
.env.exampleandconfig.rb - Added
Enhanced In-Person Proofingoption to the ial (level of service) drop down conditionally (to display in staging only) - Mapped new ial (enhanced-ipp-required) to vtr_values P1.Pe (
P1: Identity proofing is performedPe:Enhanced proofing) - Mapped new ial to arc_value
📜 Testing Plan
- Pull down branch
keithw/LG-13235-consume-eipp-data-from-sinatrafrom idp. Open fileapp/services/service_provider_request_handler.rband addputs sp_sessionon the last line in initialize. - Start server on branch
keithw/LG-13235-consume-eipp-data-from-sinatra - Pull down this branch locally.
- Open .env and ensure
idp_environmentis set to dev - Start the server.
- Visit
http://localhost:9292/ - Click on the Level of Service drop down. You should not see
Enhanced In-Person Proofingas an option. - Kill the server. Change the value of
idp_environmentto staging. Start the server. - Click on the Level of Service drop down. You should see
Enhanced In-Person Proofingas an option now. - Change the Level of Service drop down to
Enhanced In-Person Proofingand click sign in. - You should be taken to Login locally
- Inspect the identity-oidc-sinatra terminal. You should see the vtr (vector of trust contains value
C1.P1.Pe(Pe= enhanced proofing) and that the ial is set toenhanced-ipp-required - Inspect the identity-idp terminal for the log you set up in testing plan 1. You should see that vrt is added to the session (that is Keith's PR) and that ["C1.P1.Pe"] is set.
- Visit
http://localhost:9292/again. - Confirm we are not changing existing behavior. Pick other options in the Level of Service drop down. Ensure that you are not seeing
C1.P1.Pevalue be passed in whenEnhanced In-Person Proofingis not selected (ie you should see Pb for biometrics rather than Pe) and that the ial set is notenhanced-ipp-required. (Step 12 and 13)
@KeithNava @eileen-nava I am re-requesting a review because I made what I think are fairly large changes to the conditional logic of the drop down. Pay extra attention to the last commit (see default_config func in config.rb). I think this is how we should go about this but not 100% confident. Please review and fire up again. The testing plan has been updated. Thanks!
@eileen-nava @KeithNava This is ready for a final review! Sorry for the delay.
I updated the solution to use env variable set in Cloud.gov as suggested by @zachmargolis. 🙏 💯 I added screenshots above for each env so you can see how "eipp_allowed" is set in each environment. I also updated the testing instructions to fit this new approach.
I request review again primary to ensure how I am fetching that env variable is accurate. It should default to false (even though I set in all envs) and I am expecting it to come in as a string. I was using vtr_disabled as an example.
Thanks again.