OIDC SaaS App

APIs.ioEngineeringPlatform

Properties

Name Type Description
access_token_lifetime string The lifetime of the OIDC Access Token after creation. Valid units are m,h. Must be greater than or equal to 1m and less than or equal to 24h.
allow_pkce_without_client_secret boolean If client secret should be required on the token endpoint when authorization_code_with_pkce grant is used.
app_launcher_url string The URL where this applications tile redirects users
auth_type string Identifier of the authentication protocol used for the saas app. Required for OIDC.
client_id string The application client id
client_secret string The application client secret, only returned on POST request.
created_at object
custom_claims object
grant_types array The OIDC flows supported by this application
group_filter_regex string A regex to filter Cloudflare groups returned in ID token and userinfo endpoint
hybrid_and_implicit_options object
public_key string The Access public certificate that will be used to verify your identity.
redirect_uris array The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens
refresh_token_options object
scopes array Define the user information shared with access, "offline_access" scope will be automatically enabled if refresh tokens are enabled
updated_at object
View JSON Schema on GitHub

JSON Schema

apis-io-engineering-platform-access-oidc-saas-app-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/access_oidc_saas_app",
  "title": "OIDC SaaS App",
  "properties": {
    "access_token_lifetime": {
      "description": "The lifetime of the OIDC Access Token after creation. Valid units are m,h. Must be greater than or equal to 1m and less than or equal to 24h.",
      "example": "5m",
      "type": "string"
    },
    "allow_pkce_without_client_secret": {
      "description": "If client secret should be required on the token endpoint when authorization_code_with_pkce grant is used.",
      "example": true,
      "type": "boolean"
    },
    "app_launcher_url": {
      "description": "The URL where this applications tile redirects users",
      "example": "https://example.com/login",
      "type": "string"
    },
    "auth_type": {
      "description": "Identifier of the authentication protocol used for the saas app. Required for OIDC.",
      "enum": [
        "saml",
        "oidc"
      ],
      "example": "oidc",
      "type": "string"
    },
    "client_id": {
      "description": "The application client id",
      "example": "oidc client id",
      "type": "string"
    },
    "client_secret": {
      "description": "The application client secret, only returned on POST request.",
      "example": "oidc client secret",
      "type": "string"
    },
    "created_at": {
      "$ref": "#/components/schemas/access_timestamp"
    },
    "custom_claims": {
      "properties": {
        "name": {
          "description": "The name of the claim.",
          "example": "family_name",
          "type": "string"
        },
        "required": {
          "description": "If the claim is required when building an OIDC token.",
          "example": true,
          "type": "boolean"
        },
        "scope": {
          "description": "The scope of the claim.",
          "enum": [
            "groups",
            "profile",
            "email",
            "openid"
          ],
          "example": "profile",
          "type": "string"
        },
        "source": {
          "properties": {
            "name": {
              "description": "The name of the IdP claim.",
              "example": "last_name",
              "type": "string"
            },
            "name_by_idp": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "A mapping from IdP ID to claim name.",
              "example": {
                "exampleIdPID1": "ClaimName1",
                "exampleIdPID2": "ClaimName2"
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "grant_types": {
      "description": "The OIDC flows supported by this application",
      "example": [
        "authorization_code"
      ],
      "items": {
        "enum": [
          "authorization_code",
          "authorization_code_with_pkce",
          "refresh_tokens",
          "hybrid",
          "implicit"
        ],
        "type": "string"
      },
      "type": "array"
    },
    "group_filter_regex": {
      "description": "A regex to filter Cloudflare groups returned in ID token and userinfo endpoint",
      "example": "^GROUP_FILTER-*$",
      "type": "string"
    },
    "hybrid_and_implicit_options": {
      "properties": {
        "return_access_token_from_authorization_endpoint": {
          "description": "If an Access Token should be returned from the OIDC Authorization endpoint",
          "type": "boolean"
        },
        "return_id_token_from_authorization_endpoint": {
          "description": "If an ID Token should be returned from the OIDC Authorization endpoint",
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "public_key": {
      "description": "The Access public certificate that will be used to verify your identity.",
      "example": "example unique name",
      "type": "string"
    },
    "redirect_uris": {
      "description": "The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens",
      "example": [
        "https://example.com"
      ],
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "refresh_token_options": {
      "properties": {
        "lifetime": {
          "description": "How long a refresh token will be valid for after creation. Valid units are m,h,d. Must be longer than 1m.",
          "example": "30d",
          "type": "string"
        }
      },
      "type": "object"
    },
    "scopes": {
      "description": "Define the user information shared with access, \"offline_access\" scope will be automatically enabled if refresh tokens are enabled",
      "example": [
        "openid",
        "groups",
        "email",
        "profile"
      ],
      "items": {
        "enum": [
          "openid",
          "groups",
          "email",
          "profile"
        ],
        "type": "string"
      },
      "type": "array"
    },
    "updated_at": {
      "$ref": "#/components/schemas/access_timestamp"
    }
  },
  "type": "object"
}