openapi: 3.0.3
info:
title: DN TM Authorization API
description: 'Public TM Authorization API of Diebold Nixdorf to access the Transaction Middleware.
'
version: 1.8.1
contact:
email: thorsten.brinkmann@dieboldnixdorf.com
tags:
- name: DN TM Authorization API
description: 'Public TM Authorization API of Diebold Nixdorf to access the Transaction Middleware.
'
externalDocs:
description: Find out more
url: https://dieboldnixdorf.com
externalDocs:
description: Find out more about Swagger
url: https://swagger.io
paths:
/tm-authorization/authenticate:
post:
tags:
- TM Authorization API
summary: 'An endpoint to authenticate a user
'
description: 'An endpoint to authenticates an user and returns on success a JWT token for all further requests.
The access token is valid for 1 hour, if not set to a different value in the TM configuration.
The user will be logged in and his initial hierarchy will be loaded.
ATTENTION:
The delivered access token has to be used in the
Moreover, a header attribute
Please see: $ref: ''#/components/parameters/nodeID-Param''
Moreover, together with the access token some other information are returned in the response such as the root node
hierarchy, granted rights etc..
'
operationId: tm-authenticate
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TmAuthenticationRequest'
responses:
'200':
description: 'Th user has been authenticated.
'
content:
application/json:
schema:
$ref: '#/components/schemas/TmAuthenticationResponse'
example:
state: OK
jwt: ey..5c
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
/tm-authorization/logout:
delete:
tags:
- TM Authorization API
operationId: tm-logout
security:
- bearerAuth: []
summary: An endpoint to logout an already authenticated user.
description: 'An endpoint to logout an already authenticated user.
'
responses:
'200':
description: OK
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
/tm-authorization/keys:
get:
tags:
- TM Authorization API
summary: 'An endpoint to get the public keys to verify the JWT token.
'
description: 'An endpoint to get the public keys to verify the JWT token.
'
operationId: tm-get-keys
responses:
'200':
description: 'Th user has been authenticated.
'
content:
application/json:
schema:
$ref: '#/components/schemas/TmGetKeysResponse'
'400':
$ref: '#/components/responses/BadRequest400'
'500':
$ref: '#/components/responses/InternalServerError500'
/authorization/login:
get:
tags:
- TM OAuth API
operationId: login
summary: Get redirected to the authorisation URL or retrieve the list of external authorisation systems.
description: "Retrieve the list of external authorisation systems.
\nIt contains an array of authorisation URLs\
\ as well as their display names.
\nAn authorisation URL contains state, nonce, login redirect URL and other things.
\n\
The login redirect URL contains also the authentication_redirection_endpoint in the \nparameter
\nFor more information on the final result of\
\ the authorization process, see the response from the endpoint /authorization.
\n"
parameters:
- in: query
name: login_hint
required: false
schema:
type: string
description: 'An optional parameter which maybe contains a user name or something like that.
This parameter will be added to the
\nThis parameter will be added to the
\nThis parameter is also used - if given\
\ - to find out which authentication server should be used, if there are more than one \nauthentication server configured\
\ in the system.\n"
responses:
'200':
description: 'Returns an array of AuthenticationProviderData.
'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AuthenticationProviderData'
'500':
$ref: '#/components/responses/InternalServerError500'
/authorization:
post:
summary: Do NOT call this endpoint.
description: 'This end point is the redirection endpoint as given in the
Do NOT call this endpoint directly, because it''s called by the authorization server
via http 302 redirect.
'
operationId: authenticationRedirectionEndpoint
tags:
- TM OAuth API
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
required:
- code
- state
properties:
code:
type: string
state:
type: string
responses:
'200':
description: 'Returns the TokenResponseData, which contains the access token, refresh token, expiresIn and token
type.
At this point, the user is already logged in and their original hierarchy has been loaded.
ATTENTION:
The delivered access token has to be used in the
Moreover, a header attribute
Please see: $ref: ''#/components/parameters/nodeID-Param''
'
content:
application/json:
schema:
$ref: '#/components/schemas/TokenResponseData'
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
/authorization/logout:
delete:
tags:
- TM OAuth API
operationId: logout
security:
- bearerAuth: []
summary: Logout -> gets redirected to the logout URL.
description: 'Logout -> gets redirected to the logout URL.
'
responses:
'200':
description: OK
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
/token:
post:
tags:
- TM OAuth API
operationId: refreshToken
security:
- bearerAuth: []
summary: Refresh the token and retrieve a new access token, as well as a new refresh token, expiresIn and token type.
description: 'Retrieve an access token, as well as an refresh token, expiresIn and token type.
'
requestBody:
description: The request. It contains only the validation URL, if there is any
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RefreshTokenRequest'
responses:
'200':
description: 'Returns an array of AuthenticationProviderData.
'
content:
application/json:
schema:
$ref: '#/components/schemas/TokenResponseData'
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
get:
tags:
- TM OAuth API
operationId: exchangeToken
security:
- bearerAuth: []
summary: Exchange an access token for/to an PCEAdminSecurityToken.
description: 'Exchange an access token for/to an PCEAdminSecurityToken.
The PCEAdminSecurityToken is transmitted as bases64 encoded string, which was previously
serialized
using the PCESerializer.
Therefor before you can use the PCEAdminSecurityToken in later calls, the PCEAdminSecurityToken must be decoded and
de-serialized in the server!
'
parameters:
- in: query
name: login_reason
required: false
schema:
type: string
description: 'An optional parameter which maybe contains the login reason which is used to write an audit trails while
login in the user.
'
responses:
'200':
description: 'Returns an array of AuthenticationProviderData.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeTokenResponseData'
'400':
$ref: '#/components/responses/BadRequest400'
'401':
$ref: '#/components/responses/Unauthorized401'
'500':
$ref: '#/components/responses/InternalServerError500'
/test:
get:
tags:
- TM OAuth API
operationId: sandboxTest
security:
- basicAuth: []
- bearerAuth: []
summary: Endpoint to ease the tests of the API implementation.
description: 'Test the API using a get request.
The functionality depends on the testcase.
'
parameters:
- $ref: '#/components/parameters/nodeID-Param'
- in: query
name: testcase
required: true
schema:
type: string
enum:
- TEST_INTERCEPTOR_RIGHTS
description: "The name of the testcase.
\n
| Testcase name | \nDescription | \n\ \
| TEST_INTERCEPTOR_RIGHTS | \n\n Tests if the given OAuth token\
\ in the authorization header contains the required rights of the annotation. \n Here: IPCEAdminRights.CREATE_CUSTOMER\ \ and IPCEAdminRights.VIEW_CUSTOMER.\n | \n