Skip to content

nebraska: --oidc-audience is required from 4.0.0 - #698

Open
ervcz wants to merge 2 commits into
mainfrom
docs/nebraska-4.0.0-oidc-audience
Open

nebraska: --oidc-audience is required from 4.0.0#698
ervcz wants to merge 2 commits into
mainfrom
docs/nebraska-4.0.0-oidc-audience

Conversation

@ervcz

@ervcz ervcz commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Nebraska 4.0.0 requires --oidc-audience in OIDC mode and will not start without it, so the authorization page needs the new flag documented before operators upgrade.

Background in GHSA-8535-v9q5-f7qp and the migration guide.

Copilot AI lite review requested due to automatic review settings September 2, 2026 15:27
@ervcz
ervcz force-pushed the docs/nebraska-4.0.0-oidc-audience branch from 4960abb to fb57baf Compare September 2, 2026 15:30
@ervcz ervcz changed the title docs(nebraska): --oidc-audience is required from 4.0.0 nebraska: --oidc-audience is required from 4.0.0 Sep 2, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The updated doc still links to a moving blob/main migration guide and includes a JWT decode command that can be unreliable without base64url padding normalization.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates the Nebraska authorization documentation to reflect the Nebraska v4.0.0 OIDC change that requires configuring and passing --oidc-audience, helping operators avoid startup failures and unexpected 401s during upgrades.

Changes:

  • Documented the v4.0.0 breaking requirement for --oidc-audience and its security motivation (GHSA-8535-v9q5-f7qp).
  • Added Keycloak instructions for adding an API audience (aud) to access tokens via an Audience mapper.
  • Updated provider examples and the “required/optional flags” lists to include --oidc-audience (and related migration flags).
File summaries
File Description
content/docs/latest/updates-releases/nebraska/authorization.md Documents the v4.0.0 --oidc-audience requirement and adds provider-specific guidance + updated CLI examples.
Review details

Suppressed comments (1)

content/docs/latest/updates-releases/nebraska/authorization.md:572

  • This link to the OIDC Migration Guide also uses blob/main. Since the surrounding text is specifically about upgrading for the v4.0.0 audience requirement, linking to the v4.0.0 ref avoids the guide changing underneath the docs.
   - Add `--oidc-audience`. Required from v4.0.0 for every provider, not just
     Auth0. Your provider has to put that value in the `aud` claim of access
     tokens first, otherwise every API request returns 401.

3. See the full [OIDC Migration Guide](https://github.com/flatcar/nebraska/blob/main/docs/oidc-migration-guide.md) for detailed instructions.
  • Files reviewed: 1/1 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread content/docs/latest/updates-releases/nebraska/authorization.md Outdated
token really carries it before you start Nebraska:

```bash
echo "<access-token>" | cut -d. -f2 | tr '_-' '/+' | base64 -d | jq .aud
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://lemon-wave-085522403-698.westeurope.1.azurestaticapps.net

Copilot AI review requested due to automatic review settings September 3, 2026 13:32
@ervcz
ervcz force-pushed the docs/nebraska-4.0.0-oidc-audience branch from fb57baf to 0337ce7 Compare September 3, 2026 13:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The newly added JWT decode command is likely to fail for valid JWTs due to missing base64url padding, which can mislead operators following the migration steps.

Review details

Suppressed comments (1)

content/docs/latest/updates-releases/nebraska/authorization.md:148

  • The JWT decode command may fail for many valid access tokens because JWT segments are base64url-encoded without padding, while base64 -d often expects proper = padding. Adding padding makes the example reliably work across token lengths.
echo "<access-token>" | cut -d. -f2 | tr '_-' '/+' | base64 -d | jq .aud
  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://lemon-wave-085522403-698.westeurope.1.azurestaticapps.net

@ervcz
ervcz force-pushed the docs/nebraska-4.0.0-oidc-audience branch from 0337ce7 to 735f0a5 Compare September 3, 2026 13:47
Copilot AI review requested due to automatic review settings September 3, 2026 13:47
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://lemon-wave-085522403-698.westeurope.1.azurestaticapps.net

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The newly added JWT decoding command uses jq @base64d directly on base64url JWT payloads and can fail for common tokens unless base64url conversion/padding is applied.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

token really carries it before you start Nebraska:

```bash
echo "<access-token>" | cut -d. -f2 | jq -R '@base64d | fromjson | .aud'
4.0.0 validates the aud claim of OIDC access tokens and refuses to start
without --oidc-audience. The page listed the flag as optional and Auth0
specific, and four of the five provider walkthroughs gave a start command
that will not run on 4.0.0.

Signed-off-by: Ervin Rácz <ervin.racz@protonmail.com>
Keycloak was documented inside the generic OIDC heading while the other four
providers each had their own section, so it read as the default rather than one
of five. The Required and Optional flag lists sat in Keycloak's start section,
where readers following Dex, Okta, Azure AD or Auth0 never reached them.

- lift the flag lists into a generic "Nebraska configuration flags" section
- promote Keycloak to a top-level provider section
- name every start section "Start Nebraska with <provider>"
- give Auth0 a start section instead of burying the command in a numbered list
- rename duplicated headings that collided as anchors

Signed-off-by: Ervin Rácz <ervin.racz@protonmail.com>
Copilot AI review requested due to automatic review settings September 3, 2026 14:16
@ervcz
ervcz force-pushed the docs/nebraska-4.0.0-oidc-audience branch from 735f0a5 to 4d4afcd Compare September 3, 2026 14:16
@ervcz
ervcz marked this pull request as ready for review September 3, 2026 14:17
@ervcz
ervcz requested a review from a team as a code owner September 3, 2026 14:17
@ervcz
ervcz requested review from a team, krnowak and tormath1 September 3, 2026 14:18
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Azure Static Web Apps: Your stage site is ready! Visit it here: https://lemon-wave-085522403-698.westeurope.1.azurestaticapps.net

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The added JWT decoding one-liner uses jq @base64d on a base64url JWT segment, which can fail or mislead operators during troubleshooting.

Review details

Suppressed comments (2)

content/docs/latest/updates-releases/nebraska/authorization.md:173

  • JWT payloads are base64url-encoded (often without padding). Decoding the middle segment with jq -R '@base64d …' can fail or produce incorrect results for many real tokens. Use a base64url-safe decode when checking the aud claim.
echo "<access-token>" | cut -d. -f2 | jq -R '@base64d | fromjson | .aud'

content/docs/latest/updates-releases/nebraska/authorization.md:531

  • Same as above: JWT payloads are base64url-encoded (often without padding), so jq -R '@base64d …' may fail/produce incorrect output when troubleshooting 401s. Use a base64url-safe decode for the aud claim.
    echo "<access-token>" | cut -d. -f2 | jq -R '@base64d | fromjson | .aud'
  • Files reviewed: 1/1 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

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