SlashID SSO API
The SSO API from SlashID — 4 operation(s) for sso.
The SSO API from SlashID — 4 operation(s) for sso.
openapi: 3.0.1
info:
title: SlashID Groups SSO API
description: "This is the [OpenAPI](https://www.openapis.org/) specification for communicating with the [SlashID](https://www.slashid.dev/) service.\n\nThe latest version of the OpenAPI API spec can be fetched from [our CDN](https://cdn.slashid.com/slashid-openapi-latest.yaml).\n\nWe recommend you use an [OpenAPI SDK generator](https://openapi.tools/#sdk) to create a client library in your programming language,\nbut you can also use this documentation to make HTTP calls directly.\n\n> **Compatibility note**: We aim to keep wire compatibility whenever we update the API, but parts of the specification may occasionally be refactored.\n If you use an SDK generator, your code may require minor changes between versions.\n"
version: '1.1'
termsOfService: https://www.slashid.dev/terms-of-use/
contact:
name: API Support
email: contact@slashid.dev
servers:
- url: https://api.slashid.com
description: Production
- url: https://api.sandbox.slashid.com
description: Sandbox
security:
- ApiKeyAuth: []
tags:
- name: SSO
paths:
/sso/oidc/tokens/revoke:
parameters:
- $ref: '#/components/parameters/SdkVersionHeader'
post:
operationId: PostSsoOidcTokensRevoke
deprecated: true
tags:
- SSO
summary: (Deprecated) Revoke an OAuth token obtained through SSO with OIDC
description: 'Revoke a previously obtained OAuth access or refresh token for an IdP.
This endpoint is deprecated. Please use /sso/oidc/tokens/revoke/v2 instead.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OAuthTokenRevokeReq'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
/sso/oidc/tokens/revoke/v2:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
post:
operationId: PostSsoOidcTokensRevokeV2
x-rbac-enabled: true
tags:
- SSO
summary: Revoke an OAuth token obtained through SSO with OIDC
description: Revoke a previously obtained OAuth access or refresh token for an IdP
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SsoOidcTokensRevokeV2Req'
responses:
'204':
$ref: '#/components/responses/NoContent'
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
/sso/oidc/tokens:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
- $ref: '#/components/parameters/RequiredTokenHeader'
get:
operationId: GetSsoOidcTokens
x-rbac-enabled: true
tags:
- SSO
summary: Retrieve OIDC tokens
description: 'Retrieve tokens issued by an OIDC provider as part of an SSO authentication.
This endpoint expects a valid SlashID token container issued after an SSO authentication.
The response will include all of the OIDC tokens that were issued by that SSO authentication.
'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
properties:
result:
$ref: '#/components/schemas/SsoOidcTokensGetResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/sso/oidc/tokens/query:
parameters:
- $ref: '#/components/parameters/OrgIDHeader'
post:
operationId: PostSsoOidcTokensQuery
tags:
- SSO
summary: Query tokens obtained through SSO with OIDC
description: Query the OIDC tokens for a person issued during SSO authentications.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SsoOidcTokensQueryReq'
responses:
'200':
description: OK
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/APIResponseBase'
- type: object
properties:
result:
$ref: '#/components/schemas/SsoOidcTokensQueryResp'
'400':
$ref: '#/components/responses/BadRequest'
components:
responses:
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
NoContent:
description: No content
NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
BadRequest:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/APIResponseBase'
schemas:
OAuthProvider:
type: string
enum:
- google
- github
- bitbucket
- gitlab
- facebook
- line
- azuread
- okta
- apple
SsoOidcTokenDetail:
type: object
properties:
token:
type: string
description: OIDC token value
token_type:
$ref: '#/components/schemas/OIDCTokenType'
expiry:
type: string
format: date-time
description: Token expiry date
provider:
$ref: '#/components/schemas/OAuthProvider'
client_id:
type: string
description: The client ID used to obtain the token
authentication_id:
type: string
description: Authentication ID
person_id:
$ref: '#/components/schemas/PersonID'
organization_id:
$ref: '#/components/schemas/OrganizationID'
extra_callback_values:
description: 'Set of additional key-value pairs passed by the provider on callback, together with the authorization code.
'
type: object
additionalProperties: true
required:
- token
- token_type
- expiry
- provider
- client_id
- authentication_id
- person_id
- organization_id
OIDCTokenType:
type: string
enum:
- access
- refresh
- id
SsoOidcTokensGetResponse:
type: array
items:
$ref: '#/components/schemas/SsoOidcTokenDetail'
APIResponseBase:
type: object
properties:
meta:
$ref: '#/components/schemas/APIMeta'
errors:
type: array
items:
$ref: '#/components/schemas/APIResponseError'
APIPagination:
type: object
required:
- limit
- offset
- total_count
properties:
limit:
type: integer
offset:
type: integer
total_count:
type: integer
format: int64
APICursorPagination:
type: object
required:
- limit
- cursor
- total_count
properties:
limit:
type: integer
cursor:
type: string
total_count:
type: integer
format: int64
OrganizationID:
type: string
APIResponseError:
type: object
properties:
httpcode:
type: integer
message:
type: string
SsoOidcTokensRevokeV2Req:
required:
- person_id
- authentication_id
type: object
properties:
person_id:
$ref: '#/components/schemas/PersonID'
authentication_id:
type: string
description: 'The ID of the SSO OIDC authentication that issued the OIDC token(s) to be revoked.
'
token_types:
type: array
description: 'The type of OIDC token being revoked.
If not provided, all OIDC tokens matching the provided authentication ID will be revoked.
'
items:
$ref: '#/components/schemas/OIDCTokenType'
APIMeta:
type: object
properties:
pagination:
$ref: '#/components/schemas/APIPagination'
cursor_pagination:
$ref: '#/components/schemas/APICursorPagination'
OAuthTokenRevokeReq:
required:
- client_id
- token
- token_type
type: object
properties:
client_id:
description: The client ID originally used to obtain the token from the IdP
type: string
token:
description: The token to be revoked
type: string
token_type:
description: The type of token being revoked, either access or refresh
type: string
enum:
- access_token
- refresh_token
SsoOidcTokensQueryResp:
type: array
items:
$ref: '#/components/schemas/SsoOidcTokenDetail'
SsoOidcTokensQueryReq:
required:
- person_id
type: object
properties:
person_id:
$ref: '#/components/schemas/PersonID'
authentication_ids:
type: array
description: 'The IDs of the SSO OIDC authentications that issued the OIDC tokens.
If not provided, all OIDC tokens for this person matching the specified types will be returned.
'
items:
type: string
token_types:
type: array
description: 'The types of tokens to be returned.
If not provided, all OIDC tokens for this person issued during the specified authentication(s) will be returned.
'
items:
$ref: '#/components/schemas/OIDCTokenType'
PersonID:
type: string
description: Person ID
example: 064b7b63-ea43-76e5-b208-1900795bc5b7
parameters:
RequiredTokenHeader:
name: SlashID-Token
in: header
schema:
type: string
required: true
description: A valid JWT issued by SlashID
OrgIDHeader:
name: SlashID-OrgID
in: header
schema:
type: string
required: true
description: The organization ID
example: af5fbd30-7ce7-4548-8b30-4cd59cb2aba1
SdkVersionHeader:
name: SlashID-SdkVersion
in: header
schema:
type: string
required: false
description: SDK version
example: 1.4.1
securitySchemes:
ApiKeyAuth:
description: Authorizes the request with the organization's API Key.
x-svc-um-api: true
type: apiKey
in: header
name: SlashID-API-Key
OAuth2ClientIdSecret:
description: Authorizes the request with a client ID/client secret pair
type: http
scheme: basic
OAuth2AccessTokenBearer:
description: Authorizes the request with an Access Token for the current user.
type: http
scheme: bearer
bearerFormat: opaque