oxidecomputer / oxidecomputer/omicron
SAML allow nexus to use email as a NameID
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
Currently nexus will always use the "unspecified" NameID.
With #5604 fixed there is still the issue of using something other than "unspecified" on IDP side.
IDPs such as Okta allow you to set the NameID to one of the following:
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
As far as I can tell the setting on the IDP side must match what the SP side is using. For example this tool tip from the okta site also suggests that this is the case:
If we wish to support more complex setups we need to add an additional setting in the silo IDP creation flow. Additionally if we wish to allow this to be changed after the IDP has been created we need some sort of API endpoints in nexus to do so, although we need to exercise caution here as changing this setting after an IDP has been in use can result in duplicate users.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the silo IDP creation flow and the existing SAML NameID handling. Determine how an IDP setting and any post-creation API would fit, including safeguards for duplicate users when the setting changes. Done means the supported NameID formats and their lifecycle are defined and covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, authentication, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100