Skip to content

Documentation: Add Descope as User Identity Provider - #2326

Merged
ssveta7ak merged 9 commits into
pomerium:mainfrom
antonsmolyanyy:docs/add-descope-idp
Aug 19, 2026
Merged

Documentation: Add Descope as User Identity Provider#2326
ssveta7ak merged 9 commits into
pomerium:mainfrom
antonsmolyanyy:docs/add-descope-idp

Conversation

@antonsmolyanyy

Copy link
Copy Markdown
Contributor

Summary

Adds a new identity provider guide for Descope at
content/docs/integrations/user-identity/descope.mdx.

The page covers:

  • Create a Descope OIDC Application — walking through the Descope
    console (Federated Apps → Generic OIDC Application), noting where to
    find the Issuer URL (IdP Configuration) and the Client ID /
    Client Secret (SP Configuration, Confidential client). Includes
    three supporting screenshots under img/descope/.
  • Configure Pomerium — Core config using idp_provider: oidc with
    the Descope issuer as idp_provider_url, shown in both config.yaml
    and environment-variable tabs.
  • Role-Based Access Control and Custom Claims — how to authorize on
    Descope roles/permissions by requesting the descope.claims scope,
    with example claim/roles and claim/permissions policies, plus
    descope.custom_claims for custom claims (e.g. claim/department).
    No existing pages or shared components are changed; this is additive
    (one new .mdx file and three images).

AI disclosure

none, only the PR summary was written by AI ^

Checklist

  • [y ] reference any related issues
  • [ y] disclosed AI usage (or wrote "none") per AI_POLICY.md

@antonsmolyanyy
antonsmolyanyy requested a review from a team as a code owner July 22, 2026 21:32
@antonsmolyanyy
antonsmolyanyy requested review from kenjenkins and removed request for a team July 22, 2026 21:32
@netlify

netlify Bot commented Jul 22, 2026

Copy link
Copy Markdown

👷 Deploy request for pomerium-docs pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 6d2d55e

@CLAassistant

CLAassistant commented Jul 22, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds a new identity provider guide for Descope at content/docs/integrations/user-identity/descope.mdx, covering OIDC application setup, Pomerium configuration, and role/permission-based access control using Descope claims. It also adds "descope" to the spell-check dictionary in cspell.json.

  • New Descope IdP guide: Walks through creating a Generic OIDC Application in the Descope console, capturing the Issuer URL, Client ID, and Client Secret, and configuring Pomerium's idp_provider: oidc with idp_provider_url pointing to the Descope issuer.
  • Approved Domains step: Covers Descope's domain-based redirect URI validation (instead of per-URI allowlisting) with a caution note about empty-list behavior.
  • RBAC and custom claims: Explains how to use descope.claims and descope.custom_claims scopes with claim/roles, claim/permissions, and custom claim policies.

Confidence Score: 5/5

  • This is a purely additive documentation change — one new MDX guide and three images — with no modifications to existing pages or shared components.
  • The new guide is well-structured, follows existing IdP guide conventions, and uses correct Pomerium OIDC config keys. The only finding is an editorial inconsistency in how the RBAC section describes scope setup relative to the Configure Pomerium section above it — no runtime behavior is affected.
  • No files require special attention.

Important Files Changed

Filename Overview
content/docs/integrations/user-identity/descope.mdx New Descope IdP guide following existing patterns; one editorial inconsistency in scope guidance between sections
cspell.json Adds "descope" to the custom dictionary — correct and necessary

Sequence Diagram

sequenceDiagram
    participant User
    participant Pomerium
    participant Descope

    User->>Pomerium: Access protected route
    Pomerium->>User: Redirect to Descope OIDC authorization endpoint
    User->>Descope: Authenticate (via configured Flow)
    Descope->>User: Authorization code + redirect to authenticate_service_url/oauth2/callback
    User->>Pomerium: Authorization code callback
    Pomerium->>Descope: Token exchange (client_id + client_secret)
    Descope->>Pomerium: ID token (with roles/permissions if descope.claims scope requested)
    Pomerium->>Pomerium: Evaluate policy (claim/roles, claim/permissions, claim/department)
    Pomerium->>User: Allow or deny access
Loading

Reviews (5): Last reviewed commit: "Merge pull request #1 from ssveta7ak/doc..." | Re-trigger Greptile

Comment thread content/docs/integrations/user-identity/descope.mdx Outdated
Comment thread content/docs/integrations/user-identity/descope.mdx Outdated
Comment thread content/docs/integrations/user-identity/descope.mdx Outdated
Comment thread content/docs/integrations/user-identity/descope.mdx Outdated
Comment thread content/docs/integrations/user-identity/descope.mdx Outdated
@antonsmolyanyy

Copy link
Copy Markdown
Contributor Author

Hello @kenjenkins, kindly following up on this PR, would really appreciate a review from you. Thank you!

@wasaga

wasaga commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

@antonsmolyanyy if your identity provider supports directory (users+group) sync, please feel free to contribute the driver in github.com/pomerium/datasource

antonsmolyanyy and others added 2 commits August 12, 2026 14:55
Fact-checked the guide against Descope's current OIDC docs and Pomerium's
source, and corrected the following:

- Approved Domains: fixed the console path (Security is a sibling of
  General, under General Settings). Replaced the stated failure mode:
  Descope skips redirect validation while the list is empty, so the step
  is optional until a domain is added, at which point api.descope.com
  must be added too.
- Dropped the "login URL" from that step. Pomerium's generic OIDC
  provider only sends redirect_uri and post_logout_redirect_uri.
- idp_scopes: removed the spaces. Pomerium splits the value on ","
  without trimming, so 'openid, profile' requested a scope named
  " profile".
- Console labels: the Create App dialog is App name / ID / Description,
  and the picker is the Federated Apps Library.
- Removed the duplicated idp_provider, idp_provider_url, idp_client_id
  and idp_client_secret block from the RBAC section.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs(descope): correct IdP configuration details
@ssveta7ak
ssveta7ak self-requested a review August 18, 2026 16:37
@antonsmolyanyy

Copy link
Copy Markdown
Contributor Author

@ssveta7ak are we able to merge this PR now?

@ssveta7ak
ssveta7ak merged commit 007d2b9 into pomerium:main Aug 19, 2026
3 checks passed
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.

4 participants