OPAQUE · Authentication Profile
Opaque Authentication
Authentication
OPAQUE secures its APIs with apiKey and http across 4 declared security schemes, as derived from its OpenAPI definitions.
Confidential Computingconfidential-aiAI GovernanceData PrivacyTrusted Execution EnvironmentAttestationAgentic WorkflowsRetrieval Augmented GenerationEnterprise AIsecure-analyticsData Clean RoomMCP
Methods: apiKey, http
Schemes: 4
OAuth flows:
API key in: cookie, header
Security Schemes
sessionToken http
scheme: bearer
sessionTokenCookie apiKey
· in: cookie (sessionTokenCookie)
refreshTokenCookie apiKey
· in: cookie (refreshTokenCookie)
userIdentitySecret apiKey
· in: cookie (userIdentitySecret)
Source
Authentication Profile
generated: '2026-08-04'
method: searched
source: openapi/opaque-platform-api-openapi.yml
docs: https://docs.opaque.co/en/latest/public_guide/developers/rest_api/authentication/
summary:
types:
- apiKey
- http
api_key_in:
- cookie
- header
oauth2_flows: []
model: >-
Three credential types, all issued per user. A base64-encoded API key is copied from the
"API Keys" page of the OPAQUE web application after SSO login; decoding it yields a JSON
object containing a refresh_token and a user_identity_secret. The refresh token is exchanged
at POST /{version}/auth/refresh-token for a short-lived session token (JWT), which is then
sent as an Authorization: Bearer header. The user identity secret is sent as a cookie and is
required for cryptographic / sensitive-data operations such as data upload and result
retrieval.
sso_required: true
api_key_lifetime: 6 months
session_token_lifetime: 10 minutes
schemes:
- name: sessionToken
type: http
scheme: bearer
bearerFormat: JWT
description: >-
Short-lived (10 minute) JSON Web Token that authenticates general API requests. Sent in the
Authorization header using the Bearer scheme. Obtained by exchanging a refresh token at
POST /{version}/auth/refresh-token (operationId refresh_user_tokens); the response field is
accessToken. The spec description says the token is obtained from the /login and /register
endpoints.
sources:
- openapi/opaque-platform-api-openapi.yml
- https://docs.opaque.co/en/latest/public_guide/developers/rest_api/authentication/
- name: sessionTokenCookie
type: apiKey
in: cookie
parameter: sessionTokenCookie
description: >-
The same session token supplied as a cookie instead of a header, for browser-originated calls
such as downloading job results or logs.
sources:
- openapi/opaque-platform-api-openapi.yml
- https://docs.opaque.co/en/latest/public_guide/developers/rest_api/authentication/
- name: refreshTokenCookie
type: apiKey
in: cookie
parameter: refreshTokenCookie
description: >-
Long-lived refresh token, stored as an HttpOnly cookie, exchanged for new session tokens.
Extracted from the base64-encoded API key issued in the web application. A missing cookie
returns 400; an expired refresh token returns 401 and requires the user to log in again.
sources:
- openapi/opaque-platform-api-openapi.yml
- https://docs.opaque.co/en/latest/public_guide/developers/rest_api/authentication/
- name: userIdentitySecret
type: apiKey
in: cookie
parameter: userIdentitySecret
description: >-
A binary blob derived from the user's passkey, sent as a cookie. Required for operations that
involve cryptographic key exchange or sensitive data — uploading data and retrieving job
results. The spec description says it can be obtained from the /login and /register endpoints;
the docs describe extracting it from the decoded API key.
sources:
- openapi/opaque-platform-api-openapi.yml
- https://docs.opaque.co/en/latest/public_guide/developers/rest_api/authentication/
default_security:
- sessionToken
- refreshTokenCookie
identity:
sso: required
providers_documented:
- Microsoft Entra ID
- Okta
docs:
- https://docs.opaque.co/en/latest/public_guide/deployment/common_configurations/enable_entra_sso_for_opaque/
- https://docs.opaque.co/en/latest/public_guide/deployment/common_configurations/enable_okta_sso_for_opaque/
passkeys: >-
The API exposes create_passkey_from_password (POST /{version}/auth/create-passkey-from-password)
and get_user_keys (GET /{version}/user/keys); the user identity secret is derived from the
user's passkey.
notes:
- No OAuth 2.0 or OpenID Connect security scheme is declared in the OpenAPI, and no scope surface
is published, so no scopes/ artifact is emitted. SSO is enforced at the web application layer
(Entra ID / Okta) rather than exposed as an API-level OAuth flow.
- Transport between the Python SDK and a deployed workflow is attested TLS (aTLS); the SDK only
submits a request if the workflow passes attestation.
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/opaque-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.