Skip to content

feat(sso): allow disabling SAML AuthnRequest signing per SSO configuration - #1684

Merged
dorsha merged 2 commits into
mainfrom
feat/saml-disable-request-signing
Sep 1, 2026
Merged

feat(sso): allow disabling SAML AuthnRequest signing per SSO configuration#1684
dorsha merged 2 commits into
mainfrom
feat/saml-disable-request-signing

Conversation

@dorsha

@dorsha dorsha commented Sep 1, 2026

Copy link
Copy Markdown
Member

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 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.

This exposes the new per-SSO-configuration flag:

  • disable_sign_request on SSOSAMLSettings and SSOSAMLSettingsByMetadata.

Both parameters are appended last, following the convention already used for idp_entity_id on the metadata class, so positional compatibility for existing callers is preserved. They default to False, 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.py are updated accordingly.

Sync and async clients share the body composer, so both are covered.

…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>
@shuni-bot

shuni-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🐕 Review complete — View session on Shuni Portal 🐾

🤖 Model: claude-sonnet-5

@shuni-bot

shuni-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🐕 Suggested Reviewers

Reviewers: 0 (LioriE), 1 (ruvenzx), 3 (chris4490)

Strategy:
The PR spans multiple areas: core SSO logic (_sso_settings_base.py and sso_settings.py), documentation updates, and tests. I've selected reviewers to cover each area: LioriE authored most changes to the core SSO settings files, ruvenzx and chris4490 each touched README.md (for documentation and release notes). This ensures comprehensive review of all changes while avoiding duplication for unchanged modules like tests/management/test_sso_settings.py.)

Reviewer Reason
LioriE Primary contributor to core SSO logic. Authored 5 commits across _sso_settings_base.py and sso_settings.py, the main modules modified in this PR. Should review SAML AuthnRequest signing functionality and its new configuration options.
ruvenzx Contributor to README.md (documentation). The PR expands documentation for the new setting and should be reviewed for accuracy and clarity.
chris4490 Contributor to README.md (documentation). The PR expands documentation for the new setting and should be reviewed for accuracy and clarity.

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.

@dorsha
dorsha requested a review from aviadl September 1, 2026 08:01

@shuni-bot shuni-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐕 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.md
  • descope/management/_sso_settings_base.py
  • descope/management/sso_settings.py
  • tests/management/test_sso_settings.py

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Coverage report

The coverage rate went from 98.26% to 98.26% ⬆️

100% of new lines are covered.

Diff Coverage details (click to unfold)

descope/management/sso_settings.py

100% of new lines are covered (100% of the complete file).

@dorsha
dorsha enabled auto-merge (squash) September 1, 2026 09:27
@shuni-bot

shuni-bot Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🐕 Review complete — View session on Shuni Portal 🐾

🤖 Model: claude-sonnet-5

@shuni-bot shuni-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐕 Shuni Review

No new issues found.

🤖 Model: claude-sonnet-5


Review scope: Full review

Reviewed files (4)
  • README.md
  • descope/management/_sso_settings_base.py
  • descope/management/sso_settings.py
  • tests/management/test_sso_settings.py

@dorsha
dorsha merged commit bb45d1c into main Sep 1, 2026
38 checks passed
@dorsha
dorsha deleted the feat/saml-disable-request-signing branch September 1, 2026 09:37
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.

2 participants