Skip to content

docs: add more specific steps and information about oidc refresh tokens #18336

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Jun 16, 2025

Conversation

EdwardAngert
Copy link
Contributor

@EdwardAngert EdwardAngert commented Jun 11, 2025

closes #18307

relates to #18318

preview:

to do:

  • move keycloak
  • add ping federate and azure
  • edit text (possibly placeholders for now - I want to see how it all relates and edit it again. right now, there's a note about the same thing in every section in way that's not super helpful/necessary)
  • convert some paragraphs to OL calling this out of scope for now

@EdwardAngert EdwardAngert self-assigned this Jun 11, 2025
@EdwardAngert EdwardAngert added the docs Area: coder.com/docs label Jun 11, 2025
@EdwardAngert EdwardAngert force-pushed the 18307-refresh-tokens branch from ff568a1 to 566fe99 Compare June 11, 2025 20:54
@Emyrk
Copy link
Member

Emyrk commented Jun 11, 2025

preview (not sure why @Emyrk 's photo is so huge there though)

Yea, can we make my photo much smaller lol

@sreya
Copy link
Collaborator

sreya commented Jun 12, 2025

Yeah this is currently deployed lol. As handsome as @Emyrk is, can we remove the avatar?

@EdwardAngert
Copy link
Contributor Author

ooph thanks for catching @sreya

fixed by #18338

@sreya
Copy link
Collaborator

sreya commented Jun 12, 2025

Can we update the release notes to point to this documentation once it's merged?

@EdwardAngert EdwardAngert force-pushed the 18307-refresh-tokens branch from d3ac4ea to e69afa5 Compare June 12, 2025 17:23
sreya
sreya previously requested changes Jun 12, 2025

By combining the `{"access_type":"offline"}` parameter in the OIDC Auth URL with
the `offline_access` scope, you can achieve the desired behavior of obtaining
refresh tokens for offline access to the user's resources.
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this corresponds to

CODER_OIDC_AUTH_URL_PARAMS='{"access_type": "offline"}'

which might be helpful as an example

Copy link
Member

Choose a reason for hiding this comment

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

@spikecurtis from what I can tell, we always add this.

opts = append(opts, oauth2.AccessTypeOffline)

Regardless of your config

Copy link
Contributor

Choose a reason for hiding this comment

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

It defaults, but an explicit value in CODER_OIDC_AUTH_URL_PARAMS overrides it.


### Refresh Tokens Not Working After Configuration Change

**Symptoms**: Hourly timeouts, even after adding `offline_access`
Copy link
Contributor

Choose a reason for hiding this comment

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

So, after successfully configuring refresh tokens, users will get logged out early up to one more time. Once they reauthenticate they should get the refresh token---so if users are continuing to get "hourly timeouts" (plural), then refresh tokens are still misconfigured.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added:

Users might get logged out again before the new configuration takes effect completely.

L176

but I'm about to move it to the end of the next FAQ

Copy link
Member

Choose a reason for hiding this comment

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

We actually had this same problem for external auth awhile back. Debugging it was a challenge, so I added this to the UI to indicate if refresh is enabled. Maybe we should do something similar for the prrimary auth

Screenshot From 2025-06-16 07-03-44

Copy link
Contributor

Choose a reason for hiding this comment

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

@Emyrk yeah, it would be very helpful. Added #18384


1. Check that `offline_access` is included in your `CODER_OIDC_SCOPES`
1. Verify users can stay logged in beyond Okta's access token lifetime (typically one hour)
1. Monitor Coder logs for any OIDC refresh errors during token renewal
Copy link
Contributor

Choose a reason for hiding this comment

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

If they have access to the database, and it is not encrypted, then they can check the user_links table and verify that there are entries in the oauth_refresh_token column.

Getting these instructions doesn't need to block merging.

Copy link
Member

Choose a reason for hiding this comment

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

I think we should add something produce side in the UI that could tell if refresh is enabled at least on a per user basis.


### Refresh Tokens Not Working After Configuration Change

**Symptoms**: Hourly timeouts, even after adding `offline_access`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

added:

Users might get logged out again before the new configuration takes effect completely.

L176

but I'm about to move it to the end of the next FAQ

@EdwardAngert EdwardAngert marked this pull request as ready for review June 13, 2025 18:59
@EdwardAngert EdwardAngert requested a review from sreya June 13, 2025 18:59
@EdwardAngert EdwardAngert dismissed sreya’s stale review June 16, 2025 17:18

file moved; changes incorporated

@EdwardAngert EdwardAngert merged commit 5c16079 into main Jun 16, 2025
32 checks passed
@EdwardAngert EdwardAngert deleted the 18307-refresh-tokens branch June 16, 2025 17:18
@github-actions github-actions bot locked and limited conversation to collaborators Jun 16, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
docs Area: coder.com/docs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Bug Report: Missing offline_access Scope Documentation and Default Configuration for OIDC Refresh Tokens
4 participants