Skip to content

CXH-1522: add OAuth 2.0 DPoP support#172

Open
al-conductorone wants to merge 14 commits into
mainfrom
cxh-1522-baton-okta-add-oauth-20-dpop-support
Open

CXH-1522: add OAuth 2.0 DPoP support#172
al-conductorone wants to merge 14 commits into
mainfrom
cxh-1522-baton-okta-add-oauth-20-dpop-support

Conversation

@al-conductorone

@al-conductorone al-conductorone commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Adds DPoP to the OAuth setup so the connector works against Okta's new default of requiring DPoP on token requests. Existing OAuth customers without the toggle keep working unchanged.

  • Risk: rolling back while Okta's Require-DPoP toggle is ON will break the older connector. Disable the toggle first if downgrading.
  • New telemetry header x-okta-user-agent-extended: isDPoP:true appears in Okta system logs and downstream SIEMs.
  • Breaking changes: none.

@al-conductorone al-conductorone requested a review from a team June 3, 2026 18:24
@linear-code

linear-code Bot commented Jun 3, 2026

Copy link
Copy Markdown

CXH-1522

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Connector PR Review: CXH-1522: add OAuth 2.0 DPoP support

Blocking Issues: 0 | Suggestions: 0 | Threads Resolved: 0
Review mode: incremental since 6fd70e7
View review run

Review Summary

The new commits add a clock-skew diagnostic hint to invalid_dpop_proof and invalid_client error messages, and wrap context-cancellation and token-decode errors with proper gRPC status codes (Canceled, DeadlineExceeded, Internal, Unauthenticated) instead of raw Go errors. The test for leader-cancel propagation is updated to assert codes.Canceled and now correctly closes the release channel in failure paths to prevent goroutine leaks. All changes are clean with no new issues found.

Security Issues

None found.

Correctness Issues

None found.

Suggestions

None.

@github-actions github-actions 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.

No blocking issues found.

@github-actions github-actions 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.

No blocking issues found.

@github-actions github-actions 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.

No blocking issues found.

@github-actions github-actions 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.

No blocking issues found.

@github-actions github-actions 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.

No blocking issues found.

@github-actions github-actions 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.

No blocking issues found.

@github-actions github-actions 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.

No blocking issues found.

}, nil
}

func (t *tokenSource) nonceFunc() func() (string, error) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

DRY: tokenSource.nonceFunc() and dpopRoundTripper.nonceFunc() are identical in shape

@github-actions github-actions 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.

No blocking issues found.

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.

3 participants