Skip to content

[Institution Rework] [ENG-4203] [ENG-4205] Rework Institution SSO flow with identity and affiliation - CAS Part - #75

Merged
cslzchen merged 4 commits into
CenterForOpenScience:feature/institution-reworkfrom
cslzchen:feature/sso-with-identity
Jan 19, 2023
Merged

[Institution Rework] [ENG-4203] [ENG-4205] Rework Institution SSO flow with identity and affiliation - CAS Part#75
cslzchen merged 4 commits into
CenterForOpenScience:feature/institution-reworkfrom
cslzchen:feature/sso-with-identity

Conversation

@cslzchen

@cslzchen cslzchen commented Dec 28, 2022

Copy link
Copy Markdown
Contributor

Purpose

Retrieve SSO identity from Shibboleth authn request and send it to OSF API during institution SSO

API Part: CenterForOpenScience/osf.io#10260

Ticket: https://openscience.atlassian.net/browse/ENG-4205 and https://openscience.atlassian.net/browse/ENG-4203

Changes

  • CAS now releases ssoEmail and ssoIdentity to OSF API

    • It is done in a way that we don't need to update either Shib or CAS attribute mapping for each institution.
  • Disambiguate email/ssoEmail, mail/mailOther, username, eppn and remoteUser and ssoIdentity

  • Rewrote/updated the SSO flow (SAML/Shibboleth)

    • Shibboleth session and attributes parsing
    • Initial credential construction from shibboleth
    • API payload creation
    • Authentication result object
    • Final credential update from API result
  • Rewrote/normalized SSO logs for better search and easier debugging. It also helps aggregation when Sentry is integrated in the near future.

    • Normalized format string in all logs
    • All logs include SSO info (institution, email and identity)
    • All logs start with their "[Component Name]"
    • All logs are trimmed (but remains distinguishable and readable)
    • Error logs now have 3 different types: Error, Exception, Failure

QA Notes

  • Dev QA using Postman locally

DevOps Notes

  • remoteUser comes from a few attributes, which could be eppn, uid, persistentId, etc. Need to double check the private settings for this one.

@cslzchen
cslzchen changed the base branch from feautre/institution-rework to develop December 28, 2022 17:53
@cslzchen
cslzchen changed the base branch from develop to feautre/institution-rework December 28, 2022 17:54
@cslzchen cslzchen changed the title Draft: SSO with Identity - CAS Part [Institution Rework] [ENG-4203] [ENG-4205] Rework Institution SSO flow with identity and affiliation - CAS Part Jan 16, 2023
@cslzchen
cslzchen marked this pull request as ready for review January 16, 2023 19:16
@cslzchen
cslzchen changed the base branch from feautre/institution-rework to feature/institution-rework January 18, 2023 05:00
* Shib session and attributes parsing
* Initial credential construction from shib
* API payload creation
* Authentication result object
* Final credential update from API result
* Logs and errors
* More JavaDoc
* Normalized format string in all logs
* All logs include SSO info (institution, email and identity)
* All logs start with their "[Component Name]"
* All logs are trimmed (but remains distinguishable and readable)
* Error logs now have 3 different types: Error, Exception, Failure

In addition, removed the temporary solution that uses `eppn` as both
email and identity. This hack was added to solve one special case
where an institution changed their email domain.
@cslzchen
cslzchen force-pushed the feature/sso-with-identity branch from badbf3c to 57c8a7d Compare January 18, 2023 05:15
@cslzchen
cslzchen merged commit ea1a469 into CenterForOpenScience:feature/institution-rework Jan 19, 2023
@cslzchen
cslzchen deleted the feature/sso-with-identity branch October 7, 2024 21:31
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.

1 participant