Skip to content

docs: Okta OAuth 2.0 setup — DPoP, PKCS#1, BATON_AUTH_METHOD (CXH-1519)#167

Merged
luisina-santos merged 1 commit into
mainfrom
manueltraversarosasia/cxh-1519-baton-okta-oauth-20-setup-docs-missing-dpop-pkcs1-and-auth
May 22, 2026
Merged

docs: Okta OAuth 2.0 setup — DPoP, PKCS#1, BATON_AUTH_METHOD (CXH-1519)#167
luisina-santos merged 1 commit into
mainfrom
manueltraversarosasia/cxh-1519-baton-okta-oauth-20-setup-docs-missing-dpop-pkcs1-and-auth

Conversation

@manuel-ts-14
Copy link
Copy Markdown
Contributor

@manuel-ts-14 manuel-ts-14 commented May 20, 2026

Summary

  • Documents three required workarounds in the OAuth 2.0 setup walkthrough that the published docs currently omit: disable Okta's DPoP toggle (defaults to on for new API Services apps), provide a PKCS#1-formatted private key (modern OpenSSL produces PKCS#8 which the connector rejects), and set BATON_AUTH_METHOD=private-key-group when using OAuth from the CLI.
  • Adds three soft-gap callouts for common Okta admin-UI footguns the existing walkthrough doesn't acknowledge: the JWK two-step save, scope-grant persistence, and the 403 surfaced when an admin role assignment is missing.
  • Docs-only — no connector code changes.

Why this is needed

Reproduced live on 2026-05-20 against integrator-9077615.okta.com: a customer following the existing OAuth walkthrough verbatim hits this sequence of failures before reaching a working sync. The highest-impact gap is DPoP — Okta now defaults "Require Demonstrating Proof of Possession" to on for new API Services apps, and the connector does not implement DPoP. The customer-visible error ("The DPoP proof JWT header is missing") comes from Okta and gives no indication the connector is the limiting factor, so customers debug the wrong side of the integration.

Full diagnosis, reproduction transcript, and the related connector-side defects (separate tickets) are in CXH-1519.

Scope

In scope here:

  • docs/connector.mdx: one new <Step> (disable DPoP), one new <Warning> callout (PKCS#1 format), three inline <Note> blocks (JWK save gotcha, scope verification, admin role 403).
  • README.md: OAuth env-var example updated with BATON_AUTH_METHOD=private-key-group, plus PKCS#1 and DPoP notes pointing into docs/connector.mdx.

Out of scope — tracked separately:

  • DPoP support in the connector (depends on PR [BB-1459] Upgrade okta v5 #122 / v5 SDK migration, or a wrapper). High-priority follow-on.
  • PKCS#8 acceptance at the SDK or connector boundary.
  • Adding a description to the --auth-method flag in pkg/config/config.go.

Refs:

  • Diagnosis ticket: CXH-1519
  • Parent feature: CXH-1333

🤖 Generated with Claude Code

A customer following the existing OAuth walkthrough in docs/connector.mdx
hits a sequence of failures before reaching a working sync because:

- Okta now defaults Require-DPoP to on for new API Services apps, and the
  connector does not implement DPoP ("The DPoP proof JWT header is missing")
- OpenSSL 3.0+ produces PKCS#8 private keys by default, but the v2 Okta Go
  SDK rejects anything other than PKCS#1 ("RSA private key is of the wrong
  type")
- The CLI requires BATON_AUTH_METHOD=private-key-group to use OAuth, which
  the README example does not include

This change is docs-only: it documents the current required workarounds in
docs/connector.mdx and README.md. The underlying connector defects (DPoP
support, PKCS#8 acceptance, --auth-method help text) are tracked separately.

Parent: CXH-1333

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@manuel-ts-14 manuel-ts-14 requested a review from a team May 20, 2026 20:44
@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 20, 2026

CXH-1519

@github-actions
Copy link
Copy Markdown
Contributor

Connector PR Review: docs: Okta OAuth 2.0 setup — DPoP, PKCS#1, BATON_AUTH_METHOD (CXH-1519)

Blocking Issues: 0 | Suggestions: 0 | Threads Resolved: 0
Review mode: full
View review run

Review Summary

Docs-only change adding three critical workaround steps to the OAuth 2.0 setup walkthrough in docs/connector.mdx (disable DPoP, PKCS#1 key format, BATON_AUTH_METHOD env var) and three soft-gap callout notes for common Okta admin-UI gotchas. The README.md OAuth example is updated to include BATON_AUTH_METHOD=private-key-group and key format notes. MDX structure is valid — the new <Step>, <Note>, and <Warning> blocks are correctly nested within the existing <Steps> hierarchy. No security or correctness concerns.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

None.

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

No blocking issues found.

@luisina-santos luisina-santos merged commit 4ebb376 into main May 22, 2026
11 checks passed
@luisina-santos luisina-santos deleted the manueltraversarosasia/cxh-1519-baton-okta-oauth-20-setup-docs-missing-dpop-pkcs1-and-auth branch May 22, 2026 13:25
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