Kentico · Authentication Profile

Kentico Authentication

Authentication

Kentico secures its APIs with apiKey and http across 4 declared security schemes, as derived from its OpenAPI definitions.

CMSContent ManagementDigital Experience PlatformGraphQLREST.NETHeadlessE-CommerceDigital MarketingPersonalization
Methods: apiKey, http Schemes: 4 OAuth flows: API key in: header

Security Schemes

HeadlessChannelApiKey apiKey
· in: header ()
XperiencePortalPAT http
scheme: bearer
ManagementApiSecret apiKey
· in: header ()
RestServiceBasic http
scheme: basic

Source

Authentication Profile

kentico-authentication.yml Raw ↑
generated: '2026-08-13'
method: searched
source: openapi/ (none present) — profile assembled from Kentico's own documentation
docs:
  - https://docs.kentico.com/documentation/developers-and-admins/configuration/headless-channel-management
  - https://docs.kentico.com/documentation/developers-and-admins/api/management-api/configure-management-mcp-server
  - https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment
  - https://docs.kentico.com/k12sp/integrating-3rd-party-systems/kentico-rest-service/authenticating-rest-requests
note: >-
  Kentico publishes no OpenAPI, so derive-authentication.py found zero security
  schemes (it aggregates OpenAPI securitySchemes and this repo has none). This
  profile is SEARCHED from the documentation instead. Xperience by Kentico is
  customer-deployed software: three of the four schemes below are enforced by
  the customer's own instance, and only the Xperience Portal API is
  authenticated against a host Kentico operates.

summary:
  types: [apiKey, http]
  api_key_in: [header]
  http_schemes: [bearer, basic]
  oauth2_flows: []
  oauth2: false
  openid_connect: false
  mutual_tls: false

schemes:
  - name: HeadlessChannelApiKey
    type: apiKey
    in: header
    parameter_name: Authorization
    format: "Bearer <ApiKey>"
    surface: Headless channel GraphQL API
    scope: per headless channel
    managed_in: >-
      Xperience administration → Channel management → the headless channel →
      API keys tab. Requires the "Manage headless channel API keys" permission.
    revocation: >-
      Keys can be disabled or deleted; disabling revokes access immediately and
      further requests with that key return an authorization error.
    guidance: >-
      Kentico explicitly recommends NOT placing the key in a browser client —
      proxy GraphQL requests through a backend that adds the Authorization
      header, because a key sent from a public page is visible to anyone.
    docs: https://docs.kentico.com/documentation/developers-and-admins/configuration/headless-channel-management

  - name: XperiencePortalPAT
    type: http
    scheme: bearer
    parameter_name: Authorization
    format: "Bearer <PERSONAL_ACCESS_TOKEN>"
    surface: Xperience Portal API (SaaS deployment)
    host: https://xperience-portal.com
    scope: per Xperience Portal user; project addressed by PROJECT_GUID in the path
    roles: >-
      Uploads to non-production environments and (in extraordinary
      circumstances) production require the DevOps Engineer or Tenant
      Administrator role.
    docs: https://docs.kentico.com/documentation/developers-and-admins/deployment/deploy-to-the-saas-environment

  - name: ManagementApiSecret
    type: apiKey
    in: header
    surface: Management API (preview) + Management MCP server
    format: shared secret, minimum 32 characters
    configured_by: >-
      ManagementApiOptions.Secret passed to AddKenticoManagementApi() in
      Program.cs; supplied to the MCP server as the MANAGEMENT_API_SECRET
      environment variable.
    warning: >-
      Kentico states the management API provides only basic authentication and
      NO per-operation authorization, and must not be enabled on production or
      any publicly reachable instance. It is a local-development surface.
    status: preview
    docs: https://docs.kentico.com/documentation/developers-and-admins/api/management-api/configure-management-mcp-server

  - name: RestServiceBasic
    type: http
    scheme: basic
    surface: Kentico REST service (Kentico 12/13 line)
    format: Base64-encoded username:password, or a hash parameter for public endpoints
    docs: https://docs.kentico.com/k12sp/integrating-3rd-party-systems/kentico-rest-service/authenticating-rest-requests

unauthenticated_surfaces:
  - name: Kentico Docs MCP server
    url: https://docs.kentico.com/mcp
    note: >-
      Probed anonymously on 2026-08-13 — initialize and tools/list both returned
      200 with no credential and no OAuth challenge. There is no
      /.well-known/oauth-protected-resource (404).

not_supported:
  oauth2: >-
    No OAuth 2.0 or OpenID Connect surface is documented for any Kentico API.
    scopes/ is therefore intentionally absent — derive-oauth-scopes.py reported
    zero oauth2 schemes and zero scopes for this provider.
  mutual_tls: not documented