Open Source API Gateway
3. Security and Validation

oauth2Resource2

Version

Allows only authorized HTTP requests to pass through. Unauthorized requests get a redirect to the authorization server as response. This interceptor does Session Management and can thereby translate Session IDs to OAuth2/OIDC Access Tokens. Beyond regular OIDC-compliant authorization servers, this interceptor can also be used with Azure B2C.

Syntax

oauth2Resource2:
'$ref': <string>
afterErrorUrl: <string>
afterLogoutUrl: <string>
appendAccessTokenToRequest: <boolean>
callbackPath: <string>
cookieOriginalExchangeStore: {}
customHeaderUserPropertyPrefix: <string>
github: {}
google: {}
inMemorySessionManager2: {}
jwtSessionManager: {}
loginParameters:
- <loginParameter>
logoutUrl: <string>
membrane: {}
memcachedOriginalExchangeStore: {}
memcachedSessionManager: {}
microsoftEntraID: {}
onlyRefreshToken: <boolean>
publicURL: <string>
redisOriginalExchangeStore: {}
redisSessionManager: {}
revalidateTokenAfter: <int>
sessionOriginalExchangeStore: {}
skipUserInfo: <boolean>
oauth2Resource2:
  '$ref': <string>
  afterErrorUrl: <string>
  afterLogoutUrl: <string>
  appendAccessTokenToRequest: <boolean>
  callbackPath: <string>
  cookieOriginalExchangeStore: {}
  customHeaderUserPropertyPrefix: <string>
  github: {}
  google: {}
  inMemorySessionManager2: {}
  jwtSessionManager: {}
  loginParameters:
    - <loginParameter>
  logoutUrl: <string>
  membrane: {}
  memcachedOriginalExchangeStore: {}
  memcachedSessionManager: {}
  microsoftEntraID: {}
  onlyRefreshToken: <boolean>
  publicURL: <string>
  redisOriginalExchangeStore: {}
  redisSessionManager: {}
  revalidateTokenAfter: <int>
  sessionOriginalExchangeStore: {}
  skipUserInfo: <boolean>

Attributes

NameRequiredDefaultDescriptionExamples
$reffalse-Reference a component defined under components.-
afterErrorUrlfalse-URL a form POST carrying the error and error_description of a failed OAuth2 flow is sent to. Without it, the error response of the flow itself is returned to the client.-
afterLogoutUrlfalse/URL the user is redirected to after a logout request.-
appendAccessTokenToRequestfalsefalseWhether the access token from the OAuth2 answer is added to the forwarded request as an Authorization: Bearer header.-
callbackPathfalseoauth2callbackthe path used for the OAuth2 callback. ensure that it does not collide with any path used by the application-
customHeaderUserPropertyPrefixfalsenullA user property prefix (e.g. "header"), which can be used to make the interceptor emit custom per-user headers. For example, if you have a user property "headerX: Y" on a user U, and the user U logs in, all requests belonging to this user will have an additional HTTP header "X: Y". If null, this feature is disabled.-
logoutUrlfalse-Path (as seen by the user agent) to call to trigger a log out. If the Authorization Server supports OpenID Connect RP-Initiated Logout 1.0, the user logout ("single log out") will be triggered there as well.-
onlyRefreshTokenfalsefalseWhether a token response without an access_token is accepted. When enabled, the id token is verified in place of the access token and a refresh that returns only one of both tokens does not fail. Requires skipUserInfo to also be set.-
revalidateTokenAfterfalse-1time in seconds until a oauth2 access token is revalidatet with authorization server. This is disabled for values < 0-
skipUserInfofalsefalseWhether the call to the userinfo endpoint is skipped when authorizing the session. When enabled, the access token is assumed to be a JWT and is verified locally instead. Required when onlyRefreshToken is enabled.-

Child Structure

ElementCardinalityDescription
cookieOriginalExchangeStore0..1
github0..1
google0..1
inMemorySessionManager20..1
jwtSessionManager0..1
loginParameter0..*Parameters appended to the authorization request sent to the identity provider. A loginParameter with a value contributes that constant, one without forwards the incoming request's query parameter of the same name, if it is present.
membrane0..1
memcachedOriginalExchangeStore0..1
memcachedSessionManager0..1
microsoftEntraID0..1
publicURL0..1
redisOriginalExchangeStore0..1Used for storing exchanges temporarily in Redis. Supports authentication with or without password and username
redisSessionManager0..1
sessionOriginalExchangeStore0..1

Can be used in