Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nginx-openid-connect/nginx-oidc-core-v1
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: nginxinc/nginx-openid-connect
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 14 commits
  • 6 files changed
  • 8 contributors

Commits on May 5, 2023

  1. Configuration menu
    Copy the full SHA
    8da37d2 View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2023

  1. Add URL encoding to auth_redir cookie value (nginxinc#86)

    Storing a URI directly in the auth_redir cookie without encoding has led
    to issues where browsers misinterpret special characters, like semicolons,
    as part of the cookie delimiter. This behavior results in the truncation of
    the URI at the special character, causing incomplete or incorrect redirection
    URLs after user authentication.
    route443 authored Dec 29, 2023
    Configuration menu
    Copy the full SHA
    39334b6 View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2024

  1. Change default keyval state file location. (nginxinc#90)

    Previously, the keyval state file was configured to be stored in the "conf.d"
    directory. By default, the NGINX process does not have write access to this
    directory, necessitating users to either specify a different path or alter
    the directory permissions.
    
    The default path for the state file has been changed to "/var/lib/nginx/state".
    This new location is more suitable for most Linux users and aligns with
    security best practices, as only the NGINX user has read and write permissions
    by default.
    route443 authored Apr 17, 2024
    Configuration menu
    Copy the full SHA
    bce5c22 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2024

  1. Replace diagram images with Mermaid

    lcrilly authored and route443 committed Jun 6, 2024
    Configuration menu
    Copy the full SHA
    8dad580 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2024

  1. Add support for RP-initiated OIDC logout (nginxinc#96)

    Implement support for RP-initiated logout in accordance with OpenID Connect RP-Initiated Logout 1.0.
    Introduce "oidc_end_session_endpoint" variable to specify the "end_session_endpoint" URL.
    
    If "oidc_end_session_endpoint" is not set or is empty, the default behavior of logging out only on the NGINX side is maintained. When set, the endpoint triggers the RP-initiated logout as specified in the specification.
    route443 authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    6ea7364 View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2024

  1. Added support for client_secret_basic as a client authentication meth…

    …od (nginxinc#97)
    
    - Updated token exchange to use the Authorization header for client_secret_basic.
    - Refactored logic for generating POST request parameters for token retrieval and refresh.
    - Added "oidc_client_auth_method" variable to select client authentication method.
    route443 authored Jul 24, 2024
    Configuration menu
    Copy the full SHA
    4f9da38 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. Configuration menu
    Copy the full SHA
    afa8f4c View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2024

  1. Fixed ID token nonce claim validation (nginxinc#104)

    The validateIdToken function previously did not correctly validate the nonce claim in the ID Token due to improper handling of session state. The newSession variable, intended to indicate a new authentication session, was not reliably set, causing nonce validation to be skipped in all cases.
    
    ---------
    
    Co-authored-by: Tom Noonan II <[email protected]>
    Co-authored-by: Ivan Ovchinnikov <[email protected]>
    3 people authored Oct 24, 2024
    Configuration menu
    Copy the full SHA
    133504f View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2024

  1. Configuration menu
    Copy the full SHA
    f7e8726 View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2024

  1. Fix OIDC client authentication for POST method after f7e8726

    Remove the `proxy_pass_request_body off` directive, which unintentionally broke
    OIDC client authentication using the POST body method (`client_secret_post`).
    
    Previously, when `$oidc_client_auth_method` was set to "client_secret_post"
    the `generateTokenRequestParams()` function correctly formatted the POST
    request and sent it via `r.subrequest` to the internal `/_token` location.
    However, the `proxy_pass_request_body off` directive caused the POST request
    to reach `$oidc_token_endpoint` with a valid Content-Length header but an
    empty body. This led to a timeout as the OP token endpoint closed the connection.
    
    Users encountered the error: "NGINX / OpenID Connect login failure."
    
    This commit restores functionality by ensuring the request body is passed
    to the token endpoint while retaining header exclusion to prevent CORS issues.
    route443 committed Dec 12, 2024
    Configuration menu
    Copy the full SHA
    1da0cc1 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2025

  1. Refactor code to use async/await, modular functions, and improve toke…

    …n handling.
    
    - Switched from callbacks to async/await for clearer, more maintainable code.
    - Broke up the monolithic code into smaller and modular functions.
    - Refined id token validation logic.
    - Changed the internal /_id_token_validation location to /_token_validation.
    - Minimum required njs version is 0.7.0 now.
    route443 committed Feb 22, 2025
    Configuration menu
    Copy the full SHA
    66c4eaa View commit details
    Browse the repository at this point in the history
  2. Implement Front-Channel Logout endpoint

    Implement OpenID Connect Front-Channel Logout 1.0 specification:
    - Add default /front_channel_logout location that handles logout requests
    - Both sid and iss parameters must be present
    - Issuer verification against iss claim in ID token
    
    Reference: https://openid.net/specs/openid-connect-frontchannel-1_0.html
    route443 committed Feb 22, 2025
    Configuration menu
    Copy the full SHA
    1f5053b View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2025

  1. Add F5 CLA workflow.

    route443 committed Aug 14, 2025
    Configuration menu
    Copy the full SHA
    6066b8c View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2025

  1. Error logging improvement.

    - Implemented unified function for error handling.
    - Each error is assigned its own identifier, generated by using the first
    8 chars of the $request_id variable.
    - Added support for JSON log output. This is controlled by the
    $oidc_log_format variable, which must be set to 'json'.
    - Added support for stack trace output. This is enabled by the
    $oidc_debug variable, which must have any non-empty value.
    If this variable is defined, the $internal_error_message variable
    is overwritten with the text of the last error and returned to
    the User Agent - so use this only for debugging!
    route443 committed Aug 22, 2025
    Configuration menu
    Copy the full SHA
    24d53f9 View commit details
    Browse the repository at this point in the history
Loading