zitadel/internal/api/grpc/user/v2
Livio Spring e57a9b57c8
feat(saml): allow setting nameid-format and alternative mapping for transient format (#7979)
# Which Problems Are Solved

ZITADEL currently always uses
`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent` in SAML requests,
relying on the IdP to respect that flag and always return a peristent
nameid in order to be able to map the external user with an existing
user (idp link) in ZITADEL.
In case the IdP however returns a
`urn:oasis:names:tc:SAML:2.0:nameid-format:transient` (transient)
nameid, the attribute will differ between each request and it will not
be possible to match existing users.

# How the Problems Are Solved

This PR adds the following two options on SAML IdP:
- **nameIDFormat**: allows to set the nameid-format used in the SAML
Request
- **transientMappingAttributeName**: allows to set an attribute name,
which will be used instead of the nameid itself in case the returned
nameid-format is transient

# Additional Changes

To reduce impact on current installations, the `idp_templates6_saml`
table is altered with the two added columns by a setup job. New
installations will automatically get the table with the two columns
directly.
All idp unit tests are updated to use `expectEventstore` instead of the
deprecated `eventstoreExpect`.

# Additional Context

Closes #7483
Closes #7743

---------

Co-authored-by: peintnermax <max@caos.ch>
Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
2024-05-23 05:04:07 +00:00
..
email_integration_test.go feat: add implementation for resend of email and phone code (#7348) 2024-02-14 07:22:55 +00:00
email.go feat: add implementation for resend of email and phone code (#7348) 2024-02-14 07:22:55 +00:00
otp_integration_test.go fix: allow other users to set up MFAs (#7914) 2024-05-07 05:38:26 +00:00
otp.go fix: remove resourceowner read from context in user v2 api (#7641) 2024-03-27 18:22:17 +00:00
passkey_integration_test.go feat: impersonation roles (#7442) 2024-02-28 10:21:11 +00:00
passkey_test.go refactor: rename package errors to zerrors (#7039) 2023-12-08 15:30:55 +01:00
passkey.go fix: remove resourceowner read from context in user v2 api (#7641) 2024-03-27 18:22:17 +00:00
password_integration_test.go feat: impersonation roles (#7442) 2024-02-28 10:21:11 +00:00
password_test.go feat(api): move resource apis to beta (#6530) 2023-09-13 12:43:01 +00:00
password.go fix: check password complexity policy and respect changeRequired on password change (#7884) 2024-05-02 11:50:13 +02:00
phone_integration_test.go feat: add implementation for resend of email and phone code (#7348) 2024-02-14 07:22:55 +00:00
phone.go feat: add implementation for resend of email and phone code (#7348) 2024-02-14 07:22:55 +00:00
query_integration_test.go feat: add user v2 pw change required information on query (#7603) 2024-03-28 06:21:21 +00:00
query.go feat(crypto): use passwap for machine and app secrets (#7657) 2024-04-05 09:35:49 +00:00
server.go feat: user v2 service query (#7095) 2024-01-17 10:00:10 +01:00
totp_integration_test.go fix: allow other users to set up MFAs (#7914) 2024-05-07 05:38:26 +00:00
totp_test.go feat(api): move resource apis to beta (#6530) 2023-09-13 12:43:01 +00:00
totp.go fix: remove resourceowner read from context in user v2 api (#7641) 2024-03-27 18:22:17 +00:00
u2f_integration_test.go fix: allow other users to set up MFAs (#7914) 2024-05-07 05:38:26 +00:00
u2f_test.go refactor: rename package errors to zerrors (#7039) 2023-12-08 15:30:55 +01:00
u2f.go fix: remove resourceowner read from context in user v2 api (#7641) 2024-03-27 18:22:17 +00:00
user_integration_test.go feat(saml): allow setting nameid-format and alternative mapping for transient format (#7979) 2024-05-23 05:04:07 +00:00
user_test.go feat: impersonation roles (#7442) 2024-02-28 10:21:11 +00:00
user.go fix: import totp in add human user with secret (#7936) 2024-05-14 09:20:31 +02:00