zitadel/internal
Livio Spring ffe9570776
fix(saml): improve error handling (#8928)
# Which Problems Are Solved

There are multiple issues with the metadata and error handling of SAML:
- When providing a SAML metadata for an IdP, which cannot be processed,
the error will only be noticed once a user tries to use the IdP.
- Parsing for metadata with any other encoding than UTF-8 fails.
- Metadata containing an enclosing EntitiesDescriptor around
EntityDescriptor cannot be parsed.
- Metadata's `validUntil` value is always set to 48 hours, which causes
issues on external providers, if processed from a manual down/upload.
- If a SAML response cannot be parsed, only a generic "Authentication
failed" error is returned, the cause is hidden to the user and also to
actions.

# How the Problems Are Solved

- Return parsing errors after create / update and retrieval of an IdP in
the API.
- Prevent the creation and update of an IdP in case of a parsing
failure.
- Added decoders for encodings other than UTF-8 (including ASCII,
windows and ISO, [currently
supported](efd25daf28/encoding/ianaindex/ianaindex.go (L156)))
- Updated parsing to handle both `EntitiesDescriptor` and
`EntityDescriptor` as root element
- `validUntil` will automatically set to the certificate's expiration
time
- Unwrapped the hidden error to be returned. The Login UI will still
only provide a mostly generic error, but action can now access the
underlying error.

# Additional Changes

None

# Additional Context

reported by a customer
2024-12-03 10:38:28 +00:00
..
actions fix: correctly check denied domains and ips for actions (#8810) 2024-10-22 16:16:44 +02:00
activity feat: trusted (instance) domains (#8369) 2024-07-31 18:00:38 +03:00
admin/repository/eventsourcing feat(cmd): mirror (#7004) 2024-05-30 09:35:30 +00:00
api fix(saml): improve error handling (#8928) 2024-12-03 10:38:28 +00:00
auth/repository feat(OIDC): add back channel logout (#8837) 2024-10-31 15:57:17 +01:00
auth_request/repository fix(login): correctly reload policies on auth request (#7839) 2024-04-24 08:44:55 +00:00
authz docs: standardize multi-factor spelling and related string updates (#8752) 2024-10-22 14:59:16 +00:00
cache feat(cache): organization (#8903) 2024-11-21 08:05:03 +02:00
command fix(saml): improve error handling (#8928) 2024-12-03 10:38:28 +00:00
config feat(v3alpha): read actions (#8357) 2024-08-12 22:32:01 +02:00
crypto perf(query): remove transactions for queries (#8614) 2024-11-04 10:06:14 +01:00
database feat(eventstore): accept transaction in push (#8945) 2024-11-22 17:25:28 +01:00
domain feat: action v2 signing (#8779) 2024-11-28 10:06:52 +00:00
eventstore feat(eventstore): exclude aggregate IDs when event_type occurred (#8940) 2024-11-25 15:25:11 +00:00
execution feat: action v2 signing (#8779) 2024-11-28 10:06:52 +00:00
feature feat(OIDC): add back channel logout (#8837) 2024-10-31 15:57:17 +01:00
form refactor: rename package errors to zerrors (#7039) 2023-12-08 15:30:55 +01:00
i18n fix(middleware): init translation messages (#7778) 2024-04-16 12:08:18 +00:00
iam refactor: cleanup unused code (#7130) 2024-01-02 14:26:31 +00:00
id feat(cmd): Added machine ID mode to zitadel start up logs (#8251) 2024-07-16 09:53:57 +00:00
idp fix(saml): improve error handling (#8928) 2024-12-03 10:38:28 +00:00
integration feat(cache): organization (#8903) 2024-11-21 08:05:03 +02:00
logstore perf: project quotas and usages (#6441) 2023-09-15 16:58:45 +02:00
migration fix(setup): improve search query to use index (#8898) 2024-11-13 07:50:23 +00:00
net perf: project quotas and usages (#6441) 2023-09-15 16:58:45 +02:00
notification feat(i18n): add korean language support (#8879) 2024-12-02 13:11:31 +00:00
org refactor: cleanup unused code (#7130) 2024-01-02 14:26:31 +00:00
project refactor: cleanup unused code (#7130) 2024-01-02 14:26:31 +00:00
protoc merge main into next 2023-10-19 12:34:00 +02:00
qrcode
query feat: action v2 signing (#8779) 2024-11-28 10:06:52 +00:00
renderer fix(login): (re)allow HTML in custom login texts (#7575) 2024-03-15 16:29:10 +01:00
repository feat: action v2 signing (#8779) 2024-11-28 10:06:52 +00:00
static feat(i18n): add korean language support (#8879) 2024-12-02 13:11:31 +00:00
statik chore: initial version of a devcontainer (#6352) 2023-08-15 10:49:05 +02:00
telemetry feat: enable application performance profiling (#8442) 2024-08-16 13:26:53 +00:00
test refactor(fmt): run gci on complete project (#7557) 2024-04-03 10:43:43 +00:00
user feat(OIDC): add back channel logout (#8837) 2024-10-31 15:57:17 +01:00
v2 fix(eventstore): revert precise decimal (#8527) (#8679) 2024-09-24 18:43:29 +02:00
view/repository perf(query): remove transactions for queries (#8614) 2024-11-04 10:06:14 +01:00
webauthn fix: add domain as attribute to list user auth methods (#8718) 2024-10-10 16:50:53 +00:00
zerrors fix(crypto): reject decrypted strings with non-UTF8 characters. (#8374) 2024-08-02 08:38:37 +00:00