feat(sso): allow disabling SAML AuthnRequest signing per SSO configuration - #1684
Conversation
…ation Descope always signs the SAML AuthnRequest it sends to a tenant's IdP. A few IdPs (NetIQ Access Manager among them) reject a signed request outright when their trusted-provider entry holds no signing certificate for Descope, and until now there was no way to opt out. Adds disable_sign_request to SSOSAMLSettings and SSOSAMLSettingsByMetadata. The flag is always sent on configure - the server takes the settings object as a full replacement, so omitting it on an update would silently turn signing back on. Both parameters are appended last to preserve positional compatibility for existing callers, and default to False so every existing configuration keeps signing as it does today. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
🐕 Review complete — View session on Shuni Portal 🐾 🤖 Model: |
🐕 Suggested ReviewersReviewers: 0 (LioriE), 1 (ruvenzx), 3 (chris4490) Strategy:
Suggested by Shuni based on git history and PR context. Names are not @-mentioned to avoid notifying anyone — request a review from whoever fits best. |
There was a problem hiding this comment.
🐕 Shuni Review
Adds an optional disable_sign_request flag to SSOSAMLSettings/SSOSAMLSettingsByMetadata so per-tenant SAML AuthnRequests can be sent unsigned.
Actionable comments posted: 0
Merge risk: 🟢 Low: small, additive change; new param is appended last with a False default preserving positional compatibility, both sync and async clients share the same body composer, and all 5 affected test assertions were updated to match the always-sent disableSignRequest field.
🤖 Model: claude-sonnet-5
Review scope: Full review
Reviewed files (4)
README.mddescope/management/_sso_settings_base.pydescope/management/sso_settings.pytests/management/test_sso_settings.py
Coverage reportThe coverage rate went from
Diff Coverage details (click to unfold)descope/management/sso_settings.py
|
|
🐕 Review complete — View session on Shuni Portal 🐾 🤖 Model: |
Description
Issue: https://github.com/descope/etc/issues/18144
go-sdk: descope/go-sdk#842 · node-sdk: descope/node-sdk#805
Descope signs the SAML
AuthnRequestit sends to a tenant's IdP. A few IdPs (NetIQ Access Manager among them) reject a signed request outright when their trusted-provider entry holds no signing certificate for Descope, and until now there was no way to opt out.This exposes the new per-SSO-configuration flag:
disable_sign_requestonSSOSAMLSettingsandSSOSAMLSettingsByMetadata.Both parameters are appended last, following the convention already used for
idp_entity_idon the metadata class, so positional compatibility for existing callers is preserved. They default toFalse, so existing callers keep signing exactly as they do today.The flag is always sent in the composed request body rather than omitted when false: the server takes the settings object as a full replacement, so omitting it on an update would silently turn signing back on. The existing body assertions in
test_sso_settings.pyare updated accordingly.Sync and async clients share the body composer, so both are covered.