Kraken Technologies · Authentication Profile

Kraken Technologies Authentication

Authentication

Kraken Technologies secures its APIs with jwt-bearer, saml, and sso across 3 declared security schemes, as derived from its OpenAPI definitions.

EnergyUnited KingdomUtilitiesElectricityGasSmart MeteringDemand ResponseDERBillingEnergy Platform
Methods: jwt-bearer, saml, sso Schemes: 3 OAuth flows: API key in:

Security Schemes

kraken-app-proxy-jwt http
scheme: bearer
kraken-docs-sso sso
kraken-platform-idp-saml saml

Source

Authentication Profile

kraken-technologies-authentication.yml Raw ↑
generated: '2026-07-27'
method: searched
source: >-
  https://github.com/kraken-tech/kraken-apps-examples (README + src/types/app.ts, retrieved
  2026-07-27), https://www.kraken.tech/legal/trust-center, live probes of docs.kraken.tech
docs: https://github.com/kraken-tech/kraken-apps-examples#the-kraken-apps-jwt
summary:
  types: [jwt-bearer, saml, sso]
  api_key_in: []
  oauth2_flows: []
  openapi_derived: false
  note: >-
    There is no OpenAPI to derive securitySchemes from. Everything below was read from Kraken's own
    public example repository and Trust Center. The Open Kraken REST/event API authentication scheme
    is NOT published; the only concretely documented API auth mechanism is the Kraken Apps
    (Embedded Apps) proxy JWT.
schemes:
- name: kraken-app-proxy-jwt
  type: http
  scheme: bearer
  bearerFormat: JWT
  surface: Kraken Apps (Embedded Apps) → Kraken App Store Proxy
  source: https://github.com/kraken-tech/kraken-apps-examples
  description: >-
    A Kraken Embedded App is handed a JWT (`appProxyJwt`) at initialisation by the Kraken Apps
    framework. The app presents it on every request through the Kraken App Proxy, which validates it
    and forwards it to the app's own backend. The token is the proof that the request originated
    from a user logged into Kraken.
  transport_headers:
  - name: X-Kraken-App-Proxy-Authorization
    value: 'Bearer <appProxyJwt>'
    required: true
  - name: X-Kraken-App-Proxy-Destination
    value: '<destination host, e.g. external.com>'
    required: true
    note: The proxy has a single endpoint that forwards all requests to the declared destination.
  proxy_url_form: '<APIProxyURL>/<your endpoint>  e.g. https://kraken-app-proxy.example.com/p/v1/example-app/external/endpoint/'
  key_discovery:
    jwks_uri_pattern: '<kraken-host>/.well-known/jwks.json'
    kid: kraken-app-store
    published_on: [Supportsite domain of each Kraken deployment, the APIs of each Kraken deployment]
    verbatim: >-
      "Each Kraken publishes its public key in the /.well-known/jwks.json endpoint, both in its
      Supportsite domain, and its APIs. The public key has kid set to kraken-app-store."
    probeable_anonymously: false
    note: Per-tenant; Kraken publishes no tenant host list, so no JWKS document could be retrieved.
  claims:
  - {name: user_id, description: ID of the Support User in Kraken who made the request via the app}
  - {name: user_email, description: Email address of the Support User}
  - {name: iat, description: Issued-at time}
  - {name: exp, description: Expiry — 25 hours after issue}
  - {name: aud, description: Name of the app the request came from}
  - {name: permissions, description: 'Kraken App specific permissions the user has — documented as "(soon)", not yet present'}
  token_lifetime: 25h
  scopes_published: 0
- name: kraken-docs-sso
  type: sso
  surface: docs.kraken.tech (reference documentation portal)
  description: >-
    The documentation portal is a Django application that gates every path behind
    /auth/login/?next=<path>. It offers "Log in via SSO" plus an ad-hoc email/password fallback at
    /auth/login/ad-hoc/. Credentials are issued to licensees and contracted partners only.
  probe:
    date: '2026-07-27'
    status: 302
    location: '/auth/login/?next=/'
    server: gunicorn
    x_frame_options: DENY
  anonymous_access: false
- name: kraken-platform-idp-saml
  type: saml
  surface: Kraken Customer Platform (product sign-in, not the API)
  source: https://www.kraken.tech/legal/trust-center
  description: >-
    "Integration with client identity providers (IdPs) supporting Security Assertion Markup Language
    (SAML) for Kraken Customer Platform", with multi-factor authentication support across Kraken
    access points and role-based access control with regular privileged-access audits.
not_published:
  oauth2: >-
    No OAuth 2.0 authorization server, flows, client registration or scope model is published on any
    public Kraken host. /.well-known/oauth-authorization-server and /.well-known/oauth-protected-
    resource on docs.kraken.tech return the login page, not RFC 8414/9728 metadata.
  openid_connect: >-
    No anonymous OIDC discovery document is served. docs.kraken.tech/.well-known/openid-configuration
    returns text/html (the login page) with HTTP 200.
  api_keys: No API key format, header name or issuance process is documented publicly.
  mutual_tls: >-
    Not documented for API access. mTLS-style client certificates DO appear in Kraken's internal
    toolchain (the public Homebrew formula passes HOMEBREW_SSL_CLIENT_CERT to Nexus), but that is
    package distribution, not API authentication.
  scopes: 0