CDCgov / prime-reportstream

ReportStream is a public intermediary tool for delivery of data between different parts of the healthcare ecosystem.
https://reportstream.cdc.gov
Creative Commons Zero v1.0 Universal
72 stars 40 forks source link

Implement ReportStream AUTH-Z API #14601

Open arnejduranovic opened 5 months ago

arnejduranovic commented 5 months ago

User Story

As a stakeholder of ReportStream, I want a SECURE, RELIABLE, and SCALABLE way to handle incoming authentication and authorization requests, so that we can minimize potential of ReportStream AUTH bringing the system down or introducing security defects.

Description/Use Case

Presently, ReportStream has what is essentially a custom authorization server coupled with the backend application. It is easier, cleaner, and more secure and reliable to move to using authorization servers provided by Okta. Okta provides facilities for managing client OAuth2.0 public/private keys as well as scopes, claims, and permissions. Okta Authorization servers are able verify that a client actually has permissions to certain requested scopes, so all that logic can move out of ReportStream and the Auth service. Once the authz server verifies the bearer token with an Okta API call, RS can trust the scopes/claims in the token.

MIGRATION PLAN: Services/Azure Functions can be updated to use the new auth service as needed. Once all are updated, the old Auth code can be deleted.

Risks/Impacts/Considerations

Dev Notes

The implementation details of this service have (mostly) been thought through. Please see the AUTH section in the UP Software Requirements Document.

Acceptance Criteria

Andrey-Glazkv commented 5 months ago

Hey team! Please add your planning poker estimate with Zenhub @adegolier @arnejduranovic @brick-green @david-navapbc @jack-h-wang @jalbinson @JFisk42 @mkalish @thetaurean

Andrey-Glazkv commented 4 months ago

Hey team! Please add your planning poker estimate with Zenhub @adegolier @brick-green @david-navapbc

Andrey-Glazkv commented 4 months ago

Hey team! Please add your planning poker estimate with Zenhub @adegolier @brick-green

arnejduranovic commented 4 months ago

@jalbinson please update once SRD and design note are approved if needed.

MichaelEsuruoso commented 1 month ago

Please add your planning poker estimate with Zenhub @david-navapbc

MichaelEsuruoso commented 1 month ago

Please add your planning poker estimate with Zenhub @kant777

jalbinson commented 2 weeks ago

Spillover reason: Additional complexity discussed with @arnejduranovic as well as some more documentation required than initially planned. As an 8 pointer though this was not surprising.

MichaelEsuruoso commented 1 day ago

@arnejduranovic is OOO @JFisk42 will review change requested and i will close out ticket is changes checks out. (per my request)