Skip to main content

OpenID Connect

OpenID Connect (OIDC) is an identity layer built on top of OAuth 2.0. Where OAuth 2.0 answers "is this client allowed to do X?", OIDC adds "and who is the user?" by issuing a signed ID token alongside the access token.

TraffiTech implements the standard OIDC Authorization Code flow (with and without PKCE) and follows the OpenID Connect Core 1.0 spec.

Endpoints

These are provided by the TraffiTech OIDC server and discoverable from the well-known document.

EndpointMethodPurpose
/.well-known/openid-configurationGETOIDC Discovery - metadata document describing all endpoints, supported scopes, and algorithms
/authGETAuthorization endpoint - where the user is sent to sign in
/tokenPOSTToken endpoint - exchange an authorization code (or refresh token) for an ID token + access token
/jwksGETJSON Web Key Set - public keys used to verify ID token signatures
/userinfoGETUser info endpoint - returns claims about the authenticated user
/token/revocationPOSTRevoke an access or refresh token
/token/introspectionPOSTCheck whether a token is currently active

The authoritative source is always the discovery document. Fetch it with:

curl https://oidc.traffitech.com/.well-known/openid-configuration

Supported flows

TraffiTech supports the flows that are safe and current. Implicit flow and the password grant are intentionally not supported - modern clients should use Authorization Code + PKCE instead.

FlowUse case
Authorization Code + PKCESingle-page apps and mobile apps. Recommended default.
Authorization Code + Client SecretConfidential web apps that can safely store a secret on a server.
Refresh TokenRenew an expired access token without re-prompting the user. Issued when offline_access is in the requested scope.

Scopes

ScopeReturns
openidRequired - signals an OIDC request (vs. plain OAuth 2.0). Produces an ID token.
profileProfile claims: name, given_name, family_name
emailemail and email_verified claims
offline_accessIssues a refresh token so the client can renew without user interaction

ID tokens

The ID token is a JWT signed with one of the keys published at /jwks. Typical claims:

ClaimMeaning
issIssuer - always https://oidc.traffitech.com
subSubject - the user's unique, stable identifier
audAudience - your client_id
expExpiration (unix seconds)
iatIssued-at time
email, email_verifiedIf email scope requested
name, given_name, family_nameIf profile scope requested

Always verify the ID token on the client side:

  1. Fetch the JWKS from /jwks (cache per discovery document's kid rotation).
  2. Verify the signature against the matching key.
  3. Verify iss, aud, and exp.
  4. Verify the nonce you sent in the authorization request matches the one in the token.

Any standard JWT library handles this. Do not hand-roll the verification.

Clients

OIDC clients (your applications) are registered by the TraffiTech administrator. To integrate an app, contact your administrator to obtain:

  • A client_id (and client_secret if your app is a confidential web app)
  • The allowed redirect URIs that can be registered
  • The grant types your client is permitted to use

Once registered, point a standard OIDC library at https://oidc.traffitech.com and the discovery document will tell it everything else it needs.

Further reading