User Management (API)

LDAP configuration

get
Authorizations
AuthorizationstringRequired
Responses
200

LDAP configuration

application/json
get
/auth/ldap
200

LDAP configuration

MFA configuration

get
Authorizations
AuthorizationstringRequired
Responses
200

MFA configuration

application/json
get
/auth/mfa
200

MFA configuration

MS Entra ID configuration

get
Responses
200

MS Entra ID configuration

application/json
get
/auth/msEntraId
200

MS Entra ID configuration

Create a new user

post
Authorizations
AuthorizationstringRequired
Body
usernamestring · min: 3Required
autoGeneratedbooleanOptionalDefault: false
mqttPublishPrefixstringOptional
passwordstring · min: 5Optional
identityProviderstring · enumRequiredPossible values:
rolesstring[]Optional

An array of roleId of the roles the new user should have. (Must be roleId, not role name.)

enforceMFAEnrollmentbooleanOptionalDefault: false
Responses
post
/users

List users

get
Authorizations
AuthorizationstringRequired
Query parameters
username[eq]string[]Optional

The optional list to be matched against the usernames

pageNumberintegerOptional

The page number to fetch, starts at page 1

rowsPerPageinteger · max: 100Optional

The number of records per page to return

excludeAutoGeneratedbooleanOptional

If the auto generated roles should be excluded from the results

Responses
200

Object with array of users and pagination information

application/json
get
/listUsers

List all usernames

get
Authorizations
AuthorizationstringRequired
Responses
200

Array of user ids

application/json
get
/users/usernames
200

Array of user ids

List user ids

get
Authorizations
AuthorizationstringRequired
Responses
200

Array of user ids

application/json
Responsestring[]
get
/users/ids
200

Array of user ids

Create new users in batch

post
Authorizations
AuthorizationstringRequired
Bodyobject[]
usernamestring · min: 3Required
autoGeneratedbooleanOptionalDefault: false
mqttPublishPrefixstringOptional
passwordstring · min: 5Optional
identityProviderstring · enumRequiredPossible values:
rolesstring[]Optional

An array of roleId of the roles the new user should have. (Must be roleId, not role name.)

enforceMFAEnrollmentbooleanOptionalDefault: false
Responses
post
/users/batch

Delete users in batch

post
Authorizations
AuthorizationstringRequired
Bodystring[]
string[]Optional
Responses
200

ok

No content

post
/users/batch/delete

No content

Change user password

put
Authorizations
AuthorizationstringRequired
Body
passwordstringOptional
newPasswordstring · min: 5Optional
Responses
put
/users/change-password

No content

Get a specific user

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Responses
200

User

application/json
get
/users/{id}

Update an existing user

put
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Body
usernamestring · min: 3Optional
passwordstringOptional
mqttPublishPrefixstringOptional
identityProviderstring · enumOptionalPossible values:
rolesstring[]Optional

An array of roleId of the roles the new user should have. (Must be roleId, not role name.)

disableMfabooleanOptional

Indicates that MFA for the given user should be disabled

enforceMFAEnrollmentbooleanOptional

Enforces the user to enroll MFA

Responses
200

OK

application/json
put
/users/{id}

Delete an existing user

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Responses
200

OK

No content

delete
/users/{id}

No content

Get all tokens generated by this user

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Responses
200

List of user generated tokens

application/json
get
/users/{id}/tokens

Delete all tokens generated by this user

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Query parameters
tokenIdstringOptional

Id of the Token to be deleted. All tokens for the user are deleted if not present.

Responses
200

Token(s) deleted

No content

delete
/users/{id}/tokens

No content

Add a new certificate to a user

post
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Body
fingerprintstringRequired
Responses
post
/users/{id}/certificates

No content

Delete an existing certificate

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Body
fingerprintstringRequired
Responses
200

OK

No content

delete
/users/{id}/certificates

No content

Add a new role to a user

post
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Body
roleIdstringRequired
Responses
post
/users/{id}/roles

No content

Remove a role from a user

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of user

Body
roleIdstringRequired
Responses
200

OK

No content

delete
/users/{id}/roles

No content

Create a new role

post
Authorizations
AuthorizationstringRequired
Body
namestringRequired
isSharedbooleanRequired
autoGeneratedbooleanOptional
ldapGroupDnstringOptional
msEntraIdGroupIdsstringOptional

A comma separated list of MS Entra Id groups associated with this role

Responses
post
/roles

List roles

get
Authorizations
AuthorizationstringRequired
Query parameters
name[eq]stringOptional

Filter by equal to name

Responses
200

Array of roles

application/json
get
/roles

List paginated roles

get
Authorizations
AuthorizationstringRequired
Query parameters
namesstring[]Optional

Filter by the given names

rowsPerPageinteger · min: 1 · max: 50Required

Set the page size of the yielded page

pageNumberinteger · min: 1Required

Set the current page to be retrieved

autoGeneratedbooleanOptional

Filter by roles that are or not auto generated, defaults to any

isSharedbooleanOptional

Filter by roles that are or not shared, defaults to any

Responses
200

Object with array of roles and pagination information

application/json
get
/roles/page

List roles names

get
Authorizations
AuthorizationstringRequired
Responses
200

Object with array of roles names and ids

application/json
get
/roles/names

Get a specific role

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

Responses
200

Role

application/json
get
/roles/{id}

Update an existing role

put
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

Body
namestringRequired
isSharedbooleanOptional
ldapGroupDnstringOptional
msEntraIdGroupIdsstringOptional

A comma separated list of MS Entra Id groups associated with this role

Responses
200

OK

application/json
put
/roles/{id}

Delete an existing role

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

Responses
200

OK

No content

delete
/roles/{id}

No content

List role permissions

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

Responses
200

Array of permissions

application/json
get
/roles/{id}/permissions

Add a new permission to a role

post
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

Body
resourcestringRequired
operationstring · enumRequiredPossible values:
contextstring · enumRequiredPossible values:
Responses
post
/roles/{id}/permissions

No content

Update an existing permission

get
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

pemIdstringRequired

Id of permission

Responses
200

Permission

application/json
get
/roles/{id}/permissions/{pemId}

Update an existing permission

put
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

pemIdstringRequired

Id of permission

Body
resourcestringOptional
operationstring · enumRequiredPossible values:
Responses
200

OK

No content

put
/roles/{id}/permissions/{pemId}

No content

Delete an existing permission

delete
Authorizations
AuthorizationstringRequired
Path parameters
idstringRequired

Id of role

pemIdstringRequired

Id of permission

Responses
200

OK

No content

delete
/roles/{id}/permissions/{pemId}

No content

Login into the cybus connectware

post
Body
usernamestringRequired
passwordstringRequired
expireTimeInHoursnumberOptional
labelstringOptional
Responses
200

OK

application/json
post
/login

Return the session of the current user

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
get
/session

Return the permissions of the current user

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

No content

get
/permissions

No content

Return a page of all permissions

get
Authorizations
AuthorizationstringRequired
Query parameters
idsstring[]Optional

Filter by the given permission ids

rowsPerPageinteger · min: 1 · max: 50Required

Set the page size of the yielded page

pageNumberinteger · min: 1Required

Set the current page to be retrieved

Responses
200

Object with array of permissions and pagination information

application/json
get
/permissions/page

Return all permissions ids

get
Authorizations
AuthorizationstringRequired
Responses
200

The ids of all permissions aggregated by resource, operation and context

application/json
get
/permissions/ids

Logout of the cybus connectware

post
Body
tokenstringRequired
Responses
200

OK

No content

post
/logout

No content

Endpoint for self-registration of clients

post
Body
usernamestring · min: 3Required

Username to be registered. The Auth Server will check this for uniqueness, so be sure to generate a reasonably namespaced username.

Example: iot.device.0123456
passwordstring · min: 5Optional

Secret password that should be set for the user. This will be stored in hashed form on the receiver side. Either this or a csr should be supplied.

Example: secret-password
csrstringOptional

Base 64 encoded certificate signing request in PEM format. Instead of a password, a client side certificate (x.509) can be used for authentication. If the CSR is supplied, the signed certificate will be returned once the authentication request is granted.

Example: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURSBSRVFVRVNULS0tLS0KTUlJQ3REQ0NBWndDQVFBd2J6RUxN QWtHQTFVRUJoTUNSRVV4RHpBTkJnTlZCQWdNQmtKbGNteHBiakVVTUJJRwpBMVVFQ2d3TFVtOWli M1J6SUVsdVl5NHhEREFLQmdOVkJBc01BMUltUkRFTk1Bc0dBMVVFQXd3RVVqSkVNakVjCk1Cb0dD U3FHU0liM0RRRUpBUllOY2pKa01rQmplV0oxY3k1cGJ6Q0NBU0l3RFFZSktvWklodmNOQVFFQkJR QUQKZ2dFUEFEQ0NBUW9DZ2dFQkFNSXlsQmk4azFIZDJseERXZHd5N1Z3WngvaUlrdWpTUUVtWmdk Y0JqNk4veTZTSQpiTGMwdFpmK2JGWUZZZ2p0OHRFUUJPRzhNeW94YmYwQSs4T0dHZFJvV3l2eHFt ci9TLzhNa1ZGUXJiS2duMDBaCmVrdWlZQVBUOFMvT0FZVnlGT21rWWtWSm0wdkRwMmRkcXRiTUZY bXZ1OGxnVnVPckFwMEQ4TjdBcVgwWlUwc0UKZzRmVkdpREtnS040cUFEcXR3aVZKb0dsR0JCYWpm ejAxSlhEWnhpUEVac3BYSGJyaVY0Z1JvV0VIVGNGcWc4cgo1WCtZRDlqTGVGdFdRb0g5SHA3ZEFP Y1lCRktVRVZjWTlGN20vRWZkVFBwNjNnbTdRdFR4S0EvelIyODRWQUVCCjZFbC8xU2FCME54YlVw bHgzVHp4T2ZKYjJpdEd0S1RzN1U2UnF3VUNBd0VBQWFBQU1BMEdDU3FHU0liM0RRRUIKQ3dVQUE0 SUJBUUIxejdKcGRIRERScTl2WE1BMmNBVVZBRmYvYkRXNzlkNmlMQ0pDVDZ5WlhOcHV0ZXA3N1pQ dQpIMSszb08vZmRJdDhaOThjV0J4ZVBNckVDM2krQ0lIdms4a202SVFMVW05cUZVdHRDN0VjUmpU UFYwT29vb2l0ClhXOHhzWVhGaEZPTStydTJnbEcrSUVMY3BydS9JamxyVHpwaUtNZVJGQ1FFemww WWtZRDZkSk82ME1CRVhjZUgKWHpFZTRtT2oxUDJKNFcycFI1bDFsQjZ5dXB4SWVuRjRhNm5EeFFE eFZkcmtBTHNJdDhGZUNTNDNvaHg4NVQ5SApHN2IwOFdmdEFrYzhKR3ZLb00rdE90MzlVZFFESE1S OU5QOG9RUUpMaldMcWZRdUtaRmZXNVJyR24zSzA2UGNICkRMN1FNc1hxNFBaMyswUXpCSjZJVGoz aUZubHp1VXBqCi0tLS0tRU5EIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLQo=
rolesstring[]Optional

Name of roles the user wants to be assigned to

contextstringRequired

Free text that helps the granting user understanding where this request comes from.

Example: IoT Device Serial Number <0123456>
Responses
post
/client-registry/register

Receive a list of all pending registration requests

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
get
/client-registry

Return the current lock status of the registration endpoint

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
get
/client-registry/status
200

OK

Open the registration endpoint temporarily

post
Authorizations
AuthorizationstringRequired
Body
durationintegerOptional

This parameter defines how long the registration endpoint will be kept open (in milliseconds). Default if undefined: 30000 milliseconds

Example: 30000
Responses
post
/client-registry/open

No content

Lock the registration endpoint now. This will flush the internal request cache.

post
Authorizations
AuthorizationstringRequired
Responses
post
/client-registry/lock

No content

Confirm a single authentication request

post
Authorizations
AuthorizationstringRequired
Body
usernamestring · min: 3Required

Username to confirm. Must match a username that is currently in the pendingRequests list.

mqttPublishPrefixstringOptional
rolesstring[]Optional

An array of roleId of the roles the new user should have. (Must be roleId, not role name.)

Responses
post
/client-registry/confirm

List certificates

get
Authorizations
AuthorizationstringRequired
Responses
200

Array of certficates

application/json
get
/certificates

Deletes certificate

delete
Authorizations
AuthorizationstringRequired
Query parameters
idstringRequired

Id of certificate

Responses
200

OK

No content

delete
/certificates

No content

Add certificate

post
Authorizations
AuthorizationstringRequired
Body
stringOptional
Responses
post
/certificates

Returns given certificate content

get
Authorizations
AuthorizationstringRequired
Query parameters
idstringRequired

Id of certificate

Responses
200

Certificate content

application/json
Responsestring
get
/certificates/content

Enhanced authentication of MQTT5 (not supported)

post
Body
client_idstringOptional
Responses
200

OK

application/json
post
/broker/auth/enhanced
200

OK

Return a password policy rules

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
get
/policy/password
200

OK

Return a database maintenance status

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
get
/maintenance/db
200

OK

Download a database backup

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
Responsestring
get
/maintenance/db/backup

Start a database backup

post
Authorizations
AuthorizationstringRequired
Responses
post
/maintenance/db/backup

Upload archive and start database restore

post
Authorizations
AuthorizationstringRequired
Responses
post
/maintenance/db/restore

No content

Enable MFA for an existing user

post
Authorizations
AuthorizationstringRequired
Responses
200

ok

application/json
post
/mfa/enable

Validate MFA enrollment of the user

post
Authorizations
AuthorizationstringRequired
Body
otpstringRequired
Responses
200

ok

application/json
post
/mfa/validate

Login user with MFA

post
Authorizations
AuthorizationstringRequired
Body
usernamestringRequired
otpstringOptional
backupCodestringOptional
secretstringRequired
Responses
200

ok

application/json
post
/mfa/login

User self de-registration from MFA

post
Authorizations
AuthorizationstringRequired
Body
otpstringOptional
backupCodestringOptional
Responses
200

ok

No content

post
/mfa/disable

No content

Regenarete backup codes a user

post
Authorizations
AuthorizationstringRequired
Body
otpstringOptional
backupCodestringOptional
Responses
200

ok

application/json
post
/mfa/regenerate/backupcodes

Checks if a user is enrolled to mfa or not

get
Authorizations
AuthorizationstringRequired
Responses
200

ok

application/json
get
/mfa/isenrolled

Redirects the client that accesses this path to the MS Entra ID login page

get
Header parameters
refererstringOptional

See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer. If given, will be used as the redirection in case of internal error during URL generation

Responses
get
/msEntraId/login

No content

Landing endpoint after user is done authenticating with MS Entra ID

get
Query parameters
codestringRequired

The access code provided by MS Entra ID that can be exchanged for Access and ID Tokens.

statestringRequired

State is a security parameter used to verify that the response is initiated from CW, preventing CSRF attacks.

Responses
get
/msEntraId/redirect

No content

Last updated

Was this helpful?