openapi: 3.1.0 info: title: OpenID Connect Authentication Token API description: OpenID Connect (OIDC) is an identity layer built on top of the OAuth 2.0 protocol. It allows clients to verify the identity of end-users based on the authentication performed by an authorization server, and to obtain basic profile information about the end-user in an interoperable and REST-like manner. This specification covers the core OIDC endpoints including discovery, token, userinfo, and JWKS. version: '1.0' contact: name: OpenID Foundation url: https://openid.net/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://{issuer} description: OpenID Connect Provider variables: issuer: default: example.com description: The OIDC issuer domain tags: - name: Token description: Token endpoint for exchanging authorization codes for tokens. paths: /token: post: operationId: getToken summary: Token Endpoint description: Exchanges an authorization code, refresh token, or client credentials for an access token and optionally a refresh token and ID token. The token endpoint is used by the client to obtain tokens after receiving an authorization code from the authorization endpoint. tags: - Token requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - grant_type properties: grant_type: type: string description: The type of grant being presented. enum: - authorization_code - refresh_token - client_credentials code: type: string description: The authorization code received from the authorization endpoint. redirect_uri: type: string format: uri description: The redirect URI used in the authorization request. client_id: type: string description: The client identifier. client_secret: type: string description: The client secret. refresh_token: type: string description: The refresh token for obtaining a new access token. scope: type: string description: The requested scope. code_verifier: type: string description: PKCE code verifier that was used to generate the code challenge. responses: '200': description: Successful token response containing access token and optionally ID token. content: application/json: schema: type: object required: - access_token - token_type properties: access_token: type: string description: The access token issued by the authorization server. token_type: type: string description: The type of token issued, typically 'Bearer'. enum: - Bearer expires_in: type: integer description: The lifetime in seconds of the access token. refresh_token: type: string description: A refresh token that can be used to obtain new access tokens. id_token: type: string description: A JSON Web Token (JWT) that contains claims about the authentication event and the end-user. scope: type: string description: The scope of the access token. '400': description: Invalid request, such as an invalid grant or unauthorized client. content: application/json: schema: type: object properties: error: type: string enum: - invalid_request - invalid_client - invalid_grant - unauthorized_client - unsupported_grant_type - invalid_scope error_description: type: string components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 Bearer Token obtained through OIDC authentication.