Advanced Authentication API

API Endpoint

Sample OAuth Integration

It is often useful to see what OAuth configuration is available. The following url is helpful. https://<AAserver>/osp/a/<TENANT>/auth/oauth2/.well-known/openid-configuration.

You can specify TOP for the <TENANT> parameter, if the Multitenancy mode is disabled, or you are not in Advanced Authentication as a Service (SaaS).

Client initiated OAuth (3 legged OAuth)

See the OAuth 2.0 Integration section of the Administrator Guide

Server to Server Authentication (2 legged OAuth)

  • An OAuth event with either Resource owner password credentials or client credentials must be enabled.

  • If Resource owner credentials is selected then a chain with a password method must be associated with the event.

  • If a user has been associated with the ‘Service Accounts’ role then that user will have an OAuth application automatically created for authentication using the client credential grant.

  • Use of an identity with a username and password is encouraged, rather than a API key or token with no user. Having an identity allows better logging and auditing, a least privilege user, and a location for credential updating.

Sample python pseudocode using the authlib framework to make OAuth calls:

# Retrieve metadata type information about the OAuth implementation
response = get(HOST, f'/osp/a/{args.tenant.upper()}/auth/oauth2/.well-known/openid-configuration',
               None, debug=args.verbose)
metadata = response.json()

# Get jwks information for validations
response = get(metadata['jwks_uri'], '', None, debug=args.verbose)

# Retrieve tokens
client = OAuth2Session(args.cid, args.secret, scope=args.scope)
token = client.fetch_token(metadata['token_endpoint'], username=args.user, password=password, verify=not args.insecure)

# validate token using the introspection_endpoint
introspection = client.introspect_token(metadata['introspection_endpoint'], token=token["access_token"])

# Gather user information
headers = {'Authorization': f'Bearer {token["access_token"]}'}
response = get(metadata['userinfo_endpoint'], '', None, headers=headers, debug=args.verbose)

# discard the token
client.revoke_token(metadata['revocation_endpoint'], token=token["refresh_token"])

Sample SCIM user which is added to the service account role and therefor allows for OAuth client credential authentication.

{
  "active": true,
  "emails": [
    {
      "primary": true,
      "type": "work",
      "value": "name4@frog.com"
    }
  ],
  "externalId": "999999999",
  "meta": {
    "resourceType": "User"
  },
  "name": {
    "familyName": "User",
    "formatted": "Test User",
    "givenName": "Test"
  },
  "password": "a90ak43b;4&*)0dakc9",
  "roles": [
    {
      "display": "SERVICE ACCOUNTS"
    }
  ],
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User"
  ],
  "urn:scim:schemas:extension:aa:1.0": {
    "oauth2_aud_base": "https://frog.com/\\nhttps://wild.frog.com\\nhttps://www.frog.com/",
    "oauth2_aud_exact": "https://froglogin.com/auth",
    "oauth2_redir_uris": "https://frog.com/finished-auth",
    "openid_scopes": [
      {
        "mandatory": false,
        "name": "aa:AdminUI",
        "openid": false,
        "require_owner_permission": false,
        "title": "Admin UI Allowed"
      }
    ]
  },
  "userName": "username4"
}

Results from using the sample code with the sample user above.

# python3 ./2leggedoauth.py --host test.frog.com --id 654321 --secret "12345678aA-" --insecure --verbose --scope "openid email user_roles tenantname tenantid client" --tenant TEST
 
Response: token={'access_token': 'eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6IkVkX2RqVWRwYjg4VGJBdFJoUW9uWjJSWG9zVSJ9.eyJpc3MiOiJodHRwczovL3Rlc3QuZnJvZy5jb20vb3NwL2EvVEVTVC9hdXRoL29hdXRoMiIsImV4cCI6MTY5NjI3MTc1MSwibmJmIjoxNjk2MjcxNjMxLCJpYXQiOjE2OTYyNzE2MzEsImp0aSI6Ikc5TldpTjlnUUhTUzkwcGF4VUFsUkEiLCJjbGllbnRfaWQiOiI2NTQzMjEiLCJzdWIiOiJvYXV0aDItNjU0MzIxIiwidHhuIjoiRG5YRGI4LTZRN3kzcHhhUmpvUFROUSIsInNjb3BlIjpbIm9wZW5pZCIsInRlbmFudGlkIiwidGVuYW50bmFtZSIsInVzZXJfcm9sZXMiLCJlbWFpbCJdLCJhdWQiOlsiNjU0MzIxIiwiTm9uZSJdLCJhdXRoX3RpbWUiOjAsIl9wdnQiOiJBQ01BRVFMbEFEY0hCalkxTkRNeU1YWUFQQUN2QUEifQ.SXWGwEoAdnXpu6R3mA17_4Lj0_10QVWyAhl2LH7VhYa3yvaIo5fttMlyojTTP0UGbWnJh7EeTK6HqFgZrAeeeOz0jdz7c1IdGebS6RRX40LOAV6n7svG84L1EKZO5HATOLwL9kIyRTa7iW7_0VdlI2vzVu80lzCnhVCkPvT7OTbCLQe0GHhqhn7FGxARpLHIKBoqTpP5X9DpKEsRgdGVFvZscTAsF5MR86Lg6dttay1_MxkOR351XHf3CJDKjJ5pa8BPx6PvvMiYsxzHokvq2QAS1GhN6yF95qlg6-nFheBndn6lbo8AN6_yjjt7RP2w1HWawLTnG2g-d07-RZ43QQ', 'token_type': 'Bearer', 'expires_in': 120, 'scope': 'openid tenantid tenantname user_roles email', 'expires_at': 1696271751}
Introspection:
( { 'active': True,
    'aud': ['654321', 'None'],
    'client_id': '654321',
    'exp': 1696271751,
    'iat': 1696271631,
    'iss': 'https://test.frog.com/osp/a/TEST/auth/oauth2',
    'nbf': 1696271631,
    'scope': 'openid tenantid tenantname user_roles email',
    'sub': 'oauth2-654321',
    'token_type': 'Bearer',
    'username': '654321'},)
('GET', 'https://test.frog.com/osp/a/TEST/auth/oauth2/userinfo', '', None)
('RESPONSE->', 200, {'auth_time': 1696271631, 'sub': 'oauth2-654321', 'tenantid': 'd32285665d5311ee8f7a0242ac110006', 'tenantname': 'TEST'})
User Info:
({'auth_time': 1696271631, 'sub': 'oauth2-654321', 'tenantid': 'd32285665d5311ee8f7a0242ac110006', 'tenantname': 'TEST'},)

Using the SCIM user above the OAuth clientId will be the “externalId” ie the value “999999999”. The secret will be the password of the user. Resetting the password resets the secret for the OAuth authentication. The access token returned from the OAuth call may be used as a bearer token Creating a user with a blank password "" results in a generated password being assigned to the user and returned to the caller.

Openid scopes maybe added to a service account. Adding aa:{Event Name} as the name of a scope allows the access token to be used in API calls to AA as though the session was authenticated to that event. For example if a user is associated with the roles for SERVICE ACCOUNTS and FULL ADMINS and the openid scope aa:AdminUI" then that token may be used for full API access to the AA system.

{
  "urn:scim:schemas:extension:aa:1.0": {
    "openid_scopes": [
      {
        "openid": false,
        "mandatory": false,
        "require_owner_permission": false,
        "name": "aa:AdminUI",
        "title": "Admin UI Allowed",
        "attributes": [
          {
            "localName": "tenantname",
            "clientName": "tenantname",
            "in_jwt": true
          },
          {
            "localName": "mobile",
            "clientName": "user_mobile_phone",
            "in_jwt": true
          },
          {
            "localName": "userFirstName",
            "clientName": "user_first_name",
            "in_jwt": true
          },
          {
            "localName": "userLastName",
            "clientName": "user_last_name",
            "in_jwt": true
          },
          {
            "localName": "mail",
            "clientName": "user_email",
            "in_jwt": true
          },
          {
            "localName": "roles",
            "clientName": "user_roles",
            "in_jwt": true
          },
          {
            "localName": "scim_user_id",
            "clientName": "user_scim_id",
            "in_jwt": true
          },
          {
            "localName": "external_user_id",
            "clientName": "user_external_id",
            "in_jwt": true
          }
        ]
      },
      {
        "openid": false,
        "mandatory": false,
        "require_owner_permission": false,
        "name": "aa:Helpdesk",
        "title": "Helpdesk Allowed"
      }
    ]
  }
}

Implementation of RFC 8707 to get a resource URI into the “aud” claim of an access token. This is incompatible with token sharing, either tokens are shared which imposes a list of audiences or the audiences are specified expliclty. Use oauth2_aud_exact for audiences that will do an exact match. Using oauth2_aud_base means that only the base portion of the audience must match for the audience to be considered valid. Multiple entries in either element should be seperated by \n.

{
  "urn:scim:schemas:extension:aa:1.0": {
    "oauth2_aud_base": "https://frog.com/\nhttps://wild.frog.com\nhttps://www.frog.com/",
    "oauth2_aud_exact": "https://froglogin.com/auth"
  }
}

Service Account Best Practices

  • Practice the principle of least privilege, avoid using a single service account with multiple roles and scopes.

  • Practice good secrets management

    • Store secrets securely.
    • Use long complex values as the secret (password if created via SCIM).
    • Frequently rotate the secret.
    • Do not reuse the same secret on multiple accounts or across tenants.
  • Monitor activity logs for incorrect service account usage.

  • Service Accounts which are not being used should be deleted not disabled.

  • Prefer audiences over scopes.

Sample Authentication Flow

This is the process to logon a user and get a login_session_id which is required for many other API calls. To log on a device or user to the AA Server:

  • Requires an endpoint id and secret. A single Endpoint may be used to authenticate many users. The endpoint id and secret are returned as a result of creating an Endpoint through one of the following mechanisms

    • Created once via the Admin UI and the endpoint id and secret are securely cached.
    • Created programmatically via the REST API. Create endpoint
  • Create an endpoint session. Create endpoint session

  • Read all chains available for user and event combination. Read user chains

  • Select a chain to attempt if multiple chains are returned.

  • Start logon process Start logon process

  • For each method in the chain perform the following actions:

    • Gather details about data and steps for specific methods. Methods
    • Call do_logon for specific method, the following may be returned:
      • OK: The authentication was successful and the login process has been completed. The returned * login_session_id* should be securely cached.
      • MORE_DATA: The specific method attempted requires additional data, see specific method descriptions for required data.
      • FAILED: The login attempt was not successful. Start a new logon process to try again.
      • NEXT: This method was successful.
      • STOP: The login attempt was not successful. Start a new logon process to try again.
    • After receiving the NEXT return from do_logon, continue chain processing for the following method in the chain by calling next. NEXT method
  • After successfully calling do_logon and NEXT method for every method the caller should recieve **OK ** and a login_session_id

  • Securely cache the returned login_session_id.

Sample Enrollment Flow

Enrollment is the process of setting up the expected response for a particular authentication method. Internally the credential information gathered during enrollment is stored securely in authentication templates. User Templates For some methods the setup is automatic and no user action is required, other methods require that a user manually enroll. Enroll. Enrollment may accomplished by users using the enrollment ui after they authenticate or may be done programmatically via the following steps:

  • Logon with Helpdesk or Authenticators Management events. Sample Authentication

  • Start enroll process Start enroll process

  • Gather details about data and steps for specific methods. Methods

  • Call do_enroll the following status may be returned:

    • OK: Proceed to ‘Associate the enrollment with a user.’
    • FAILED: Process will need start over. Cleanup enroll process
    • NEXT: Provide requested data.
  • Continue calling do_enroll until the status ‘OK’ or ‘FAILED’ is returned.

  • Associate the enrollment with a user. Create template, fill it from enroll session and link to user The admin may assign the enrollement/template with any user. A user may assign the proccess user to themselves. It is also possible for one user to start the enrollment and hand the enroll_process_id to a second user who then assigns it to themselves.

  • Cleanup if the enroll process is aborted. Cleanup enroll process

Error Handling

Normally the server responds with HTTP status in the 200-299 range and a JSON body (as described in corresponding service). In the case of errors, the HTTP status may be in the 400-599 range. The JSON Response body will be structured as follows.

{
  "errors": [
    {
      "description": "Cannot connect to the LDAP servers",
      "location": "server",
      "msgid": "AUCORE-0047"
    }
  ],
  "reason": "LDAP_NO_CONNECT"
}

Do not use msgid or description for result status checking. msgid is generated and may vary in different software versions. description is a translated string and will not be identical for all users. Use reason and the HTTP Status code for result status checking.

See Common Do logon for common status codes. Logon methods have additional individual statuses.

AA specific HTTP Status Codes

HTTP 433 - endpoint session not found or expired. It is possible to get this error in the middle of logon process. You may start new endpoint session, resend do_logon request and continue.

HTTP 434 - logon session not found or expired. Re-logon, get new login_session_id and then you may continue the operation.

HTTP 435 - enroll process not found or expired. Re-start the enroll process and then you may continue the operation.

HTTP 444 - logon process not found or expired. Start new logon.

HTTP 400 - wrong data (missed fields etc.) or method protocol violation e.g. voice method already did phone call and wait for PIN code, but you ask it to call user again. Fix your data and retry.

HTTP 454 - logon process not found or expired, returned when oob method can’t find the correct login process.

HTTP 500 - serious error, usually not possible to retry. Start your operation from the beginning (open new logon process, etc.)

Additional HTTP Response Status Code information may be found in RFC 7231

Additional HTTP Response Status Code information may be found in RFC 7231

Parameters in HTTP Headers, JSON body and query-string

You may send parameters such as login_session_id, endpoint_session_id, logon_process_id, user_name, etc. in JSON body, or HTTP headers, or query-string. Query-string is not recommended for sending secrets, but you may use it for debug in order to temporary override the value - query-string has the priority. Common practice is to use JSON body for POST/PUT/PATCH and headers for GET/DELETE. Or simply use headers everywhere for login_session_id and endpoint_session_id. Important! This is due to HTTP protocol. For headers, replace “_” with “-” in parameter name, e.g

  • login_session_id -> login-session-id

  • tenant_name -> tenant-name

Secrets

In addition to credential data, the following fields are all secrets which should be protected by industry standard best practices.

  1. login_session_id

  2. endpoint_session_id

  3. endpoint secret stored on endpoint device, passed as endpoint_secret_hash

Disclosing any of the above fields may allow third parties to read privileged data, impersonate users, or perform other actions behalf of users or endpoints.

Glossary of Terms

Authentication Method

These are the specific authentication methods that are supported by the framework. In order to use a method, it may need to be enrolled, and will need to be connected to a chain. A method without a chain cannot be used to authenticate.

Name Key Authentication by
BankID BANKID:1 BankID PIN
Bluetooth BLUETOOTH_ESEC:1 Bluetooth devices
Device DEVICE_AUTH:1 Windows TPM (Trusted Platform Module) based virtual smart card
Emergency password EMERG_PASSWORD:1 Alternate/Emergency password
Face FACE:1 Microsoft Cognitive API server
FIDO U2F U2F:1 FIDO U2F tokens
Finger FINGER:1 Fingerprint Biometric
Flex OTP FLEX_OTP:1 Flexible selection of TOTP, HOTP or Smartphone Offline OTP
Home Affairs National Identification System HANIS:1 Fingerprint Biometric
Home Affairs National Identification System HANIS_FACE:1 Face Biometric
LDAP password LDAP_PASSWORD:1 LDAP password, system uses different LDAP users repository
Denmark National ID NEMID:1 Denmark National ID Validation
OAuth 2.0 OAUTH2:1 OAuth 2.0
One-time password e-mail EMAIL_OTP:1 OTP sending by e-mail
One-time password hash HOTP:1 OTP with hash algorithm
One time password SMS SMS_OTP:1 OTP sending by SMS
One-time password time TOTP:1 OTP with time based algorithm
Out-of-band OOB:1 OOB UI (at server/oob/ui)
PKI PKI:1 PKI
RADIUS password RADIUS:1 RADIUS server
Security question SECQUEST:1 Security question
Smartphone authentication SMARTPHONE:1 Smartphone application
Smart Cards CARD:1 Smart Cards
TouchID TOUCHID:1 Apple TouchID
Virtual password PASSWORD:1 Password assigned to user
Voice call VOICE:1 Voice call
Web Authentication WEBAUTH:1 Web services
Windows Hello WINHELLO:1 Windows Hello

For additional information on enrollment and logon to individual methods see here

Chain

An authentication chain is a combination of authentication methods. A user must pass all methods in the chain to be successfully authenticated. For example, if you create a chain with LDAP Password and SMS, a user must first specify the LDAP Password. If the password is correct, the system sends an SMS with a One-Time-Password (OTP) to the user’s mobile. The user must specify the correct OTP to be authenticated.

You can create chains with multiple methods that are applicable for highly secure environments. You can create authentication chains for specific group of users in the repositories.

Enroll

Enrollment is the process of setting up the expected response for a particular authentication method. Internally the credential information gathered during enrollment is stored securely in authentication templates.

Endpoint

Endpoints are used to describe applications, clients, or devices that consume the Advanced Authentication API and provide authentication to users. Common examples of endpoint are computers, smartphones, RADIUS or VPN servers, and web applications.

Endpoint Session

Endpoint should create endpoint session on the server to start working. The endpoint session has a lifetime, after this, the endpoint session will be deleted and the session will need to be renewed. All users can work with one endpoint session on one endpoint.

Event

Advanced Authentication provides authentication events for the supported applications or devices. You can configure an event to leverage the Advanced Authentication functionalities for an application or a device. The application or device triggers the respective authentication event when a user tries to access it.

Logon

The server provides strong user authentication by using the chain-login concept. Each chain is a challenge-response login. To get a successful authentication, the entire chain should be completed. A chain can consist of one or many authentication method(s).

Login session

After a user logon, the system creates a login session, to access protected information from the server use this session. For example, reading event data requires a login session identifier.

User templates

The user’s templates contain authentication information associated with users. Each template is linked to a user and to an authentication method through the enrollment process. When users try to logon using a specific authentication method, the server finds the associated user template and provides authentication. Users cannot use authentication methods without associated user templates.

Localization

It’s possible to choose a locale for server messages and warnings. Server detects a locale for request by the next properties ordered by priority:

  1. HTTP parameter LOCALE for GET or DELETE requests.

  2. JSON attribute LOCALE for POST, PUT and PATCH methods::

  3. LOCALE cookie

  4. Accept-Language HTTP header

  • Request (application/json)

    {
        "login_session_id": "789",
        "method_id": "HOTP:1",
        "_LOCALE_": "ru-RU"
      }

Supported locale formats

  1. Language with territory:

    en_US, nl_NL

  2. Language with territory:

    ru-RU, fr-FR

  3. Language only:

    ru, nl, fr

Message ID

Server issues an additional Message ID which can be used for message customization:

{
    "chains": [],
    "completed_methods": [],
    "current_method": "PASSWORD:1",
    "logon_process_id": "Ww323YxvYv6IVj3J3EaLNlkVM2aoHfLa",
    "msgid": "AUCORE-1008",
    "msg": "Process has been started",
    "status": "MORE_DATA"
}

NOTE: Do not use msgid or msg for result status checking, use status instead. msg is a translated string and will not be identical for all users. msgid is generated and may vary in different software versions. If status is “FAILED” then use reason and the HTTP Status code for additional error handling.

Advanced Authentication API

Authentication

6.5 Changes

Starting in version 6.5, the REST interface has been modified so that session and process IDs (Endpoint Session ID, Login Session ID, etc.) are no longer passed in the REST URL. Instead, this information is now included as additional HTTP header values or within the body of the relevant HTTP requests. In this REST documentation, each API is listed twice:

  • The first definition represents the preferred method for version 6.5, where session IDs are passed via HTTP headers or the request body.

  • The second definition, labeled LEGACY, applies to previous versions of AA where this information was included in the REST URL. This older definition is marked as “Legacy” for clarity. Unless otherwise noted authentication is required for all API calls. Acceptable authentication is either a login_session_id passed on each call or a bearer token passed in the http header as Authorization: Bearer {token}.

API Tokens

API Tokens are long lived tokens for use by services, not all APIs currently support token based access. The token is passed as a bearer token to the API in an Authorization header. The more secure way of authenticating is to use Service Accounts and Server to Server OAuth Authentication.

List existing tokens:

GET /api/v1/accesstoken
Responses200
Headers
Login-Session-Id: r2P8TABStAxrbR9di7fXyOPZXf5fjjoE
Content-Type: application/json
Body
[
  {
    "created": "2021-11-04T16:40:47.680880",
    "expired_after": "2022-11-05T16:40:47.679562",
    "guid": "4d010410057b3a54749385db5dfdc4da7712a4bb",
    "revoked": "None",
    "scopes": []
  },
  {
    "created": "2021-11-04T16:40:47.709524",
    "expired_after": "2022-11-05T16:40:47.708642",
    "guid": "3f9e37a880046eed363f42fbf86f103c4f463b9a",
    "revoked": "None",
    "scopes": []
  }
]

List existing tokens:
GET/api/v1/accesstoken

Authorize using either login_session_id or bearer token.

URI Parameters
HideShow
limit
int (optional) Example: 1

The number of entries to return.

offset
int (optional) Example: 1

The location where iteration starts.

scopes
list (optional) Example: ['SCIM API']

The OAuth scope names.


LEGACY - List existing tokens:

GET /api/v1/accesstoken?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
[
  {
    "created": "2021-11-04T16:40:47.680880",
    "expired_after": "2022-11-05T16:40:47.679562",
    "guid": "4d010410057b3a54749385db5dfdc4da7712a4bb",
    "revoked": "None",
    "scopes": []
  },
  {
    "created": "2021-11-04T16:40:47.709524",
    "expired_after": "2022-11-05T16:40:47.708642",
    "guid": "3f9e37a880046eed363f42fbf86f103c4f463b9a",
    "revoked": "None",
    "scopes": []
  }
]

LEGACY - List existing tokens:
GET/api/v1/accesstoken?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Authorization may be accomplished via login_session_id or bearer token.

URI Parameters
HideShow
login_session_id
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

scopes
list (optional) Example: ['SCIM API']

Filter to return only entries with the specified scope.

offset
int (optional) Example: 1

start iterating at this location.

limit
int (optional) Example: 1

number of entries to return.


Create a new token:

POST /api/v1/accesstoken
Requestsexample 1
Headers
Login-Session-Id: x8Pjdd5MOJigOdjGpnd9vLHdQZaCSVre
Content-Type: application/json
Body
{
    "claims": {
        "rn": "IGBOOTSTRAPS",
    },
    "scopes": [],
    "ttl_days": 7
}
Responses200
Headers
Login-Session-Id: x8Pjdd5MOJigOdjGpnd9vLHdQZaCSVre
Content-Type: application/json
Body
{
  "bearer_token": "eyJhbGciOiJkaXIiLCJhdWQiOiJ0cyIsImVuYyI6IkExMjhDQkMtSFMyNTYiLCJpc3MiOiJ0cyIsInRlbiI6ImRlZjBkZWYwZGVmMGRlZjBkZWYwZGVmMGRlZjBkZWYwIn0..3gUu7fbR7Qfl_BbyeQ71PQ.t_wFI-NWhiFTPB9IYVH5RXyIzhjtIRNwhBnyU1yhacppvuZcuCYYSnlVbPSU-ZQGlwz-ooZKFEkQZwJnYCPU54Vs7qTrsAXIt5zMdGV7XHzf0Arqev-Oa7O3Nq0yHP_1v84YUL_WkrAqLuQ1zleU5ySvQUHjB8MPt58r24zBhPBQChcza4XeZcOIiLTrRqDPnXCT-rucyp7Bs9XtGsROIqEv5HP8yGBrq_Z6mN_8CQQrBtEwrMl_RvowLorfioYzEqJkCrZe_yw50wItiAyM3iSpOJ_gRTtCtyL3aUbxSIp7TKQGYE4IGwBBCdI1nq0xYRFGFSMOPlaimokfAzlVsA.MO0ONkAqVS084E4mxjTLqg",
  "details": {
    "created": "2021-11-04T14:01:21.278973",
    "expired_after": "2022-11-05T14:01:21.276665",
    "guid": "2ac6e4195cfb0ff83e55a0518e69d7d56e9ffcab",
    "revoked": "None",
    "scopes": []
  }
}

Create a new token:
POST/api/v1/accesstoken

Issue an API token for the public AA API.

Request Body Parameters

  • claims: dict (required*)

    • The JWT claims.
  • scopes: list (optional)

    • The OAuth scope names.
  • ttl_days: integer (optional)

    • The number of days the token should remain valid. It must not exceed the number of days from when the token was last issued.

LEGACY - Create a new token:

POST /api/v1/accesstoken?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "repo_name": "repo_1",
  "scopes": [],
  "ttl_days": 7
}
Responses200
Headers
Content-Type: application/json
Body
{
  "bearer_token": "eyJhbGciOiJkaXIiLCJhdWQiOiJ0cyIsImVuYyI6IkExMjhDQkMtSFMyNTYiLCJpc3MiOiJ0cyIsInRlbiI6ImRlZjBkZWYwZGVmMGRlZjBkZWYwZGVmMGRlZjBkZWYwIn0..3gUu7fbR7Qfl_BbyeQ71PQ.t_wFI-NWhiFTPB9IYVH5RXyIzhjtIRNwhBnyU1yhacppvuZcuCYYSnlVbPSU-ZQGlwz-ooZKFEkQZwJnYCPU54Vs7qTrsAXIt5zMdGV7XHzf0Arqev-Oa7O3Nq0yHP_1v84YUL_WkrAqLuQ1zleU5ySvQUHjB8MPt58r24zBhPBQChcza4XeZcOIiLTrRqDPnXCT-rucyp7Bs9XtGsROIqEv5HP8yGBrq_Z6mN_8CQQrBtEwrMl_RvowLorfioYzEqJkCrZe_yw50wItiAyM3iSpOJ_gRTtCtyL3aUbxSIp7TKQGYE4IGwBBCdI1nq0xYRFGFSMOPlaimokfAzlVsA.MO0ONkAqVS084E4mxjTLqg",
  "details": {
    "created": "2021-11-04T14:01:21.278973",
    "expired_after": "2022-11-05T14:01:21.276665",
    "guid": "2ac6e4195cfb0ff83e55a0518e69d7d56e9ffcab",
    "revoked": "None",
    "scopes": []
  }
}

LEGACY - Create a new token:
POST/api/v1/accesstoken?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Issue an API token for use with the public AA API.

URI Parameters
HideShow
login_session_id
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Revoke the token:

DELETE /api/v1/accesstoken
Responses204
Headers
Authorization: Bearer: {token}

Revoke the token:
DELETE/api/v1/accesstoken

Revoke the token provided in the Authorization header.


Read information about an existing token:

GET /api/v1/accesstoken/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Login-Session-Id: 3Ed2ah46mRbbdoBELfyeoGg9NsfFYnDZ
Content-Type: application/json
Body
{
  "claims": {
    "rn": "IGBOOTSTRAPS"
  },
  "created": "2021-11-04T14:01:21.278973",
  "expired_after": "2022-11-05T14:01:21.276665",
  "guid": "2ac6e4195cfb0ff83e55a0518e69d7d56e9ffcab",
  "revoked": "None",
  "scopes": []
}

Read information about an existing token:
GET/api/v1/accesstoken/{token_guid}

Return information about a previously issued token. Authorize using either login_session_id or bearer token.

URI Parameters
HideShow
token_guid
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

The ID of the token.


LEGACY - Read information about an existing token:

GET /api/v1/accesstoken/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "claims": {
    "rn": "IGBOOTSTRAPS"
  },
  "created": "2021-11-04T14:01:21.278973",
  "expired_after": "2022-11-05T14:01:21.276665",
  "guid": "2ac6e4195cfb0ff83e55a0518e69d7d56e9ffcab",
  "revoked": "None",
  "scopes": []
}

LEGACY - Read information about an existing token:
GET/api/v1/accesstoken/{token_guid}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Returns information about a previously issued token. Authorization may be accomplished via login_session_id or bearer token.

URI Parameters
HideShow
token_guid
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the token

login_session_id
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Revoke an existing token:

DELETE /api/v1/accesstoken/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses204
Headers
Authorization: Bearer {token}
Login-Session-Id: xDdsF6tEk4QFf7is0zXqoYMm4ndsGOqq

Revoke an existing token:
DELETE/api/v1/accesstoken/{token_guid}

Revoke the token identified by token_guid. Authorize using either login_session_id or bearer token.

URI Parameters
HideShow
token_guid
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

The ID of the token.


LEGACY - Revoke an existing token:

DELETE /api/v1/accesstoken/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses204
Headers
Authorization: Bearer {token}

LEGACY - Revoke an existing token:
DELETE/api/v1/accesstoken/{token_guid}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

The token identified by token_guid is revoked. Authorization may be accomplished via login_session_id or bearer token.

URI Parameters
HideShow
token_guid
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the token

login_session_id
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Renew an existing token:

POST /api/v1/accesstokenrefresh
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer {token} (required, string) The token passed in the authorization header is revoked.
Body
{
  "ttl_days": 30,
  "revoke": false
}
Responses200
Headers
Content-Type: application/json
Body
{
  "bearer_token": "eyJhbGciOiJkaXIiLCJhdWQiOiJ0cyIsImVuYyI6IkExMjhDQkMtSFMyNTYiLCJpc3MiOiJ0cyIsInRlbiI6ImRlZjBkZWYwZGVmMGRlZjBkZWYwZGVmMGRlZjBkZWYwIn0..3gUu7fbR7Qfl_BbyeQ71PQ.t_wFI-NWhiFTPB9IYVH5RXyIzhjtIRNwhBnyU1yhacppvuZcuCYYSnlVbPSU-ZQGlwz-ooZKFEkQZwJnYCPU54Vs7qTrsAXIt5zMdGV7XHzf0Arqev-Oa7O3Nq0yHP_1v84YUL_WkrAqLuQ1zleU5ySvQUHjB8MPt58r24zBhPBQChcza4XeZcOIiLTrRqDPnXCT-rucyp7Bs9XtGsROIqEv5HP8yGBrq_Z6mN_8CQQrBtEwrMl_RvowLorfioYzEqJkCrZe_yw50wItiAyM3iSpOJ_gRTtCtyL3aUbxSIp7TKQGYE4IGwBBCdI1nq0xYRFGFSMOPlaimokfAzlVsA.MO0ONkAqVS084E4mxjTLqg",
  "details": {
    "created": "2021-11-04T14:01:21.278973",
    "expired_after": "2022-11-05T14:01:21.276665",
    "guid": "2ac6e4195cfb0ff83e55a0518e69d7d56e9ffcab",
    "revoked": null,
    "scopes": []
  }
}

Renew an existing token:
POST/api/v1/accesstokenrefresh

Renew the token passed in the Authorization header.

The claims and scope are preserved from the original token issuance.

The TTL will be reused unless TTL parameter is passed. The new ttl may not be longer than the prior TTL.

By default, after renewing the token the old token will be revoked. This behavior may be controlled by passing the parameter "revoke": false.

Request Body Parameters

  • revoke: boolean (optional)

    • Whether to revoke the old token. By default, the token is revoked. If a transition period is needed, set "revoke": false to allow both tokens to coexist. As a best practice, old tokens that are no longer in use should be deleted.
  • ttl_days: integer (optional)

    • The number of days the token should remain valid. It must not exceed the number of days from when the token was last issued.

Bulk Operations

Allow bulk rest API operations

Send bulk operations to the AA service:

POST /api/v1/bulk
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer: {token} (optional, string) The authorization token, if not passed then login_session_id must be part of the body.
Body
{
  "login_session_id": "x1y2z3JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX",
  "fullRequests": true,
  "fullResponses": true,
  "failOnErrors": 3,
  "bulkids": {'oauth2_redir_uris': 'https://example.com'},
  "Operations": [
    {
      "method": "GET",
      "bulkId": "find-chain",
      "path": "/rest/admin/api/search/chains?q=SECOPEMAILCHAIN"
    },
    {
      "method": "POST",
      "bulkId": "create-email-chain",
      "path": "/rest/admin/api/chains",
      "data": {
        "name": "SECOPEMAILCHAIN",
        "is_enabled": true,
        "methods": [
          "EMAIL_OTP:1"
        ],
        "roles": [
          {
            "name": "ALL USERS",
            "idx": 0
          }
        ],
        "repos": [
          {
            "name": "LOCAL",
            "idx": 0
          }
        ]
      }
    },
    {
      "method": "GET",
      "bulkId": "get-app-id",
      "path": "/rest/admin/bulk"
    },
    {
      "method": "GET",
      "bulkId": "get-app-secret",
      "path": "/rest/admin/bulk"
    },
    {
      "method": "GET",
      "bulkId": "find-chain",
      "path": "/rest/admin/api/search/chains?q=SECOPEMAILCHAIN"
    },
    {
      "method": "POST",
      "bulkId": "create-event",
      "path": "/rest/admin/api/events",
      "data": {
        "name": "SECOPSEMAIL",
        "type": "OAuth2",
        "category_id": null,
        "is_enabled": true,
        "json_data": {
          "oauth2_appid": "ig-bulkId:get-app-id-cx",
          "oauth2_appsecret": "bulkId:get-app-secret",
          "oauth2_redir_uris": "https://www.google.com"
        },
        "chains": [
          {
            "id": "bulkId:find-chain"
          }
        ],
        "endpoints": []
      }
    },
    {
      "method": "POST",
      "bulkId": "wf-appmark",
      "bulkIdPath": "appmarks[*].id",
      "path": "/fedsso/api/v1/admin/applications",
      "data": {
        "name": [
          {
            "locale": "en",
            "value": "Workflow"
          }
        ],
        "description": [
          {
          "locale": "en",
          "value": "Workflow Service is a web-based service for creating workflows. It allows you to create, execute, and manage workflows, ranging from simple approval processes to custom workflows that exchange data with REST service"
          }
        ],
        "icon_id": "access",
        "enabled": true,
        "extensions_idp": {
          "saml": [],
          "oauth": [],
          "wsfed": []
        },
        "extensions_sp": {
          "saml": [],
          "oauth": [],
          "wsfed": []
        },
        "catalog_ref": [],
        "appmarks": [
          {
            "name": [
              {
                "locale": "en",
                "value": "Identity Governance Workflow"
              }
            ],
            "description": [
              {
                "locale": "en",
                "value": "Workflow Service is a web-based service for creating workflows. It allows you to create, execute, and manage workflows, ranging from simple approval processes to custom workflows that exchange data with REST service"
              }
            ],
            "icon_id": "access",
            "uri": "https://bulkId:aa_tenant_name.iga.bulkId:aa_tenant_base/wfconsole",
            "category": "applications",
            "launch_mode": "existing"
          }
        ],
        "authorizations": {
          "chains": [],
          "allow_chain_choice": 1
        }
      }
    }
  ]
}
Responses200
Headers
Content-Type: application/json
Body
{
  "Operations": [
    {
      "bulkId": "find-chain",
      "data": {
        "datums": [],
        "errors": []
      },
      "method": "GET",
      "request": {
        "login_session_id": "Qq3AudODLsLnwxKVmJedf0PwY1HKzBYW"
      },
      "status": "200"
    },
    {
      "bulkId": "create-email-chain",
      "create-email-chain": "47f8488ac08c11ee93980242ac110004",
      "data": {
        "apply_for_ep_owner": false,
        "forced": false,
        "grace_period": null,
        "groups": [],
        "id": "47f8488ac08c11ee93980242ac110004",
        "image_name": "EMAIL_OTP_1.png",
        "is_enabled": true,
        "is_image_custom": false,
        "is_trusted": null,
        "json_data": {
          "mfa_tags": [],
          "risk_level": "NONE"
        },
        "methods": [
          "EMAIL_OTP:1"
        ],
        "name": "SECOPEMAILCHAIN",
        "repos": [
          {
            "class_name": "LocalRepo",
            "config": {
              "fast_sync_enabled": true,
              "sync_data": {
                "last_fast_sync_error": "",
                "last_fast_sync_result": "",
                "last_full_sync_error": "",
                "last_full_sync_result": ""
              }
            },
            "id": "479824e6c08c11ee93980242ac110004",
            "name": "LOCAL"
          }
        ],
        "required_chain_id": null,
        "risk_level": "NONE",
        "roles": [
          {
            "desc": "All Users",
            "id": "479ed192c08c11ee93980242ac110004",
            "name": "ALL USERS"
          }
        ],
        "short_name": null
      },
      "location": "https://127.0.0.1/rest/admin/api/chains/47f8488ac08c11ee93980242ac110004",
      "method": "POST",
      "request": "{"name": "SECOPEMAILCHAIN", "is_enabled": true, "methods": ["EMAIL_OTP:1"], "roles": [{"name": "ALL USERS", "idx": 0}], "repos": [{"name": "LOCAL", "idx": 0}], "login_session_id": "Qq3AudODLsLnwxKVmJedf0PwY1HKzBYW"}",
      "status": "200"
    },
    {
      "bulkId": "get-app-id",
      "get-app-id": "9tUjRH5QYDcH13H90E7FOJ3zBNwS9yDa",
      "method": "GET",
      "status": "200"
    },
    {
      "bulkId": "get-app-secret",
      "get-app-secret": "8lmoNn1fhDyAGnEvFip2gHXbOktO3CKM",
      "method": "GET",
      "status": "200"
    },
    {
      "bulkId": "find-chain",
      "data": {
        "datums": [
          {
            "id": "47f8488ac08c11ee93980242ac110004",
            "name": "SECOPEMAILCHAIN"
          }
        ],
        "errors": []
      },
      "find-chain": "47f8488ac08c11ee93980242ac110004",
      "method": "GET",
      "request": {
        "login_session_id": "Qq3AudODLsLnwxKVmJedf0PwY1HKzBYW"
      },
      "status": "200"
    },
    {
      "bulkId": "create-event",
      "create-event": "48082318c08c11ee93980242ac110004",
      "data": {
        "all_categories": true,
        "category_id": null,
        "chains": [
          {
            "apply_for_ep_owner": false,
            "forced": false,
            "grace_period": null,
            "id": "47f8488ac08c11ee93980242ac110004",
            "image_name": "EMAIL_OTP_1.png",
            "is_enabled": true,
            "is_image_custom": false,
            "is_trusted": null,
            "json_data": {
              "mfa_tags": [],
              "risk_level": "NONE"
            },
            "methods": [
              "EMAIL_OTP:1"
            ],
            "name": "SECOPEMAILCHAIN",
            "repos": [
              {
                "class_name": "LocalRepo",
                "config": {
                  "fast_sync_enabled": true,
                  "sync_data": {
                    "last_fast_sync_error": "",
                    "last_fast_sync_result": "",
                    "last_full_sync_error": "",
                    "last_full_sync_result": ""
                  }
                },
                "id": "479824e6c08c11ee93980242ac110004",
                "name": "LOCAL"
              }
            ],
            "required_chain_id": null,
            "risk_level": "NONE",
            "short_name": ""
          }
        ],
        "endpoints": [
          {
            "desc": "OSP Endpoint",
            "device_id": "",
            "id": "43434343434343434343434343434343",
            "is_enabled": true,
            "is_local": true,
            "is_trusted": true,
            "name": "OSP",
            "owner": null,
            "software_type": "BuiltinOSP",
            "typ": 1
          }
        ],
        "expired_password_behavior": "allow",
        "forced": false,
        "geo_zones": [],
        "groups_to_return": [],
        "id": "48082318c08c11ee93980242ac110004",
        "is_enabled": true,
        "is_geo_fencing_enabled": false,
        "is_standard": false,
        "json_data": {
          "allow_logon_by_shared_template": true,
          "expired_password_behavior": "allow",
          "multiple_use_token": false,
          "oauth2_appid": "ig-9tUjRH5QYDcH13H90E7FOJ3zBNwS9yDa-cx",
          "oauth2_redir_uris": "https://www.google.com"
        },
        "multiple_use_token": false,
        "name": "SECOPSEMAIL",
        "return_groups_on_logon": false,
        "risk_policy_id": null,
        "type": "OAuth2"
      },
      "location": "https://127.0.0.1/rest/admin/api/events/48082318c08c11ee93980242ac110004",
      "method": "POST",
      "request": "{"name": "SECOPSEMAIL", "type": "OAuth2", "category_id": null, "is_enabled": true, "json_data": {"oauth2_appid": "ig-9tUjRH5QYDcH13H90E7FOJ3zBNwS9yDa-cx", "oauth2_appsecret": "8lmoNn1fhDyAGnEvFip2gHXbOktO3CKM", "oauth2_redir_uris": "https://www.google.com"}, "chains": [{"id": "47f8488ac08c11ee93980242ac110004"}], "endpoints": [], "login_session_id": "Qq3AudODLsLnwxKVmJedf0PwY1HKzBYW"}",
      "status": "200"
    }
  ],
  "status": "200"
}

Send bulk operations to the AA service:
POST/api/v1/bulk

Authentication may be accomplished via login_session_id or bearer token. The same authentication used to send the bulk operation is used on each of the child operations.

Similar to the SCIM Bulk Operations the bulk request enables clients to send a collection of requests to the service. AA bulk operations follow the SCIM model and use the “bulkId” Temporary Identifier to allow referencing between newly created objects.

Not all create requests return a single id or they may not return the id in the expected location. The current search order for determining the id returned from a request is described using the following json path syntax ‘id’ then ‘Resources[].id’ then 'datums[].id’. Should the response contain an id in a different location the operation can specify the location of the id for this operation by passing a json path via the ‘bulkIdPath’.

In the sample request below also see how operations on the path GET /rest/admin/bulk can be used to issue ids and secrets.

If using the AA admin API /rest/admin/api/ then it is often necessary to include a GET to one of the admin apis before beginning any change operations. This is so the bulk operation process has it’s CSRF headers properly initialized.

There are four optional attributes in the body of the request:

  • failOnErrors: integer specifying the number of errors that the service provider will accept before the operation is terminated and an error response is returned. If not set then all operations will be attempted.

  • fullRequests: boolean specifying if the request body should be returned in the response, useful to see how bulkids were resolved.

  • fullResponses: boolean specifying if the the full response to the operation should be included in the bulk response.

  • bulkids: A optional object of bulkids and their replacement values, will be added to the default well known bulkids. Default bulkids:

    • aa_tenant_name - well known bulkId contains the tenant name such as TOP
    • aa_tenant_base - in SaaS systems this will be the base domain to which the tenant name is prepended to get the per tenant hostname. This will not be populated in non-SaaS systems
    • aa_tenant_domain the url specific to the tenant for example: top.cyberresdev.com (lowercase) It will not always be bulkId:aa_tenant_name.bulkId:aa_tenant_base it may be the domain used in federating with external SAML IDPs.
    • See the AA SaaS API documentation for discussion of bulkid_templates and resolution.

When using bulkids there is no attempt to resolve circular cross-reference between resources.


Chain image

Provides chain images. This API is not restricted by endpoint/logon session.

Load chain image:

GET /api/v1/chain_image/4f34e2882991440ddd0fd515e0d0236c
Responses200
Headers
Content-Type: image/png

Load chain image:
GET/api/v1/chain_image/{image_name}

Return image of the chain.

When admin uploads new image of the chain, chain.image_name changes. Image cache does not expire and is cached forever.

This can be used as a src attribute of an HTML image.

Return default image if image_name is default.

URI Parameters
HideShow
image_name
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The value of chain.image-name.


POST /api/v1/cookies
RequestsGenerate cookie
Headers
Content-Type: application/json
Body
{
  "login_session_id": "B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "server_id": null,
  "cookie_value": "300e82d5d1f31108cd064155728c1dda"
}

Generate cookie value:
POST/api/v1/cookies

Generate cookie for this session using login_session_id. Return cookie_value and server_id. The server_id is null in a single-node configuration.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

GET /api/v1/cookies/a23as...34ff?server_id=a23as...34ff
Responses200
Headers
Content-Type: application/json
Body
{
        "user_id": "4f34e2882991440ddd0fd515e0d0236c",
        "user_name": "LOCAL\ADMIN",
        "sid": "GKWrJUBaeBA20KHzHAcmzihNrOgdXooh",
        "repo_id": "3c9c1fd8061e11e6b224080027983191",
        "repo_obj_id": "3caa08a0061e11e6b224080027983191",
        "event_name": "",
        "data_id": ""
    }

GET /api/v1/tickets?target_endpoint_id=a23as...34ff
Responses200
Headers
Login-Session-Id: XKIXfZwtXo8pN7FrGVS89eFvygsBODCR
Content-Type: application/json
Body
{
  "login_session_data": "296e9f9d8c19d7f9f....2a674855e3f574cb9e272bf68"
}

GET /api/v1/tickets?login_session_id=B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o&target_endpoint_id=a23as...34ff
Responses200
Headers
Content-Type: application/json
Body
{
  "login_session_data": "296e9f9d8c19d7f9f....2a674855e3f574cb9e272bf68"
}

Custom messages

Read localization items. Requires endpoint_session_id. No writes.

Read all custom messages for category:

GET /api/v1/custom_messages?category=messages
Responses200
Headers
Endpoint-Session-Id: 4uURgbMTGfgUIvi2WMnTaIvXrpytmp3q
Content-Type: application/json
Body
{
  "items": [
    {
      "category": "messages",
      "custom": "",
      "default": "ACCESS DENIED",
      "key": "errors.access_denied",
      "locale": "en"
    },
    {
      "category": "messages",
      "custom": "",
      "default": "Logon failed",
      "key": "errors.logon_failed",
      "locale": "en"
    },
    {
      "category": "messages",
      "custom": "",
      "default": "User not found",
      "key": "errors.user_not_found",
      "locale": "en"
    }
  ]
}

Read all custom messages for category:
GET/api/v1/custom_messages?category={category}

Return custom messages for specified locale or for english locale by default.

Possible category:

  • chains

  • methods

  • messages

URI Parameters
HideShow
category
string (required) Example: messages

The name of the category.

prefix
string (optional) Example: method.ldap

The prefix of the the key.


LEGACY - Read all custom messages for category:

GET /api/v1/custom_messages?endpoint_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&category=messages&prefix=method.ldap
Responses200
Headers
Content-Type: application/json
Body
{
  "items": [
    {
      "category": "messages",
      "custom": "",
      "default": "ACCESS DENIED",
      "key": "errors.access_denied",
      "locale": "en"
    },
    {
      "category": "messages",
      "custom": "",
      "default": "Logon failed",
      "key": "errors.logon_failed",
      "locale": "en"
    },
    {
      "category": "messages",
      "custom": "",
      "default": "User not found",
      "key": "errors.user_not_found",
      "locale": "en"
    }
  ]
}

LEGACY - Read all custom messages for category:
GET/api/v1/custom_messages?endpoint_session_id={endpoint_session_id}&category={category}&prefix={prefix}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Method will return custom messages for specified locale or for english locale by default

Possible category:

  • chains

  • methods

  • messages

URI Parameters
HideShow
category
string (required) Example: messages

Category name

prefix
string (optional) Example: method.ldap

Prefix of key

endpoint_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the endpoint session


Read custom messages item for category and key:

GET /api/v1/custom_messages?category=messages&key=errors.logon_failed
Responses200
Headers
Endpoint-Session-Id: EkFPKRjqJRHfQ30EzC7Vx0TP0qgzaWfy
Content-Type: application/json
Body
{
  "category": "messages",
  "custom": "",
  "default": "Logon failed",
  "key": "errors.logon_failed",
  "locale": "en"
}

Read custom messages item for category and key:
GET/api/v1/custom_messages?category={category}&key={key}

Return custom messages for specified locale or for english locale by default.

Possible category:

  • chains

  • methods

  • messages

URI Parameters
HideShow
category
string (required) Example: messages

The name of the category.

key
string (required) Example: errors.logon_failed

The key of the custom message.


LEGACY - Read custom messages item for category and key:

GET /api/v1/custom_messages?endpoint_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&category=messages&key=errors.logon_failed
Responses200
Headers
Content-Type: application/json
Body
{
  "category": "messages",
  "custom": "",
  "default": "Logon failed",
  "key": "errors.logon_failed",
  "locale": "en"
}

LEGACY - Read custom messages item for category and key:
GET/api/v1/custom_messages?endpoint_session_id={endpoint_session_id}&category={category}&key={key}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Method will return custom messages for specified locale or for english locale by default

Possible category:

  • chains

  • methods

  • messages

URI Parameters
HideShow
category
string (required) Example: messages

Category name

key
string (required) Example: errors.logon_failed

Custom message key

endpoint_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the endpoint session


Enroll

Enrollment is the process of setting up the expected response for a particular authentication method. Internally the credential information gathered during enrollment is stored securely in authentication templates. User Templates

See Sample Enrollment Flow

Start enroll process:

POST /api/v1/enroll
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "login_session_id": "B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o",
  "method_id": "HOTP:1"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "enroll_process_id": "JfgSCsAr89tR3tu92mKV3MWy4LWSmroU"
}

Start enroll process:
POST/api/v1/enroll

Return enroll_process_id. Use it in the common do enroll.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • method_id: string (required*)

    • The ID of the method.

Common Do enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request for HOTP:1 enroll
Headers
Enroll-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "counter": 10,
    "secret": "0000000000000100"
  }
}
Responses200
Headers
Enroll-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
  "method_id": "HOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

Common Do enroll:
POST/api/v1/enroll/do_enroll

This call:

  • Create the authentication template.

  • Associate the template with the user.

  • Close the enroll process.

Use the enroll_process_id returned from the start enroll process to make one or more requests to this API.

The request format depends on the enrollment type:

  • It may be specific to the method being enrolled.

  • Or it may include an auth_t_id, which adds enrollment to an existing authenticator.

Some methods may require multiple calls to complete enrollment. Continue calling this API and providing the required information as long as the response "status": "MORE_DATA". When the status: "OK", the enrollment process is complete.

Each enrollment must be linked to a template and a user, which is done by calling the user_templates.

If the user_templates call is not made—due to an error or user abandonment—you should clean up the enrollment by calling destroy pending/waiting process.

For details on the required data and steps for specific methods, see methods.

Request Body Parameters:

  • auth_t_id: string (required* if response is not provided)

    • The ID of the template. Enrollment on top of an existing authenticator results in a shared authenticator.
  • response: dict (optional)

    • The information required by the method being enrolled. Contents determined by the method. Used if auth_t_id is not provided.

LEGACY - Common Do enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request for HOTP:1 enrollIncorrect request for HOTP:1 enroll, wrong response contents for HOTP:1
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "counter": 10,
    "secret": "0000000000000100"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "HOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "0000000000000100"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "msg": "Secret and counter are required",
  "msgid": "AUCORE-3028",
  "reason": "",
  "status": "FAILED"
}

[DELETE /api/v1/enroll/{enroll_process_id:[a-zA-Z0-9]{32}}]

LEGACY - Common Do enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Using the enroll_process_id returned from start enroll perform one or more calls to this API. The format of the request will either be specific to the method being enrolled or an auth_t_id which results in enrollment on top of an existing authenticator. Depending on the method enrollment may require multiple calls to this API, the caller should continue calling this API, providing required information as long as the status is ‘MORE_DATA’.

When status: "OK" is returned , the enroll process is finished.

The enrollment must be associated with a template and a user. This is accomplished via a call to user_templates service. In addition to creating the authentication template, associating it with a user the call will close the enroll process. If because of error, or user abandonment the user_template call is not made, the caller should clean up the enrollment by calling destroy

Details about data and steps for specific methods may be found here.

Request Body Parameters:

  • auth_t_id: 83523194b70919672b1157bc929ed67a (optional, string) - enrollment on top of an existing authenticator, this results in shared authenticators. If not provided there must be a response.

  • response: (optional, json) - Information required by the method being enrolled. Contents determined by the method. If not provided there must be an auth_t_id.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


Destroy pending/waiting process:

DELETE /api/v1/enroll
Responses200
Headers
Enroll-Process-Id: S0SpCAkf33siyJKw9p5xlNZuTiOTnQn7
Content-Type: application/json
Body
null

Destroy pending/waiting process:
DELETE/api/v1/enroll

Delete the enrollment process.


LEGACY - Destroy pending/waiting process:

DELETE /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?login_session_id=LRvql8GD946V7ryN8fesWBLhN1I7dpEe
Responses200
Headers
Content-Type: application/json
Body
null

LEGACY - Destroy pending/waiting process:
DELETE/api/v1/enroll/{enroll_process_id}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process

login_session_id
string (required) Example: LRvql8GD946V7ryN8fesWBLhN1I7dpEe

ID of the login session


Enroll chains:

POST /api/v1/enroll/chains/get
Requestsexample 1
Headers
Login-Session-Id: rBT79CAz8AWh1o920OrHumx32iaToCU9
Content-Type: application/json
Body
null
Responses200
Headers
Login-Session-Id: rBT79CAz8AWh1o920OrHumx32iaToCU9
Content-Type: application/json
Body
{
  "chains": {
    "CAT1": [
      {
        "apply_for_ep_owner": false,
        "grace_period": "None",
        "id_hex": "3c927b4a061e11e6b224080027983191",
        "image_name": "default",
        "is_enabled": true,
        "is_trusted": "None",
        "methods": [
          {
            "id": "BANKID:1",
            "is_enrolled": false
          },
          {
            "id": "EMAIL_OTP:1",
            "is_enrolled": true
          }
        ],
        "mfa_tags": [],
        "name": "Bankid+Email-otp",
        "position": 0,
        "required_chain_id_hex": "None",
        "short_name": ""
      },
      {
        "apply_for_ep_owner": false,
        "grace_period": "None",
        "id_hex": "3c927b4a061e11e6b224080027983191",
        "image_name": "SMS_OTP_1.png",
        "is_enabled": true,
        "is_trusted": "None",
        "methods": [
          {
            "id": "SMS_OTP:1",
            "is_enrolled": true
          }
        ],
        "mfa_tags": [],
        "name": "sms",
        "position": 1,
        "required_chain_id_hex": "None",
        "short_name": ""
      }
    ]
  },
  "": [ // empty refers to Default category
    {
      "apply_for_ep_owner": false,
      "grace_period": "None",
      "id_hex": "3c927b4a061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": "None",
      "methods": [
        {
          "id'": "PASSWORD:1",
          "is_enrolled": true
        }
      ],
      "mfa_tags": [],
      "name": "Password Only",
      "position": 0,
      "required_chain_id_hex": "None",
      "short_name": ""
    }
  ]
}

Enroll chains:
POST/api/v1/enroll/chains/get

Return the chains applicable to the logged-in user.


LEGACY - Enroll chains:

POST /api/v1/enroll/chains/get
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "login_session_id":"rBT79CAz8AWh1o920OrHumx32iaToCU9",
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": {
    "CAT1": [
      {
        "apply_for_ep_owner": false,
        "grace_period": "None",
        "id_hex": "3c927b4a061e11e6b224080027983191",
        "image_name": "default",
        "is_enabled": true,
        "is_trusted": "None",
        "methods": [
          {
            "id": "BANKID:1",
            "is_enrolled": false
          },
          {
            "id": "EMAIL_OTP:1",
            "is_enrolled": true
          }
        ],
        "mfa_tags": [],
        "name": "Bankid+Email-otp",
        "position": 0,
        "required_chain_id_hex": "None",
        "short_name": ""
      },
      {
        "apply_for_ep_owner": false,
        "grace_period": "None",
        "id_hex": "3c927b4a061e11e6b224080027983191",
        "image_name": "SMS_OTP_1.png",
        "is_enabled": true,
        "is_trusted": "None",
        "methods": [
          {
            "id": "SMS_OTP:1",
            "is_enrolled": true
          }
        ],
        "mfa_tags": [],
        "name": "sms",
        "position": 1,
        "required_chain_id_hex": "None",
        "short_name": ""
      }
    ]
  },
  "": [ // empty refers to Default category
    {
      "apply_for_ep_owner": false,
      "grace_period": "None",
      "id_hex": "3c927b4a061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": "None",
      "methods": [
        {
          "id'": "PASSWORD:1",
          "is_enrolled": true
        }
      ],
      "mfa_tags": [],
      "name": "Password Only",
      "position": 0,
      "required_chain_id_hex": "None",
      "short_name": ""
    }
  ]
}

LEGACY - Enroll chains:
POST/api/v1/enroll/chains/get

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Return the chains applicable to the logged-in user.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

Enroll TOTP

Desktop OTP Tool REST API. Allow user to enroll new TOTP.

Enroll new TOTP:

POST /api/v1/otp-enroll
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "password": "12345",
  "user_name": "user1",
  "category_name": "test",
  "comment": "MY_LAPTOP",
  "tenant_name": "HOME"
}
Responses200200
Headers
Content-Type: application/json
Body
{
  "category_id": "f1be127607dc11e69bae080027983191",
  "hash": "sha1",
  "id": "72fe734607db11e69bae080027983191",
  "is_base32_secret": false,
  "otp_format": "dec6",
  "period": 30,
  "secret": "5ea77p94xbdfmoqy67n3c76sz64n0o31",
  "serial": null,
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "msg": "Invalid credentials",
  "reason": "LDAP_PASSWORD_WRONG",
  "status": "FAILED"
}

Enroll new TOTP:
POST/api/v1/otp-enroll

Enroll a new Time-based One-Time Password (TOTP) authenticator for a user.

Request Body Parameters

  • password: string (required*)

    • The LDAP password. It is used for users from the LDAP repository; Password AP is used for users from other repositories.
  • user_name: string (required*)

    • The name of the user with optional repository.
  • category_name: string (optional)

    • The name of the category. The enrolled template should belong to this category. Default to None.
  • comment: string (optional)

    • The comment for the enrolled TOTP template.
  • tenant_name: string (optional)

    • The tenant name of the user. Default to TOP.

Remove already enrolled TOTP template:

POST /api/v1/otp-enroll/delete
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "template_id": "user1",
  "secret_hash": "df2e2418e60c421ac7b1455fc63c4dd3d798f07be526a44dd4b546d73bd5a22e"
}
Responses200200
Headers
Content-Type: application/json
Body
{
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "msg": "Wrong secret hash was provided",
  "reason": "WRONG_SECRET_HASH",
  "status": "FAILED"
}

Remove already enrolled TOTP template:
POST/api/v1/otp-enroll/delete

Remove an existing enrolled Time-based One-Time Password (TOTP) template from the user. This action disables TOTP authentication associated with that template.

Request Body Parameters

  • template_id: string (required*)

    • The ID of the template.
  • secret_hash: string (required*)

    • The SHA-256 hash of the TOTP secret, encoded in hexadecimal format.

Endpoints

Endpoint management

Register new endpoint:

POST /api/v1/endpoints
RequestsNot trusted endpointTrusted endpoint
Headers
Content-Type: application/json
Body
{
    "name": "workstation1.domain.local",  // pass hostname here
    "software_type": "Windows Client",    // PAM Module/AD filter/etc
    "software_ver": "6.0.111",
    "desc": "New NAM endpoint",
    "tenant_name": "MARIA_GROUP",
    "os": {
        // recognized fields
        "type": "Windows",  // Linux, MacOS etc.
        "display_name": "Windows 10 Version 1607",  // Ubuntu 14.04.3 LTS
        "platform": "x64",  // x86 ARM8 etc
        "version": "10.0.14393",  // "14.04.03"
        // Windows machine GUID/SID, Linux machine-id etc.
        // please send GUID as "7c0da94b-ded2-4eb3-9c90-22a568f8d30a",
        // not as "{7c0da94b-ded2-4eb3-9c90-22a568f8d30a}" to slightly improve indexing performance
        "device_id": "<str, unique computer/device ID>",
    // other fields possible - OS specific info
    "build": "14393",
    "tz": "+07:00",
    "win10_version": "1607",
    "RAM": "32768",
    "domain": "WORKGROUP",
    "linux_distr": "Ubuntu",
    "windows_family": "Desktop"
},
    "extra": {
        // any extra fields possible
    },
    "_force": true  // delete conflicting endpoint if any
}
Responses200
Headers
Content-Type: application/json
Body
{
  "secret": "cctdgkMc4pyKw0jAduP5CetGtaGKniPL",
  "id": "76d1d94607da11e69bae080027983191"
}
Headers
Content-Type: application/json
Body
{
  "name": "nam.new.trusted.endpoint",
  "typ": 3,
  "desc": "New trusted NAM endpoint2",
  "is_trusted": true,
  "tenant_name": "MARIA_GROUP",
  "auth_data": {
    "method_id": "PASSWORD:1",
    "user_name": "LOCAL\\admin",
    "password": "password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "secret": "cJd8UjfftveHW4JXrphTupMDACoF06xZ",
  "id": "72fe734607db11e69bae080027983191"
}

Register new endpoint:
POST/api/v1/endpoints

Register a new endpoint and return an endpoint id and secret. These credentials are sensitive and must be stored securely. Recommended storage methods include secure registries or files accessible only by privileged users.

The endpoint id and secret are used to create endpoint sessions.

Administrators can restrict endpoint creation to specific IP addresses that meet allowlist criteria.

Request Body Parameters

  • Please see the examples.

Read endpoint information:

GET /api/v1/endpoints/f1be127607dc11e69bae080027983191
Responses200404
Headers
Content-Type: application/json
Body
{
    "name": "nam.new.trusted.endpoint3",
    "typ": 1,
    "desc": "New trusted NAM endpoint",
    "is_enabled": true,
    "id": "d5f5881e07df11e69bae080027983191",
    "is_trusted": true
    // os information is not returned for security reason - this call is world-accessible
}
Headers
Content-Type: application/json
Body
{
    "errors": [
            {
            "location": "server",
            "name": "AuError",
            "msgid": "AUCORE-1022",
            "description": "Endpoint could not be found"
            },
        "reason": "RESOURCE_NOT_FOUND"
    ],
    "status": "FAILED"
}

Read endpoint information:
GET/api/v1/endpoints/{endpoint_id}

Retrieve detailed information about a registered endpoint.

URI Parameters
HideShow
endpoint_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the endpoint.


Destroy endpoint:

DELETE /api/v1/endpoints/f1be127607dc11e69bae080027983191
RequestsDelete trusted endpointDelete untrusted endpoint with secret
Headers
Content-Type: application/json
Body
{
  "auth_data": {
    "method_id": "PASSWORD:1",
    "user_name": "LOCAL\\admin",
    "password": "admin"
  }
}
Responses200
Headers
Content-Type: application/json
Body
null
Headers
Content-Type: application/json
Body
{
  "secret": "M2QjVLgxVKOYrpVtYKafsGtKrBRx1aTU"
}
Responses200
Headers
Content-Type: application/json
Body
null

Destroy endpoint:
DELETE/api/v1/endpoints/{endpoint_id}

Delete the registered endpoint.

Untrusted endpoints can be destroyed by any user who possesses the endpoint’s secret or auth_data. Trusted endpoints can only be destroyed using auth_data.

Note: Only users with FULL ADMIN or ENROLL ADMIN roles are authorized to perform this action.

Note: This method requires a JSON body. Some web clients or proxy servers may not support request bodies for the HTTP DELETE method.

Allowed authentication methods for auth_data:

  • PASSWORD:1

  • LDAP_PASSWORD:1

  • RADIUS:1

  • TOTP:1

  • HOTP:1

Request Body Parameters

  • Please see the examples.
URI Parameters
HideShow
endpoint_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the endpoint.


Update endpoint information:

PATCH /api/v1/endpoints/f1be127607dc11e69bae080027983191
RequestsChange endpoint name
Headers
Content-Type: application/json
Body
{
    "name":"sara.domain.local",
    "auth_data": {
                    "method_id": "PASSWORD:1",
                    "user_name": "LOCAL\admin",
                    "password": "admin"
    },
    // optional
    "os": {
        // ... Entire dictionary will be changed
    }
    "software_type": "Windows Client",
    "software_ver": "6.2",
}
Responses200
Headers
Content-Type: application/json
Body
null

Update endpoint information:
PATCH/api/v1/endpoints/{endpoint_id}

Update the configuration or metadata of an existing endpoint.

Request Body Parameters

  • auth_data: dict (required*)
    • The authentication data for the endpoint.

Note: If you omit a field, it will not be changed.

URI Parameters
HideShow
endpoint_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the endpoint.


Search endpoints by name:

POST /api/v1/endpoints/search
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "tenant_name": "MARIA_GROUP",
  "name": "nam.new.trusted.endpoint3",
  "auth_data": {
    "method_id": "PASSWORD:1",
    "user_name": "LOCAL\\admin",
    "password": "admin"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "endpoints": [
    {
      "name": "nam.new.trusted.endpoint3",
      "typ": 1,
      "desc": "New trusted NAM endpoint",
      "is_enabled": true,
      "id": "d5f5881e07df11e69bae080027983191",
      "is_trusted": true
    }
  ]
}

Search endpoints by name:
POST/api/v1/endpoints/search

Searches for registered endpoints by name. Returns a endpoint that match the given search criteria.

Note: Only users with FULL ADMIN or ENROLL ADMIN roles are authorized to perform this action.

Request Body Parameters

  • auth_data: string (required*)

    • The authentication data for the endpoint.
  • tenant_name: string (required*)

    • The name of the tenant. Default to TOP.
  • name: string (required*)

    • The name of the endpoint. (case-insensitive)

Endpoint Sessions

Endpoint session management. Required as part of the do logon process. Authenticated using the endpoint id and endpoint secret returned during endpoint creation. Create endpoint The endpoint secret is never sent back to the server, except as a hash.

Session lifetime (TTL): expire on inactivity 60 min, max lifetime 10080 min. It may change without notice. Please handle 434/433 HTTP codes to re-open session on-the fly and re-send request.

Create endpoint session:

POST /api/v1/endpoints/f1be127607dc11e69bae080027983191/sessions
RequestsSuccessful create sessionCreate session with incorrect credentials
Headers
Content-Type: application/json
Body
{
  "endpoint_secret_hash": "d8065693d119fd3d3b0ea54b31d0bf66cc6b56879de302c94cf0e464fef67124",
  "name": "new.endpoint.name",  // rename endpoint (e.g if hostname has been changed)
  // Optional - update os and client software information
  "os": {
    // Entire dictionary will be changed
    // Always pass full info or don't pass any
    "display_name": "Ubuntu 14.04.3 LTS",
    "platform": "x64",
    "version": "14.04.03"
  },
  "salt": "i_am_salt",
  "session_data": {
    "any": {
      "data": [
        "you",
        "want to store",
        "in session"
      ]
    }
  },
  "software_type": "Windows Client",  // optional
  "software_ver": "6.2"  // optional
}
Responses200
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "0TbKHn9MsZKJYhfQ0FZ0W2y0RHVwxTOY"
}
Headers
Content-Type: application/json
Body
{
  "salt": "i_am_salt",
  "endpoint_secret_hash": "d8065693d119fd3d3b0ea54b31d0bf66cc6b56879de302c94cf0e464fef67127",
  //incorrect secret hash
  "session_data": {"any": { "data": ["you", "want to store", "in session"] } }
}
Responses403
Headers
Content-Type: application/json
Body
{
  "errors": [
   {
     "location": "server",
     "name": "AuError",
     "msgid": "AUCORE-1065",
     "description": "Incorrect credentials (endpoint secret)"
   },
  "reason": "ACCESS_DENIED"
  ],
  "status": "FAILED"
}

Create endpoint session:
POST/api/v1/endpoints/{endpoint_id}/sessions

Create an endpoint session. The client is required to provide both endpoint_id and endpoint_secret, which must be obtained from a trusted source. The endpoint_secret should never be transmitted in plain text; it must be securely hashed and salted before being sent to the server. Upon successful validation, the server returns an endpoint_session_id. If validation fails, a HTTP error is returned.

endpoint_secret_hash calculation in python

def get_endpoint_secret_hash(endpoint, salt):
    # Calculates endpoint secret hash as SHA256(endpoint.secret, SHA256(endpoint.id_hex + salt))
    # salt is random string of length >= 1

    salted_endpoint_id = (endpoint.id_hex + salt).encode('utf-8')
    endpoint_id_hash = sha256(salted_endpoint_id).hexdigest()
    salted_enpoint_secret = (endpoint.secret + endpoint_id_hash).encode('utf-8')

    return sha256(salted_enpoint_secret).hexdigest()

Request Body Parameters

  • Please see the examples.
URI Parameters
HideShow
endpoint_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the endpoint.


Read information about endpoint session:

GET /api/v1/endpoints/f1be127607dc11e69bae080027983191/sessions/?endpoint_secret_hash=7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6&salt=i_am_salt
Responses200
Headers
Endpoint-Session-Id: 3bATmmruQP7wJfnux80kdlhXKSFtFPt0
Content-Type: application/json
Body
{
  "endpoint_id": "377ac5fe07e011e69bae080027983191",
  "session_data": {
    "any": {
      "data": [
        "you",
        "want to store",
        "in the session"
      ]
    }
  },
  "sid": "daTpDaWAd5BP0QzBNcIulLuFYCJ32Aak"
}

Read information about endpoint session:
GET/api/v1/endpoints/{endpoint_id}/sessions/?endpoint_secret_hash={endpoint_secret_hash}&salt={salt}

Retrieves detailed information about an existing endpoint session.

URI Parameters
HideShow
endpoint_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the endpoint.

endpoint_secret_hash
string (required) Example: 7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6

The endpoint secret hash.

salt
string (required) Example: i_am_salt

The salt generated by the client. This salt is used in secret hash generated algorithm.


LEGACY - Read information about endpoint session:

GET /api/v1/endpoints/f1be127607dc11e69bae080027983191/sessions/f1be127607dc11e69bae080027983191?salt=i_am_salt&endpoint_secret_hash=7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6
Responses200
Headers
Content-Type: application/json
Body
{
    "endpoint_id": "377ac5fe07e011e69bae080027983191",
    "session_data": {
        "any": {
            "data": [
                "you",
                "want to store",
                "in the session"
            ]
        }
    },
    "sid": "daTpDaWAd5BP0QzBNcIulLuFYCJ32Aak"
}

[POST /api/v1/endpoints/{endpoint_id:[0-9a-fA-F]{32}}/sessions]

LEGACY - Read information about endpoint session:
GET/api/v1/endpoints/{endpoint_id}/sessions/{endpoint_session_id}?salt={salt}&endpoint_secret_hash={endpoint_secret_hash}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
endpoint_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint

endpoint_session_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint

salt
string (required) Example: i_am_salt

Client generated salt. This salt is used in secret hash generated algorithm.

endpoint_secret_hash
string (required) Example: 7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6

Endpoint secret hash


Destroy endpoint session:

DELETE /api/v1/endpoints/f1be127607dc11e69bae080027983191/sessions/?endpoint_secret_hash=7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6&salt=i_am_salt
Responses200
Headers
Endpoint-Session-Id: TpVghlkpH1GLXqWQxNzeXjyuoxhah6Rh
Content-Type: application/json
Body
null

Destroy endpoint session:
DELETE/api/v1/endpoints/{endpoint_id}/sessions/?endpoint_secret_hash={endpoint_secret_hash}&salt={salt}

Terminates an active endpoint session, rendering the associated Endpoint-Session-Id invalid. This action is used to explicitly end a session and prevent further use of its credentials.

URI Parameters
HideShow
endpoint_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the endpoint.

endpoint_secret_hash
string (required) Example: 7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6

The endpoint secret hash.

salt
string (required) Example: i_am_salt

The salt generated by the client. This salt is used in secret hash generated algorithm.


LEGACY - Destroys the endpoint session:

DELETE /api/v1/endpoints/f1be127607dc11e69bae080027983191/sessions/f1be127607dc11e69bae080027983191?salt=i_am_salt&endpoint_secret_hash=7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6
Responses200
Headers
Content-Type: application/json
Body
null

LEGACY - Destroys the endpoint session:
DELETE/api/v1/endpoints/{endpoint_id}/sessions/{endpoint_session_id}?salt={salt}&endpoint_secret_hash={endpoint_secret_hash}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
endpoint_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint

endpoint_session_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint

salt
string (required) Example: i_am_salt

Client generated salt. This salt is used in secret hash generated algorithm.

endpoint_secret_hash
string (required) Example: 7a68b11d3e409c09ba1545f5500273defb3c27127250029f00ac65097978fcf6

Endpoint secret hash


Events

Events manager rest apis. Requires login_session_id.

Note: Only users with FULL ADMINS or ENROLL ADMINS roles are authorized to perform these actions.

List of events:

GET /api/v1/events?limit=50&offset=0
Responses200
Headers
Login-Session-Id: wDwelf8dfOYKVQR1e5LdijA26r1cBmbH
Content-Type: application/json
Body
{
  "events": [
    {
      "category_id": null,
      "chains": [
        {
          "apply_for_ep_owner": false,
          "forced": false,
          "grace_period": null,
          "id": "4c9f4524608911e7ae720800276d2239",
          "image_name": "ANY.png",
          "is_enabled": true,
          "is_image_custom": false,
          "is_trusted": null,
          "methods": [
            "ANY"
          ],
          "name": "Test-chain",
          "required_chain_id": null,
          "short_name": ""
        }
      ],
      "endpoints": [],
      "forced": false,
      "geo_zones": [],
      "id": "4c9e8508608911e7ae720800276d2239",
      "is_enabled": true,
      "is_geo_fencing_enabled": false,
      "is_standard": false,
      "json_data": {},
      "name": "TEST",
      "type": "Generic"
    }
  ]
}

List of events:
GET/api/v1/events?limit={limit}&offset={offset}

Retrieve a list of events related to endpoints, users, or authentication activity. Supports filtering by offset and limit.

URI Parameters
HideShow
limit
int (optional) Example: 50

The page size. Default to 50. Max 50.

offset
int (optional) Example: 0

The offset for pagination. Default to 0.


LEGACY - List of events:

GET /api/v1/events?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&limit=50&offset=0
Responses200
Headers
Content-Type: application/json
Body
{
  "events": [
    {
      "category_id": null,
      "chains": [
        {
          "apply_for_ep_owner": false,
          "forced": false,
          "grace_period": null,
          "id": "4c9f4524608911e7ae720800276d2239",
          "image_name": "ANY.png",
          "is_enabled": true,
          "is_image_custom": false,
          "is_trusted": null,
          "methods": [
            "ANY"
          ],
          "name": "Test-chain",
          "required_chain_id": null,
          "short_name": ""
        }
      ],
      "endpoints": [],
      "forced": false,
      "geo_zones": [],
      "id": "4c9e8508608911e7ae720800276d2239",
      "is_enabled": true,
      "is_geo_fencing_enabled": false,
      "is_standard": false,
      "json_data": {},
      "name": "TEST",
      "type": "Generic"
    }
  ]
}

LEGACY - List of events:
GET/api/v1/events?login_session_id={login_session_id}&limit={limit}&offset={offset}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

offset
int (optional) Example: 0

offset for pagination, default 0

limit
int (optional) Example: 50

page size, default 50, max 50


Create event:

POST /api/v1/events
RequestsSuccessful create generic eventSuccessful create oauth2 event
Headers
Login-Session-Id: 6Rxll3dXqdxbKBnSw5b0bxI8E9zmRBtt
Content-Type: application/json
Body
{
  "name": "Hello, world!",
  "type": "Hello, world!",
  "is_enabled": true,
  "is_geo_fencing_enabled": true,
  "category_id": "Hello, world!",
  "geo_zones": [],
  "chains": [],
  "endpoints": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the event."
    },
    "type": {
      "type": "string",
      "description": "The type of event. one of [\"Generic\",\"OSLogon\",\"PasswordStore\",\"OAuth2\", \"SAML2\"]"
    },
    "is_enabled": {
      "type": "boolean",
      "description": "Whether to enable the event."
    },
    "is_geo_fencing_enabled": {
      "type": "boolean",
      "description": "Whether to enable the geofencing."
    },
    "category_id": {
      "type": "string",
      "description": "The ID of the category."
    },
    "geo_zones": {
      "description": "The list of the geo zones."
    },
    "chains": {
      "description": "The list of chains."
    },
    "endpoints": {
      "description": "The list of the endpoints."
    }
  }
}
Responses200
Headers
Login-Session-Id: 6Rxll3dXqdxbKBnSw5b0bxI8E9zmRBtt
Content-Type: application/json
Body
{
  "forced": false,
  "type": "Generic",
  "endpoints": [
    {
      "is_local": false,
      "device_id": "",
      "software_type": "",
      "name": "TEST_ENDPOINT",
      "desc": "",
      "typ": null,
      "owner": null,
      "is_trusted": false,
      "is_enabled": true,
      "id": "56ff565c608a11e7afe10800276d2239"
    }
  ],
  "is_standard": false,
  "is_enabled": false,
  "category_id": null,
  "is_geo_fencing_enabled": false,
  "name": "TEST_EVENT2",
  "chains": [
    {
      "apply_for_ep_owner": false,
      "image_name": "default",
      "required_chain_id": null,
      "is_enabled": true,
      "forced": false,
      "name": "chain",
      "grace_period": null,
      "short_name": "",
      "id": "56ff8384608a11e7afe10800276d2239",
      "is_image_custom": false,
      "methods": [
        "OTP:1",
        "PASSWORD:1"
      ],
      "is_trusted": null
    }
  ],
  "json_data": {},
  "geo_zones": [],
  "id": "59704798608a11e7afe10800276d2239"
}
Headers
Login-Session-Id: 6Rxll3dXqdxbKBnSw5b0bxI8E9zmRBtt
Content-Type: application/json
Login-Session-Id: 6Rxll3dXqdxbKBnSw5b0bxI8E9zmRBtt
Body
{
  "name":"OAUTH_EVENT",
  "type":"OAuth2",
  "chains":[...],
  "category_id":null,
  "endpoints":[...],
  "json_data":{
    "oauth2_appid":"id-5wHqLd41D3Z9WUXKcHKjEPk02GHhRJAb",
    "oauth2_appsecret":"secret-QnrJFOw32IFHDW1bYWR8TJCl1psDEOkr",
    "oauth2_redir_uris":"https://test1\nhttps://test2",
    "ignore_user_lockout":true,
    "is_recaptcha_enabled":false,
    "oauth2_public_client":false,
    "oauth2_supports_authorization_code":true,
    "oauth2_supports_client_credentials":true,
    "oauth2_supports_implicit":true,
    "oauth2_use_token_revocation":true,
    "oauth2_use_session_token_revocation":true,
    "oauth2_auth_code_ttl":180,
    "oauth2_access_token_ttl":180,
    "oauth2_refresh_token_ttl":180,
    "oauth2_public_refresh_token_ttl":180,
    "oauth2_session_token_revocation_ttl":180,
    "oauth2_token_sharing":false,
    "oidc_enabled":false,
    "oidc_all_claims_in_id_token":false
  }
}
Responses200
Headers
Login-Session-Id: 6Rxll3dXqdxbKBnSw5b0bxI8E9zmRBtt
Content-Type: application/json
Body
{
  "forced":false,
  "id":"f38595d2616511e7ae230800276d2239",
  "name":"OAUTH_EVENT",
  "category_id":null,
  "is_geo_fencing_enabled":false,
  "is_standard":false,
  "geo_zones": [...],
  "endpoints": [
    {
      "owner":null,
      "is_trusted":true,
      "typ":null,
      "device_id":"",
      "desc":"OSP Endpoint",
      "id":"43434343434343434343434343434343",
      "name":"OSP",
      "is_local":true,
      "is_enabled":true,
      "software_type":"BuiltinOSP"
    }
  ],
  "chains": [...],
  "is_enabled":false,
  "type":"OAuth2",
  "json_data":{
    "oauth2_redir_uris":"https://test1",
    "oauth2_appsecret":"secret-QnrJFOw32IFHDW1bYWR8TJCl1psDEOkr",
    "oauth2_appid":"id-5wHqLd41D3Z9WUXKcHKjEPk02GHhRJAb"
  }
}

Create event:
POST/api/v1/events

Create a new event associated with endpoints, chains, or authentication activity. Events of different types may require additional parameters specific to their context. OAuth2 token lifetimes (TTLs) are specified in seconds. OAuth2 redirect URIs are separated by newline characters \n.

Request Body Parameters

  • Please see the examples.

LEGACY - Create event:

POST /api/v1/events?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
RequestsSuccessful create generic eventSuccessful create oauth2 event
Headers
Content-Type: application/json
Body
{
  "name": "Hello, world!",
  "type": "Hello, world!",
  "is_enabled": true,
  "is_geo_fencing_enabled": true,
  "category_id": "Hello, world!",
  "geo_zones": [],
  "chains": [],
  "endpoints": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "event name"
    },
    "type": {
      "type": "string",
      "description": "type of event, one of [\"Generic\",\"OSLogon\",\"PasswordStore\",\"OAuth2\", \"SAML2\"]"
    },
    "is_enabled": {
      "type": "boolean",
      "description": "is event enabled"
    },
    "is_geo_fencing_enabled": {
      "type": "boolean",
      "description": "is geofencing enabled"
    },
    "category_id": {
      "type": "string",
      "description": "category id"
    },
    "geo_zones": {
      "description": "list of geo zones"
    },
    "chains": {
      "description": "list of chains"
    },
    "endpoints": {
      "description": "list of endpoints"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
     "forced":false,
     "type":"Generic",
     "endpoints":[
       {
         "is_local":false,
         "device_id":"",
         "software_type":"",
         "name":"TEST_ENDPOINT",
         "desc":"",
         "typ":null,
         "owner":null,
         "is_trusted":false,
         "is_enabled":true,
         "id":"56ff565c608a11e7afe10800276d2239"
       }
     ],
     "is_standard":false,
     "is_enabled":false,
     "category_id":null,
     "is_geo_fencing_enabled":false,
     "name":"TEST_EVENT2",
     "chains":[
       {
         "apply_for_ep_owner":false,
         "image_name":"default",
         "required_chain_id":null,
         "is_enabled":true,
         "forced":false,
         "name":"chain",
         "grace_period":null,
         "short_name":"",
         "id":"56ff8384608a11e7afe10800276d2239",
         "is_image_custom":false,
         "methods":[
            "OTP:1",
            "PASSWORD:1"
         ],
         "is_trusted":null
       }
     ],
     "json_data":{...},
     "geo_zones":[...],
     "id":"59704798608a11e7afe10800276d2239"
   }
Headers
Content-Type: application/json
Body
{
     "name":"OAUTH_EVENT",
     "type":"OAuth2",
     "chains":[...],
     "category_id":null,
     "endpoints":[...],
     "json_data":{
       "oauth2_appid":"id-5wHqLd41D3Z9WUXKcHKjEPk02GHhRJAb",
       "oauth2_appsecret":"secret-QnrJFOw32IFHDW1bYWR8TJCl1psDEOkr",
       "oauth2_redir_uris":"https://test1\\nhttps://test2",
       "ignore_user_lockout":true,
       "is_recaptcha_enabled":false,
       "oauth2_public_client":false,
       "oauth2_supports_authorization_code":true,
       "oauth2_supports_client_credentials":true,
       "oauth2_supports_implicit":true,
       "oauth2_use_token_revocation":true,
       "oauth2_use_session_token_revocation":true,
       "oauth2_auth_code_ttl":180,
       "oauth2_access_token_ttl":180,
       "oauth2_refresh_token_ttl":180,
       "oauth2_public_refresh_token_ttl":180,
       "oauth2_session_token_revocation_ttl":180,
       "oauth2_token_sharing":false,
       "oidc_enabled":false,
       "oidc_all_claims_in_id_token":false
     }
   }
Responses200
Headers
Content-Type: application/json
Body
{
     "forced":false,
     "id":"f38595d2616511e7ae230800276d2239",
     "name":"OAUTH_EVENT",
     "category_id":null,
     "is_geo_fencing_enabled":false,
     "is_standard":false,
     "geo_zones": [...],
     "endpoints": [
       {
         "owner":null,
         "is_trusted":true,
         "typ":null,
         "device_id":"",
         "desc":"OSP Endpoint",
         "id":"43434343434343434343434343434343",
         "name":"OSP",
         "is_local":true,
         "is_enabled":true,
         "software_type":"BuiltinOSP"
       }
     ],
     "chains": [...],
     "is_enabled":false,
     "type":"OAuth2",
     "json_data":{
       "oauth2_redir_uris":"https://test1",
       "oauth2_appsecret":"secret-QnrJFOw32IFHDW1bYWR8TJCl1psDEOkr",
       "oauth2_appid":"id-5wHqLd41D3Z9WUXKcHKjEPk02GHhRJAb"
     }
   }

LEGACY - Create event:
POST/api/v1/events?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Events of different types may have additional parameters required or available. OAuth2 ttls are specified in seconds. OAuth2 redirect URIs are \n delineated.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Get event by event id:

GET /api/v1/events/59704798608a11e7afe10800276d2239
Responses200
Headers
Login-Session-Id: g2E4Mqcv7CrpS6N2jIu9gbQ8Fd2PZHrB
Content-Type: application/json
Body
{
  "type": "Generic",
  "endpoints": [],
  "chains": [
    {
      "short_name": "",
      "is_enabled": true,
      "methods": [
        "ANY"
      ],
      "is_trusted": null,
      "is_image_custom": false,
      "grace_period": null,
      "name": "Test-chain",
      "id": "4c9f4524608911e7ae720800276d2239",
      "apply_for_ep_owner": false,
      "image_name": "ANY.png",
      "required_chain_id": null,
      "forced": false
    }
  ],
  "is_enabled": true,
  "json_data": {},
  "is_standard": false,
  "is_geo_fencing_enabled": false,
  "category_id": null,
  "geo_zones": [],
  "id": "4c9e8508608911e7ae720800276d2239",
  "name": "TEST",
  "forced": false
}

Get event by event id:
GET/api/v1/events/{event_id}

Retrieves detailed information about a specific event using its event_id.

URI Parameters
HideShow
event_id
string (required) Example: 59704798608a11e7afe10800276d2239

The ID of the event.


LEGACY - Get event by event id:

GET /api/v1/events/59704798608a11e7afe10800276d2239?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "type":"Generic",
  "endpoints":[...],
  "chains":[
    {
      "short_name":"",
      "is_enabled":true,
      "methods":[
         "ANY"
      ],
      "is_trusted":null,
      "is_image_custom":false,
      "grace_period":null,
      "name":"Test-chain",
      "id":"4c9f4524608911e7ae720800276d2239",
      "apply_for_ep_owner":false,
      "image_name":"ANY.png",
      "required_chain_id":null,
      "forced":false
    }
  ],
  "is_enabled":true,
  "json_data":{...},
  "is_standard":false,
  "is_geo_fencing_enabled":false,
  "category_id":null,
  "geo_zones":[],
  "id":"4c9e8508608911e7ae720800276d2239",
  "name":"TEST",
  "forced":false
}

LEGACY - Get event by event id:
GET/api/v1/events/{event_id}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
event_id
string (required) Example: 59704798608a11e7afe10800276d2239

ID of the event

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Update event:

PUT /api/v1/events/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
RequestsSuccessful update session
Headers
Login-Session-Id: TLjPukeooidWR1OFz2MyLWPW2avCSRKn
Content-Type: application/json
Body
{
  "chains":[...],
  "category_id":null,
  "name":"TEST2",
  "type":"Generic",
  "endpoints":[
    {
      "id":"a135281e608a11e7a1810800276d2239"
    }
  ]
}
Responses200
Headers
Login-Session-Id: TLjPukeooidWR1OFz2MyLWPW2avCSRKn
Content-Type: application/json
Body
{
  "is_geo_fencing_enabled": false,
  "forced": false,
  "type": "Generic",
  "json_data": {},
  "id": "a131020c608a11e7a1810800276d2239",
  "geo_zones": [],
  "chains": [],
  "category_id": null,
  "is_enabled": false,
  "name": "TEST2",
  "is_standard": false,
  "endpoints": [
    {
      "is_local": false,
      "software_type": "",
      "is_trusted": false,
      "desc": "",
      "typ": null,
      "is_enabled": true,
      "device_id": "",
      "name": "TEST_ENDPOINT",
      "owner": null,
      "id": "a135281e608a11e7a1810800276d2239"
    }
  ]
}

Update event:
PUT/api/v1/events/{event_id}

Update the details of an existing event identified by its event_id

Request Body Parameters

  • name: string (optional)

    • The event name.
  • type: string (optional)

    • The type of the event. One of [“Generic”,“OSLogon”,“PasswordStore”,“OAuth2”, “SAML2”]
  • is_enabled: boolean (optional)

    • Whether to enable the event.
  • is_geo_fencing_enabled: boolean (optional)

    • Whether to enable the geo fencing.
  • category_id: string (optional)

    • The ID of the category.
  • geo_zones: list (optional)

    • The list of the geo zones.
  • chains: list (optional)

    • The list of the chains.
  • endpoints: list (optional)

    • The list of the endpoints.
URI Parameters
HideShow
event_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

The ID of the event.


LEGACY - Update event:

PUT /api/v1/events/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
RequestsSuccessful update session
Headers
Content-Type: application/json
Body
{
  "name": "Hello, world!",
  "type": "Hello, world!",
  "is_enabled": true,
  "is_geo_fencing_enabled": true,
  "category_id": "Hello, world!",
  "geo_zones": [],
  "chains": [],
  "endpoints": []
}
Schema
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "event name"
    },
    "type": {
      "type": "string",
      "description": "type of event, one of [\"Generic\",\"OSLogon\",\"PasswordStore\",\"OAuth2\", \"SAML2\"]"
    },
    "is_enabled": {
      "type": "boolean",
      "description": "is event enabled"
    },
    "is_geo_fencing_enabled": {
      "type": "boolean",
      "description": "is geo fencing enabled"
    },
    "category_id": {
      "type": "string",
      "description": "category id"
    },
    "geo_zones": {
      "description": "list of geo zones"
    },
    "chains": {
      "description": "list of chains"
    },
    "endpoints": {
      "description": "list of endpoints"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "is_geo_fencing_enabled":false,
  "forced":false,
  "type":"Generic",
  "json_data":{...},
  "id":"a131020c608a11e7a1810800276d2239",
  "geo_zones":[...],
  "chains":[...],
  "category_id":null,
  "is_enabled":false,
  "name":"TEST2",
  "is_standard":false,
  "endpoints":[
    {
      "is_local":false,
      "software_type":"",
      "is_trusted":false,
      "desc":"",
      "typ":null,
      "is_enabled":true,
      "device_id":"",
      "name":"TEST_ENDPOINT",
      "owner":null,
      "id":"a135281e608a11e7a1810800276d2239"
    }
  ]
}

LEGACY - Update event:
PUT/api/v1/events/{event_id}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
event_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the event

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Delete event:

DELETE /api/v1/events/59704798608a11e7afe10800276d2239
Responses200
Headers
Login-Session-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
null

Delete event:
DELETE/api/v1/events/{event_id}

Delete an existing event identified by its event_id.

URI Parameters
HideShow
event_id
string (required) Example: 59704798608a11e7afe10800276d2239

The ID of the event.


LEGACY - Delete event:

DELETE /api/v1/events/59704798608a11e7afe10800276d2239?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

LEGACY - Delete event:
DELETE/api/v1/events/{event_id}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
event_id
string (required) Example: 59704798608a11e7afe10800276d2239

ID of the event

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Logon

Implements logon process. See Sample Logon Flow

Login procedure:

  1. Requires endpoint_session_id be passed on all requests (header or body).

  2. Start login process Start logon process

  3. Series of do logon calls. Client software sends ‘response’ to server; server replies with challenge

  4. Received "status": "OK" or "status": "FAILED" is the end of the process. “OK”, the logon is complete, and the logon session has been created. “FAILED”, the logon failed, the process is destroyed (note: HTTP status is 200).

  5. HTTP errors 400 or 500 do not destroy the process, it is possible to continue.

  6. Special HTTP error 444 is returned in case when logon process not found or expired. Not possible to continue. Start new logon.

  7. Special HTTP error 434 is returned in case when login session not found or expired. (433 is same for endpoint session)

Simple logon

First, create login process::

POST /api/v1/logon
    {
        "method_id": "PASSWORD:1",
        "user_name": "REPONAME\\USERNAME",
        "is_1N": true/false,   // optional, default false
        "unit_id": "xxx",   // for 1N login
        "event": "xxx"   // can be empty string for testing (allow any method)
    }

For 1N login, set is_1N to True and pass unit_id. For normal login, pass user_name.
Return::

{
    "chains": [],
    "completed_methods": [],
    "current_method": "PASSWORD:1",
    "logon_process_id": "Ww323YxvYv6IVj3J3EaLNlkVM2aoHfLa",
    "msg": "Process has been started",
    "status": "MORE_DATA"
}

Remember logon_process_id and perform series of do_logon calls while getting status ‘MORE_DATA’:

POST /api/v1/logon/do_logon
    {
      "logon_process_id": "Ww323YxvYv6IVj3J3EaLNlkVM2aoHfLa",
      "response": "method-specific dictionary, maybe omitted if method does not requires data on 1st do_login"
    }

Return
    {
        # method-specific data such as
        "challenge": {"rounds": 100, "salt": "cdf123Dx"},
        "status": "MORE_DATA"
    }
POST /api/v1/logon/do_logon
    {
      "logon_process_id": "Ww323YxvYv6IVj3J3EaLNlkVM2aoHfLa",
      "response": {"answer" : "my-password" # method-specific dict in "response" field}
                                            # this is "response" to "challenge" which server sent in previous do_logon
    }

At some iteration, server will retrun either "status": "OK" or FAILED. OK provides additional information about authenticated user::

{ 
    "chains": [],
    "completed_methods": ["PASSWORD:1"],
    "login_session_id": "YTxTmMW6RPv051RmeCiyBn7txzE0JoM2",
    "msg": "Welcome",
    "repo_id": "703f7c641beb11e48c69000c294fde0e",
    "user_id": "7044631e1beb11e48c69000c294fde0e",
    "user_name": "LOCAL\\\\user1",
    "event_name": "Windows logon",
    "event_data_id": "OSLogon",
    "status": "OK",
    "completed_chain": {
        "name": "Admin Password",
        "position": 0,
        "id_hex": "3c8c306e061e11e6b224080027983191",
        "apply_for_ep_owner": false,
        "required_chain_id_hex": null,
        "methods": ["PASSWORD:1"],
        "short_name": "",
        "image_name": "PASSWORD_1.png",
        "is_trusted": null,
        "is_enabled": true,
        "grace_period": null,
        "mfa_tags" : []
    }
}

Example of FAILED method

{ 
    "msg": "Incorrect password",
    "status": "FAILED",
    "reason": "ACCESS_DENIED",
}

Do not use msg for result status checking, it is will not be identical for all users. Use reason and the HTTP Status code for result status checking.

Remember login_session_id, it is required for other REST API calls. 1-N logon does not know user name before login starts, and now it knows.

Chained logon

Read user chains Depending on event and endpoint_session_id (trusted/untrusted endpoint) the response is a list of chains.

A Chain defines a list of methods user must login to, one-by-one.

  • After login, data of the event may be accessed using User data service.

‘NEXT’ status says that current method is complete (OK) and user must start next method. Which method to start is up to user (or client UI) - it depends on which chain the user wants to complete.

Login is completed as soon as any chain is completed.

Chained logon example::

optional - read chains

GET  /api/v1/logon/chains?event=Windows%20logon&is_trusted=true

   decide what chain to complete and...
  1. Start 1st method.

    POST /api/v1/logon
        { "method_id": "TOTP:1", "user_name": "MARIA\\director", "event": "Windows logon" }
    
    returns
        { "chains":
            [
              // same list of chains as you GET from /api/v1/logon/chains?event=Windows%20logon
            ],
          "completed_methods": [],
          "current_method": "TOTP:1",
          "logon_process_id": "abc345",  // Keep this for future requests.
          "msg": "Process has been started",
          "status": "MORE_DATA"
        }
    
  2. Call do_logon.

    POST /api/v1/logon/do_logon
        {
          "logon_process_id": "abc345",
          "response": "some_secret"
        }
    
    returns
        { "status": "MORE_DATA", "current_method": "TOTP:1", "completed_methods": [] }
  3. Continue 1st method (it is 2-phase method).

    POST /api/v1/logon/do_logon
        {
          "logon_process_id": "abc345",
          "response": "second_secret"
        }
    
    returns
        { status: "NEXT", "completed_methods": ["TOTP:1"] }

    "status": "NEXT" means ‘SUPER_OTP’ is OK, completed_methods has method name.
    You start next method by POSTing to same logon_process_id:

  4. Start next method.

    POST /api/v1/logon/next
        {
          "logon_process_id": "abc345",
          "method_id": "LDAP_PASSWORD:1"
        } 
    
    returns
        { status: "MORE_DATA", "current_method": "LDAP_PASSWORD:1", "completed_methods": ["TOTP:1"]}
  5. Call do_logon.

    POST /api/v1/logon/do_logon
        {
          "logon_process_id": "abc345",
          "response": "Password1"
        }
    
    returns
        {
            "status": "OK",
            "completed_methods": ["TOTP:1", "LDAP_PASSWORD:1"],
            "login_session_id": "YTxTmMW6RPv051RmeCiyBn7txzE0JoM2",
            "msg": "Welcome",
            "repo_id": "703f7c641beb11e48c69000c294fde0e",
            "user_id": "7044631e1beb11e48c69000c294fde0e",
            "user_name": "MARIA_GROUP\\user1",
            "event_name": "Windows logon",
            "event_data_id": "OSLogon",
            "completed_chain": {
                "name": "Admin Password",
                "position": 0,
                "id_hex": "3c8c306e061e11e6b224080027983191",
                "apply_for_ep_owner": false,
                "required_chain_id_hex": null,
                "methods": [
                "PASSWORD:1"
                ],
                "short_name": "",
                "image_name": "PASSWORD_1.png",
                "is_trusted": null,
                "is_enabled": true,
                "grace_period": null,
                "mfa_tags" : []
                }
        }

The chain is complete! remember the login_session_id and user info.

Chained logon - wrong password in the middle

Consider a chain that has 3 methods, the user completed 2 of them but provided wrong credentials for 3rd method. In that case:

  1. Result is NEXT, if FAILED had been returned that would have been the endo of the process.

  2. The completed_methods still contains 2 methods.

  3. Re-start method by POSTing as usual to /api/v1/logon/next

Multi method logon

For methods that support multi method logon - logon works as usual logon except user can use any of templates(otp tokens, passwords, cards)

For methods that don’t support multi method logon we should provide category_id.

Server returns categories list(categories) during start/next methods and id of one of them should be provided as body param during do_logon method.

  1. Start 1st method.

    POST /api/v1/logon
        { "method_id": "TOTP:1", "user_name": "MARIA\\director", "event": "Windows logon" }
        
    returns
        { "chains": [...],
          "completed_methods": [],
          "current_method": "TOTP:1",
          "logon_process_id": "abc345",
          "msg": "Process has been started",
          "status": "MORE_DATA",
          "categories": [
              {"id": "37f81490f3e711e9b5590242ac110002", "name": "CATEGORY1", "desc": ""}, 
              {"id": "", "name": "Default category", "desc": "Default category"}, 
              {"id": "37fb6ee2f3e711e9b5590242ac110002", "name": "CATEGORY2", "desc": ""}
            ]
        }

    Remember login_process_id and category_id (“37f81490f3e711e9b5590242ac110002” for example) …

  2. Call do_logon, it returns current_category_id as current category used for logon.

    POST /api/v1/logon/do_logon
      { "response": "some_secret", "category_id":"37f81490f3e711e9b5590242ac110002" }
    
    returns
      {
        "status": "OK",
        "completed_methods": ["TOTP:1", "LDAP_PASSWORD:1"],
        "login_session_id": "YTxTmMW6RPv051RmeCiyBn7txzE0JoM2",
        "msg": "Welcome",
        "repo_id": "703f7c641beb11e48c69000c294fde0e",
        "user_id": "7044631e1beb11e48c69000c294fde0e",
        "user_name": "MARIA_GROUP\\user1",
        "event_name": "Windows logon",
        "event_data_id": "OSLogon",
        "current_category_id": "37f81490f3e711e9b5590242ac110002".
        "completed_chain": {
           "name": "Admin Password",
           "position": 0,
           "id_hex": "3c8c306e061e11e6b224080027983191",
           "apply_for_ep_owner": false,
           "required_chain_id_hex": null,
           "methods": [
           "PASSWORD:1"
           ],
           "short_name": "",
           "image_name": "PASSWORD_1.png",
           "is_trusted": null,
           "is_enabled": true,
           "grace_period": null,
           "mfa_tags" : []
           }
      }

The chain is complete! Grab login_session_id and user info.

Logon process lifetime (TTL): expire on inactivity 5 min, max lifetime 15 min. It may change without notice.

Create logon process:

POST /api/v1/logon
RequestsSimple logon1:N authentication
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "event": "NAM",
  "method_id": "PASSWORD:1",
  "user_name": "LOCAL\USER1"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "3c927b4a061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1"
      ],
      "name": "Authenticators Management - Password",
      "position": 1,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "PASSWORD:1",
  "event_data_id": "OSLogon",
  "event_name": "NAM",
  "logon_process_id": "TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS",
  "msg": "Process has been started",
  "msgid": "AUCORE-1008",
  "plugins": [],
  "reason": "PROCESS_STARTED",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "event": "NAM",
  "is_1N": true,
  "method_id": "PASSWORD:1",
  "unit_id": "test"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "PASSWORD:1",
  "logon_process_id": "Ww323YxvYv6IVj3J3EaLNlkVM2aoHfLa",
  "msg": "Process has been started",
  "status": "MORE_DATA"
}

Create logon process:
POST/api/v1/logon

Start a logon process using an existing endpoint session. For 1N (one-to-many) login, set is_1N to true and provide the unit_id. For standard login, provide the user_name. Then, proceed with the do logon to complete the authentication process.

The following event names are commonly found in most AA systems and represent examples of values that may be passed as the event parameter:

  • Authenticators Management

  • EndpointsManagement

  • NAM

  • NCA

  • AdminUI

  • Radius Server

  • Helpdesk

  • Mac OS logon

  • Windows logon

  • ADFS

  • Linux logon

  • Report logon

  • Helpdesk user

  • Search Card

  • Tokens Management

  • Authentication Agent

  • OOB UI logon

  • Mainframe Logon

  • Desktop OTP Tool

  • Smartphone Enrollment

  • SCIM API

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • event: string (required*)

    • The name of the event.
  • method_id: string (required*)

    • The ID of the method to use for authentication.
  • user_name: string (required*)

    • The name of the user.
  • is_1N: bool (optional)

    • Whether to enable one-to-many login
  • unit_id: string (optional)

    • The ID of the unit to logon to. If is_1N is true, then this parameter is required.

Common Do logon

POST /api/v1/logon/do_logon
RequestsSimple virtual password doLogonSimple incorrect virtual password doLogon
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password"
  }
}
Responses200
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_chain": {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": "3c8c306e061e11e6b224080027983191",
    "image_name": "PASSWORD_1.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
      "PASSWORD:1"
    ],
    "mfa_tags": [],
    "name": "TEST CHAIN",
    "position": 0,
    "required_chain_id_hex": null,
    "short_name": ""
  },
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-incorrect-password"
  }
}
Responses200
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "PASSWORD:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "TaEXATdeJmyzhYlEKDwBKCUqzMW0YdtT",
  "msg": "Incorrect password",
  "msgid": "AUCORE-2007",
  "plugins": [],
  "reason": "PASSWORD_WRONG",
  "status": "FAILED"
}

Common Do logon
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the current login context. Return status with followings:

  • OK - Successfully logged in to the event.

  • FAILED - Logon attempt was unsuccessful.

  • NEXT - The current method has completed. The service is now waiting for the next method. To proceed, use the “next method” below, then call do logon as usual.

  • MORE_DATA - The service is waiting for data.

At some iteration, you get either status: "OK" or status: "FAILED".

OK gives you also information about logged user.

Note: Remember login_session_id, it is used for most REST API calls.

Details about data and steps for specific methods read here

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • The dictionary of the response.

LEGACY - Common Do logon

POST /api/v1/logon/TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS/do_logon
RequestsSimple virtual password doLogonSimple incorrect virtual password doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_chain": {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": "3c8c306e061e11e6b224080027983191",
    "image_name": "PASSWORD_1.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
      "PASSWORD:1"
    ],
    "mfa_tags": [],
    "name": "TEST CHAIN",
    "position": 0,
    "required_chain_id_hex": null,
    "short_name": ""
  },
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-incorrect-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "PASSWORD:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "TaEXATdeJmyzhYlEKDwBKCUqzMW0YdtT",
  "msg": "Incorrect password",
  "msgid": "AUCORE-2007",
  "plugins": [],
  "reason": "PASSWORD_WRONG",
  "status": "FAILED"
}

LEGACY - Common Do logon
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Remember logon_process_id and perform series of do_logon calls while getting status ‘MORE_DATA’

doLogon response can contain status with OK, FAILED, MORE_DATA, NEXT

OK - you are successfully logged to event

FAILED - unsuccessful response for logon

NEXT - current method is done, service is waiting for next method. To start next method use next method below. Then call do_logon, as usual.

MORE_DATA - service is waiting for data

At some iteration, you get either "status": "OK" or FAILED.

OK gives you also information about logged user. Remember login_session_id, it is used for most REST API calls.

Details about data and steps for specific methods read here

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS

ID of the logon process


Continue logon for multiple step logon

POST /api/v1/logon/next
Requestsexample 1
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "method_id": "HOTP:1"
}
Responses200
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "e5c25e240a2411e68f20080027983191",
      "image_name": "default",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1",
        "HOTP:1"
      ],
      "name": "test",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "HOTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS",
  "msg": "Process has been started",
  "msgid": "AUCORE-1008",
  "plugins": [],
  "reason": "PROCESS_STARTED",
  "status": "MORE_DATA"
}

Continue logon for multiple step logon
POST/api/v1/logon/next

Continue the user authentication process in systems that use multi-step or staged logon procedures. It is typically invoked after the initial authentication step has completed and is used to proceed to the next stage (e.g., multi-factor authentication, biometric verification, or secondary credentials).

For example: after successful PASSWORD:1 logon

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • method_id: string (required*)

    • The ID of the method to use for authentication.

LEGACY - Continue logon for multiple step logon

POST /api/v1/logon/TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS/next
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "method_id": "HOTP:1"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "e5c25e240a2411e68f20080027983191",
      "image_name": "default",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1",
        "HOTP:1"
      ],
      "name": "test",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "HOTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS",
  "msg": "Process has been started",
  "msgid": "AUCORE-1008",
  "plugins": [],
  "reason": "PROCESS_STARTED",
  "status": "MORE_DATA"
}

LEGACY - Continue logon for multiple step logon
POST/api/v1/logon/{logon_process_id}/next

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

For example: after successful PASSWORD:1 logon

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS

ID of the logon process


Destroy logon process:

DELETE /api/v1/logon
Responses200
Headers
Login-Process-Id: avZ1wXwp51OTJ88junqtVE8mBmXjp1M4
Endpoint-Session-Id: f0BrgaDvGVmtGcOb2RqvsHO2BrmKpjbJ
Content-Type: application/json
Body
null

Destroy logon process:
DELETE/api/v1/logon

Terminate an ongoing logon session.


LEGACY - Destroy logon process:

DELETE /api/v1/logon/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?endpoint_session_id=f1be127607dc11e69bae080027983191

LEGACY - Destroy logon process:
DELETE/api/v1/logon/{logon_process_id}?endpoint_session_id={endpoint_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
logon_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the logon process

endpoint_session_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint


Read available chains:

GET /api/v1/logon/chains?user_name=LOCAL\USER1&is_trusted=1&event=NAM&include_all_chains=True
Responses200
Headers
Endpoint-Session-Id: gYEzcWXKMjl0EpP9GDTJ9iS8zDSIbWl4
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "3c8c306e061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1"
      ],
      "mfa_tags": [],
      "name": "Admin Password",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    },
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "3c927b4a061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1"
      ],
      "mfa_tags": [],
      "name": "Authenticators Management - Password",
      "position": 2,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "user_is_locked": false
}

Read available chains:
GET/api/v1/logon/chains?user_name={user_name}&is_trusted={is_trusted}&event={event}&include_all_chains={include_all_chains}

Return list of available chains for given parameters.

Note: If you specify user_name, the user_is_locked returned. Use it to immediately show error and not ask user credential/chain selection.

URI Parameters
HideShow
event
string (required) Example: NAM

The name of the event.

include_all_chains
boolean (optional) Example: True

Whether to return all chains or not (1, 0, True, False). Default to False. If you set include_all_chains to True, service will return chains, even dependant or short.

is_trusted
boolean (optional) Example: 1

Whether to return trusted chains or not (1, 0, True, False). Default to False. If you omit is_trusted in your query, service does not filter and returns both trusted and untrusted chains.

user_name
string (optional) Example: LOCAL\USER1

The name of the user. If you omit user_name, service does not filter and returns all chains configured given event and is_trusted. If you provide user_name of user that isn’t yet registered in aucore (such as new LDAP user), service returns only chains made of methods not requiring enroll.


LEGACY - Read available chains:

GET /api/v1/logon/chains?user_name=LOCAL\USER1&is_trusted=1&event=NAM&endpoint_session_id=f1be127607dc11e69bae080027983191&include_all_chains=True
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "3c8c306e061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1"
      ],
      "mfa_tags": [],
      "name": "Admin Password",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    },
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "3c927b4a061e11e6b224080027983191",
      "image_name": "PASSWORD_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "PASSWORD:1"
      ],
      "mfa_tags": [],
      "name": "Authenticators Management - Password",
      "position": 2,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "user_is_locked": false
}

LEGACY - Read available chains:
GET/api/v1/logon/chains?user_name={user_name}&is_trusted={is_trusted}&event={event}&endpoint_session_id={endpoint_session_id}&include_all_chains={include_all_chains}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

is_trusted can be 1, 0, True, False. Default: False

If you omit is_trusted in your query, service does not filter and returns both trusted and untrusted chains.

If you omit user_name, service does not filter and returns all chains configured given event/is_trusted.

If you provide user_name of user that isn’t yet registered in aucore (such as new LDAP user), service returns only chains made of methods not requiring enroll.

include_all_chains can be 1, 0, True, False. Default: False

If you set include_all_chains to True, service will return chains, even dependant or short.

user_is_locked returned if you specify user_name, use it to immediately show error and not ask user credential/chain selection.

URI Parameters
HideShow
is_trusted
boolean (required) Example: 1

Show only trusted chains or not (1, 0, “True”, “False”)

user_name
string (required) Example: LOCAL\USER1

username

event
string (required) Example: NAM

event’s name

endpoint_session_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint

include_all_chains
string (required) Example: True

Destroy logon process:

DELETE /api/v1/logon
Responses200
Headers
Login-Process-Id: avZ1wXwp51OTJ88junqtVE8mBmXjp1M4
Endpoint-Session-Id: f0BrgaDvGVmtGcOb2RqvsHO2BrmKpjbJ
Content-Type: application/json
Body
null

Destroy logon process:
DELETE/api/v1/logon

Terminate an ongoing logon session.


LEGACY - Destroy logon process:

DELETE /api/v1/logon/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?endpoint_session_id=f1be127607dc11e69bae080027983191

LEGACY - Destroy logon process:
DELETE/api/v1/logon/{logon_process_id}?endpoint_session_id={endpoint_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
logon_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the logon process

endpoint_session_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint


Logon by Basic Auth to /account

Provides basic authentication.

Authenticate by basic authentication header:

GET /account/basic
Requestsauthorization by PASSWORD:1
Headers
Content-Type: application/json
Authorization: Basic <base64 of credentials>
Responses302
Headers
Content-Type: application/json
Location: /account

Authenticate by basic authentication header:
GET/account/basic

Authenticate a user using the HTTP Basic Authentication scheme. Credentials are passed in the Authorization header as a base64-encoded string containing the username, method, and password.

The format as follows:

  • username:method_name:password

Examples:

  • Authorization: {base64 of REPO\user1:LDAP_PASSWORD:1:user1_password}

  • Authorization: {base64 of TENANT\REPO\user1:HOTP:1:user1_password}`

  • Authorization: {base64 of user1:HOTP:1:user1_password}


Login Sessions

Manage login sessions. Requires endpoint_session_id

Session lifetime (TTL): expire on inactivity 20 min, max lifetime 1440 min. It may change without notice. Please handle 434/433 HTTP codes to re-open session on-the fly and re-send request.

Read information about login session:

GET /api/v1/logon/sessions?nested_groups=True
Requestsexample 1
Headers
Login-Session-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX (required, string) - The ID of the login session.
Endpoint-Session-Id: f1be127607dc11e69bae080027983191 (required, string) - The ID of the endpoint session.
Responses200
Headers
Content-Type: application/json
Body
{
    "user_id": "4f34e2882991440ddd0fd515e0d0236c",
    "user_name": "LOCAL\ADMIN",
    "sid": "GKWrJUBaeBA20KHzHAcmzihNrOgdXooh",
    "repo_id": "3c9c1fd8061e11e6b224080027983191",
    "repo_obj_id": "3caa08a0061e11e6b224080027983191",
    "event_name": "",
    "data_id": "",
    "chain_id" : "3cab08a0061e11e6b224080027983191",
    "risk_level": "MEDIUM",
    "risk_score": 100
}

Read information about login session:
GET/api/v1/logon/sessions?nested_groups={nested_groups}

Retrieve details about an active or previously established login session.

URI Parameters
HideShow
nested_groups
boolean (optional) Example: True

Whether to extend user groups list with any parent groups.


LEGACY - read information about login session:

GET /api/v1/logon/sessions/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX?endpoint_session_id=f1be127607dc11e69bae080027983191&nested_groups=False
Responses200
Headers
Content-Type: application/json
Body
{
    "user_id": "4f34e2882991440ddd0fd515e0d0236c",
    "user_name": "LOCAL\ADMIN",
    "sid": "GKWrJUBaeBA20KHzHAcmzihNrOgdXooh",
    "repo_id": "3c9c1fd8061e11e6b224080027983191",
    "repo_obj_id": "3caa08a0061e11e6b224080027983191",
    "event_name": "",
    "data_id": "",
    "chain_id" : "3cab08a0061e11e6b224080027983191",
    "risk_level": "MEDIUM",
    "risk_score": 100
}

LEGACY - read information about login session:
GET/api/v1/logon/sessions/{login_session_id}?endpoint_session_id={endpoint_session_id}&nested_groups={nested_groups}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

endpoint_session_id
string (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint session

nested_groups
boolean (optional) Example: False

Extend user groups list with any parent groups


Delete login session:

DELETE /api/v1/logon/sessions
Requestsexample 1
Headers
Login-Session-Id: vtvD1lhQaBEx89JifGKIvhd55wQIOWmw
Endpoint-Session-Id: f1be127607dc11e69bae080027983191
Responses200
Headers
Content-Type: application/json
Body
null

Delete login session:
DELETE/api/v1/logon/sessions

Terminate an active login session. Once deleted, the session can no longer be used to access protected resources.


LEGACY - Delete login session:

DELETE /api/v1/logon/sessions/vtvD1lhQaBEx89JifGKIvhd55wQIOWmw?endpoint_session_id=f1be127607dc11e69bae080027983191

LEGACY - Delete login session:
DELETE/api/v1/logon/sessions/{login_session_id}?endpoint_session_id={endpoint_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: vtvD1lhQaBEx89JifGKIvhd55wQIOWmw

ID of the login session

endpoint_session_id
string (required) Example: f1be127607dc11e69bae080027983191

ID of the endpoint session


Chains

Chain read rest api. Requires login_session_id.

Get chains with pagination:

GET /api/v1/chains?limit=50&offset=0
Responses200
Headers
Login-Session-Id: vrEWhKP9zKynayrOH2k4lFbIzPbZR4rq
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "forced": false,
      "grace_period": null,
      "groups": [],
      "id": "9d950d4ed21f11ec8bf40242ac110002",
      "image_name": "TOTP_1.png",
      "is_enabled": true,
      "is_image_custom": false,
      "is_trusted": true,
      "json_data": null,
      "methods": [
        "TOTP:1"
      ],
      "name": "TEST logon (trusted by TOTP)",
      "repos": [],
      "required_chain_id": null,
      "risk_level": "null",
      "roles": [
        {
          "desc": "All Users",
          "id": "9d82fdc0d21f11ec8bf40242ac110002",
          "name": "ALL USERS"
        }
      ],
      "short_name": ""
    }
  ],
  "count": 6
}

Get chains with pagination:
GET/api/v1/chains?limit={limit}&offset={offset}

Retrieve a list of chain records from the system with support for pagination. It allows clients to efficiently browse through large datasets by controlling the number of items returned per request and navigating through position of the results.

URI Parameters
HideShow
limit
int (optional) Example: 50

The page size. Default to 50. Max 50.

offset
int (optional) Example: 0

The offset for pagination. Default to 0.


LEGACY - Get chains with pagination:

GET /api/v1/chains?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&limit=50&offset=0
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "forced": false,
      "grace_period": null,
      "groups": [],
      "id": "9d950d4ed21f11ec8bf40242ac110002",
      "image_name": "TOTP_1.png",
      "is_enabled": true,
      "is_image_custom": false,
      "is_trusted": true,
      "json_data": null,
      "methods": [
        "TOTP:1"
      ],
      "name": "TEST logon (trusted by TOTP)",
      "repos": [],
      "required_chain_id": null,
      "risk_level": "null",
      "roles": [
        {
          "desc": "All Users",
          "id": "9d82fdc0d21f11ec8bf40242ac110002",
          "name": "ALL USERS"
        }
      ],
      "short_name": ""
    }
  ],
  "count": 6
}

LEGACY - Get chains with pagination:
GET/api/v1/chains?login_session_id={login_session_id}&limit={limit}&offset={offset}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

offset
int (optional) Example: 0

offset for pagination, default 0

limit
int (optional) Example: 50

page size, default 50, max 50


Tenants

Tenants rest api. Requires login_session_id or bearer token. Logged user must be member of FULL ADMINS.

Get tenants with pagination:

GET /api/v1/tenants?limit=50&offset=0
Responses200
Headers
Login-Session-Id: kb8ldltuTttewGT2vPHnLRvgjaDpQvcM
Content-Type: application/json
Body
{
  "count": 2,
  "tenants": [
    {
      "desc": "test default tenant",
      "disabled": false,
      "expired_warning": false,
      "id": "def0def0def0def0def0def0def0def0",
      "license_min": "9999-12-31T00:00:00.0",
      "name": "TOP",
      "repo_count": 0
    },
    {
      "desc": "",
      "disabled": false,
      "expired_warning": false,
      "id": "f2c18c44d21e11ecb4d80242ac110002",
      "license_min": "9999-12-31T00:00:00.0",
      "name": "SUN",
      "repo_count": 0
    }
  ]
}

Get tenants with pagination:
GET/api/v1/tenants?limit={limit}&offset={offset}

Retrieve a list of tenant records from the system with support for pagination. It allows clients to efficiently browse through large datasets by controlling the number of items returned per request and navigating through position of the results.

URI Parameters
HideShow
limit
int (optional) Example: 50

The page size. Default to 50. Max 50.

offset
int (optional) Example: 0

The offset for pagination. Default to 0.


LEGACY - Get tenants with pagination:

GET /api/v1/tenants?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&limit=50&offset=0
Responses200
Headers
Content-Type: application/json
Body
{
  "count": 2,
  "tenants": [
    {
      "desc": "test default tenant",
      "disabled": false,
      "expired_warning": false,
      "id": "def0def0def0def0def0def0def0def0",
      "license_min": "9999-12-31T00:00:00.0",
      "name": "TOP",
      "repo_count": 0
    },
    {
      "desc": "",
      "disabled": false,
      "expired_warning": false,
      "id": "f2c18c44d21e11ecb4d80242ac110002",
      "license_min": "9999-12-31T00:00:00.0",
      "name": "SUN",
      "repo_count": 0
    }
  ]
}

LEGACY - Get tenants with pagination:
GET/api/v1/tenants?login_session_id={login_session_id}&limit={limit}&offset={offset}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

offset
int (optional) Example: 0

offset for pagination, default 0

limit
int (optional) Example: 50

page size, default 50, max 50


Methods

This section covers specific API calls related to the available methods in the AA.

Read all supported methods:

POST /api/v1/methods/get
RequestsGet User Details
Headers
Login-Session-Id: B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o
Content-Type: application/json
Responses200
Headers
Login-Session-Id: B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o
Content-Type: application/json
Body
{
  "methods": [
    {
      "id": "FIDO2:1",
      "title": "FIDO2"
    },
    {
      "id": "BLUETOOTH_ESEC:1",
      "title": "Bluetooth"
    }
  ]
}

Read all supported methods:
POST/api/v1/methods/get

Retrieve a list of all authentication methods of the login session of the user. It provides id and title about each method.


LEGACY - Read all supported methods:

POST /api/v1/methods/get
RequestsGet User Details
Headers
Content-Type: application/json
Body
{
  "login_session_id": "B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "methods": [
    {
      "id": "FIDO2:1",
      "title": "FIDO2"
    },
    {
      "id": "BLUETOOTH_ESEC:1",
      "title": "Bluetooth"
    }
  ]
}

LEGACY - Read all supported methods:
POST/api/v1/methods/get

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Retrieve a list of all authentication methods of the login session of the user. It provides id and title about each method.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

FIDO2:1 Get challenge and verify signature during FIDO2 enroll:

POST /api/v1/logon_method/FIDO2:1/enroll
RequestsGet ChallengeVerify the signature
Headers
Enroll-Process-Id: ZTqHuKhgx6Fc4PV7fuKZSUvIGB7TH94B
Content-Type: application/json
Body
{
    "displayName": "LOCAL\ADMIN",
    "username": "LOCAL\ADMIN"
}
Responses200
Headers
Enroll-Process-Id: ZTqHuKhgx6Fc4PV7fuKZSUvIGB7TH94B
Content-Type: application/json
Body
{
    "challenge": "1c71a0d37c7332b3e2aee5dd8b79f77e067b3c22",
    "pubKeyCredParams": [
                            {"alg": -7, "type": "public-key"},
                            {"alg": -257, "type": "public-key"}
                        ],
    "rp": {"id": None, "name": "172.17.0.1"},
    "status": "ok",
    "user": {
                "displayName": "LOCAL\ADMIN",
                "id": "22196673abcc0bb4",
                "name": "LOCAL\ADMIN"
            }
}
Headers
Enroll-Process-Id: ZTqHuKhgx6Fc4PV7fuKZSUvIGB7TH94B
Content-Type: application/json
Body
{
  "rawId": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "id": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "response": {
    "clientDataJSON": "eyJjaGFsbGVuZ2UiOiJmZDgwNmFhYTIwNDhkMTdlNmQwNDQ1OTQ4ZDZlNGM",
    "attestationObject": "o2NmbXRoZmlkby11MmZnYXR0U3RtdKJjc2lnWEgwRgIhAJmQJ0UWURa"
  }
}
Responses200
Headers
Enroll-Process-Id: ZTqHuKhgx6Fc4PV7fuKZSUvIGB7TH94B
Content-Type: application/json
Body
{
  "status": "ok",
  "errorMessage": ""
}

FIDO2:1 Get challenge and verify signature during FIDO2 enroll:
POST/api/v1/logon_method/FIDO2:1/enroll

Generate a challenge and verify the signature provided by the authenticator during the FIDO2 enrollment process.

Request Body Parameters

  • displayName: string (required*)

    • The display name of the user.
  • username: string (required*)

    • The name of the user.

LEGACY - FIDO2:1 Get challenge and verify signature during FIDO2 enroll:

POST /api/v1/logon_method/FIDO2:1/enroll/`Nhq4tdOOnf82kkAovRrLVDfw6Jy8Ks35` **
RequestsGet ChallengeTo verify the signature
Headers
Content-Type: application/json
Body
{
    "displayName": "LOCAL\ADMIN",
    "username": "LOCAL\ADMIN"
}
Responses200
Headers
Content-Type: application/json
Body
{
    "challenge": "1c71a0d37c7332b3e2aee5dd8b79f77e067b3c22",
    "pubKeyCredParams": [
                            {"alg": -7, "type": "public-key"},
                            {"alg": -257, "type": "public-key"}
                        ],
    "rp": {"id": None, "name": "172.17.0.1"},
    "status": "ok",
    "user": {
                "displayName": "LOCAL\ADMIN",
                "id": "22196673abcc0bb4",
                "name": "LOCAL\ADMIN"
            }
}
Headers
Content-Type: application/json
Body
{
  "rawId": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "id": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "response": {
    "clientDataJSON": "eyJjaGFsbGVuZ2UiOiJmZDgwNmFhYTIwNDhkMTdlNmQwNDQ1OTQ4ZDZlNGM",
    "attestationObject": "o2NmbXRoZmlkby11MmZnYXR0U3RtdKJjc2lnWEgwRgIhAJmQJ0UWURa"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "status": "ok",
  "errorMessage": ""
}

LEGACY - FIDO2:1 Get challenge and verify signature during FIDO2 enroll:
POST/api/v1/logon_method/FIDO2:1/enroll/{proc_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  • displayName: "LOCAL\ADMIN" (required, string) - Display name of User

  • username: "LOCAL\ADMIN" (required, string) - Username

URI Parameters
HideShow
proc_id
string (required) Example: `Nhq4tdOOnf82kkAovRrLVDfw6Jy8Ks35` **

FIDO2:1 Get challenge and verify signature during FIDO2 logon:

POST /api/v1/logon_method/FIDO2:1/logon
Requestsexample 1example 2
Headers
Login-Process-Id: dblJInV6Tas1oVwJwjpLuxaetELsRfzf
Body
{
    "displayName": "LOCAL\ADMIN",
    "username": "LOCAL\ADMIN"
}
Responses200
Headers
Login-Process-Id: dblJInV6Tas1oVwJwjpLuxaetELsRfzf
Content-Type: application/json
Body
{
  "status": "ok",
  "challenge": "dddda6ea311a0d2382bcb9d914d431639831d91d",
  "rpId": "localhost",
  "allowCredentials": [
    {
      "id": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5_8iZ4olH6ewoanUs0C5hpFA39Vh",
      "transports": [
        "usb",
        "nfc",
        "ble"
      ],
      "type": "public-key"
    }
  ],
  "credential": {}
}
Headers
Login-Process-Id: dblJInV6Tas1oVwJwjpLuxaetELsRfzf
Body
{
  "rawId": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "id": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "response": {
    "clientDataJSON": "eyJjaGFsbGVuZ2UiOiJlODQzNWRlMzBiOTg2OTdDo1MDAwIiwidHlwZS",
    "authenticatorData": "SZYN5YgOjGh0NBcPZHZgW4_krrmihjLHmVzzuoMdl2MBAAABBA",
    "signature": " MEUCIQDy16gFMzHriknyjmN0czB4dg_YlC10ofcOo0dypmcYYQIgcNRSqRcwWx5AMhO5DgsvhF",
    "userHandle": null
  },
  "getClientExtensionResults": {}
}
Responses200
Headers
Login-Process-Id: dblJInV6Tas1oVwJwjpLuxaetELsRfzf
Content-Type: application/json
Body
{
  "status": "ok",
  "errorMessage": ""
}

FIDO2:1 Get challenge and verify signature during FIDO2 logon:
POST/api/v1/logon_method/FIDO2:1/logon

Generate a challenge and verify the signature provided by the authenticator during the FIDO2 logon process.

Request Body Parameters

  • displayName: string (required*)

    • The display name of the user.
  • username: string (required*)

    • The name of the user.

LEGACY - FIDO2:1 Get challenge and verify signature during FIDO2 logon:

POST /api/v1/logon_method/FIDO2:1/logon/dblJInV6Tas1oVwJwjpLuxaetELsRfzf
Requestsexample 1example 2
Body
{
  "displayName": "LOCAL\ADMIN",
  "username": "LOCAL\ADMIN"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "status": "ok",
  "challenge": "dddda6ea311a0d2382bcb9d914d431639831d91d",
  "rpId": "localhost",
  "allowCredentials": [
    {
      "id": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5_8iZ4olH6ewoanUs0C5hpFA39Vh",
      "transports": [
        "usb",
        "nfc",
        "ble"
      ],
      "type": "public-key"
    }
  ],
  "credential": {}
}
Body
{
  "rawId": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "id": "ZdoiW-h2UKZYFDkh0Zrs-p2DeNfFaieg11H0nWz5",
  "response": {
    "clientDataJSON": "eyJjaGFsbGVuZ2UiOiJlODQzNWRlMzBiOTg2OTdDo1MDAwIiwidHlwZS",
    "authenticatorData": "SZYN5YgOjGh0NBcPZHZgW4_krrmihjLHmVzzuoMdl2MBAAABBA",
    "signature": " MEUCIQDy16gFMzHriknyjmN0czB4dg_YlC10ofcOo0dypmcYYQIgcNRSqRcwWx5AMhO5DgsvhF",
    "userHandle": null
  },
  "getClientExtensionResults": {}
}
Responses200
Headers
Content-Type: application/json
Body
{
  "status": "ok",
  "errorMessage": ""
}

LEGACY - FIDO2:1 Get challenge and verify signature during FIDO2 logon:
POST/api/v1/logon_method/FIDO2:1/logon/{proc_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send request

Request Body Parameters

  • displayName: "LOCAL\ADMIN" (required, string) - Display name of User

  • username: "LOCAL\ADMIN" (required, string) - Username

URI Parameters
HideShow
proc_id
string (required) Example: dblJInV6Tas1oVwJwjpLuxaetELsRfzf

ID of the logon process


WINHELLO:1 Read User Details

POST /api/v1/logon_method/WINHELLO:1/account_details/4f34e2882991440ddd0fd515e0d0236c/get
RequestsGet User Details
Headers
Login-Session-Id: B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o
Content-Type: application/json
Body
null
Responses200
Headers
Login-Session-Id: B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o
Content-Type: application/json
Body
{
  "account_name": "Test",
  "is_ad_user": false
}

WINHELLO:1 Read User Details
POST/api/v1/logon_method/WINHELLO:1/account_details/{user_id}/get

Retrieve user information using WINHELLO. Authenticate to Helpdesk or Authenticators Management event.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - WINHELLO:1 Read User Details

POST /api/v1/logon_method/WINHELLO:1/account_details/4f34e2882991440ddd0fd515e0d0236c/get
RequestsGet User Details
Headers
Content-Type: application/json
Body
{
    login_session_id: `B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o`
}
Responses200
Headers
Content-Type: application/json
Body
{
  "account_name": "Test",
  "is_ad_user": false
}

LEGACY - WINHELLO:1 Read User Details
POST/api/v1/logon_method/WINHELLO:1/account_details/{user_id}/get

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Requires login_session_id of any user authenticated to Helpdesk or Authenticators Management event.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user


BANKID:1 enroll:

POST /api/v1/enroll/do_enroll
Requestsexample 1
Headers
Enroll-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "personal_id": "123456789123"
  }
}
Responses200
Headers
Enroll-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
  "reason": "",
  "method_id": "BANKID:1",
  "status": "OK",
  "msg": ""
}

BANKID:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new BANKID authenticator for a user. Send request with personal_id to do enroll and check status.

Error reasons:

  • MISSING_PERSONAL_ID_NUMBER

  • INVALID_PERSONAL_ID_NUMBER

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • personal_id: string (required*)

    • The personal ID of the bank.

LEGACY - BANKID:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "personal_id": "123456789123"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "reason": "",
  "method_id": "BANKID:1",
  "status": "OK",
  "msg": ""
}

LEGACY - BANKID:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with personal ID number to do_enroll and check status.

Error reasons:

  • MISSING_PERSONAL_ID_NUMBER

  • INVALID_PERSONAL_ID_NUMBER

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


BANKID:1 logon :

POST /api/v1/logon/do_logon
Requests1. Send request to BankID App2a. Finish logon successfully2b. Finish logon failed
Headers
Logon-Process-Id: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT
Content-Type: application/json
Body
{
  "reason": "WAITING_FOR_USER_ACCEPT",
  "msg": "Start your BankID app",
  "chains": [
    {
      "id_hex": null,
      "is_enabled": true,
      "short_name": "",
      "grace_period": null,
      "image_name": "BANKID_1.png",
      "is_trusted": null,
      "name": "Test-chain",
      "methods": [
        "BANKID"
      ],
      "apply_for_ep_owner": false,
      "position": 1000,
      "required_chain_id_hex": null
    }
  ],
  "current_method": "BANKID:1",
  "status": "MORE_DATA",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "event_name": "TEST",
  "completed_methods": [],
  "event_data_id": "",
  "plugins": [],
  "method_id": "BANKID:1"
}
Headers
Logon-Process-Id: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT
Content-Type: application/json
Body
{
    "data_id": "",
    "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
    "current_method": "BANKID:1",
    "event_data_id": "",
    "user_id": "3a76753d7f931751c79fa05d80eb058e",
    "repo_id": "42987aa00c8911e69140080027983191",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_obj_id": "42a3962e0c8911e69140080027983191",
    "event_name": "TEST",
    "msg": "Welcome",
    "chains": [
        {
            "short_name": "",
            "required_chain_id_hex": null,
            "position": 0,
            "is_enabled": true,
            "methods": ["BANKID:1"],
            "image_name": "BANKID_1.png",
            "grace_period": null,
            "name": "Test-chain",
            "id_hex": "42b312980c8911e69140080027983191",
            "apply_for_ep_owner": false,
            "is_trusted": null
        }
    ],
    "user_name": "LOCAL\USER1",
    "completed_methods": ["BANKID:1"],
    "status": "OK",
    "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL"
}
Headers
Logon-Process-Id: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT
Content-Type: application/json
Body
{
  "event_name": "TEST",
  "current_method": "BANKID:1",
  "status": "FAILED",
  "reason": "ERROR",
  "method_id": "BANKID:1",
  "completed_methods": [],
  "msg": "Action cancelled",
  "plugins": [],
  "chains": [
    {
      "grace_period": null,
      "image_name": "BANKID_1.png",
      "position": 1000,
      "apply_for_ep_owner": false,
      "id_hex": null,
      "short_name": "",
      "is_trusted": null,
      "methods": [
        "BANKID"
      ],
      "is_enabled": true,
      "required_chain_id_hex": null,
      "name": "Test-chain"
    }
  ],
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "event_data_id": ""
}

BANKID:1 logon :
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the BANKID.

  1. Send empty request to do logon to send the notification to BankID App. User should receive notification in the BankID app and he can Identify or Cancel it.

  2. To check status of logon application should send empty request to do logon until status will not changed for failed or successful.

Error reasons:

  • OK

  • WRONG_STATE

  • WAITING_FOR_USER_ACCEPT

  • ERROR

Request Body Parameters

  • endpoint_session_id: string (required*)
    • The ID of the endpoint session.

LEGACY - BANKID:1 logon :

POST /api/v1/logon/tvV9a4UNEf71yvZDxwJQ179SJnHQndmT/do_logon
Requests1. Send request to BankID App2a. Finish logon successfully2b. Finish logon failed
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "reason": "WAITING_FOR_USER_ACCEPT",
  "msg": "Start your BankID app",
  "chains": [
    {
      "id_hex": null,
      "is_enabled": true,
      "short_name": "",
      "grace_period": null,
      "image_name": "BANKID_1.png",
      "is_trusted": null,
      "name": "Test-chain",
      "methods": [
        "BANKID"
      ],
      "apply_for_ep_owner": false,
      "position": 1000,
      "required_chain_id_hex": null
    }
  ],
  "current_method": "BANKID:1",
  "status": "MORE_DATA",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "event_name": "TEST",
  "completed_methods": [],
  "event_data_id": "",
  "plugins": [],
  "method_id": "BANKID:1"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
        "data_id": "",
        "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
        "current_method": "BANKID:1",
        "event_data_id": "",
        "user_id": "3a76753d7f931751c79fa05d80eb058e",
        "repo_id": "42987aa00c8911e69140080027983191",
        "msgid": "AUCORE-2001",
        "plugins": [],
        "repo_obj_id": "42a3962e0c8911e69140080027983191",
        "event_name": "TEST",
        "msg": "Welcome",
        "chains": [
            {
                "short_name": "",
                "required_chain_id_hex": null,
                "position": 0,
                "is_enabled": true,
                "methods": ["BANKID:1"],
                "image_name": "BANKID_1.png",
                "grace_period": null,
                "name": "Test-chain",
                "id_hex": "42b312980c8911e69140080027983191",
                "apply_for_ep_owner": false,
                "is_trusted": null
            }
        ],
        "user_name": "LOCAL\USER1",
        "completed_methods": ["BANKID:1"],
        "status": "OK",
        "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL"
    }
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "event_name": "TEST",
  "current_method": "BANKID:1",
  "status": "FAILED",
  "reason": "ERROR",
  "method_id": "BANKID:1",
  "completed_methods": [],
  "msg": "Action cancelled",
  "plugins": [],
  "chains": [
    {
      "grace_period": null,
      "image_name": "BANKID_1.png",
      "position": 1000,
      "apply_for_ep_owner": false,
      "id_hex": null,
      "short_name": "",
      "is_trusted": null,
      "methods": [
        "BANKID"
      ],
      "is_enabled": true,
      "required_chain_id_hex": null,
      "name": "Test-chain"
    }
  ],
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "event_data_id": ""
}

LEGACY - BANKID:1 logon :
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send empty request to do_logon to send the notification to BankID App. User should receive notification in the BankID app and he can Identify or Cancel it.

  2. To check status of logon application should send empty request to do_logon until status will not changed for failed or successful.

Error reasons:

  • OK

  • WRONG_STATE

  • WAITING_FOR_USER_ACCEPT

  • ERROR

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT

ID of the logon process


BLUETOOTH_ESEC:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsBluetooth enroll
Headers
Enroll-Process-Id: SCSuNOF3uvQRPBXmEVwG00Vn1ZBpmIzX
Content-Type: application/json
Body
{
    "response": {
            "devices": [
                {"address": "aabbccdd", "name": "My Phone", "type": "phone"},
                {"address": "12345678", "name": "My other device", "type": "other"},
            ],
        },
    "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk"
}
Responses200
Headers
Enroll-Process-Id: SCSuNOF3uvQRPBXmEVwG00Vn1ZBpmIzX
Content-Type: application/json
Body
{
  "method_id": "BLUETOOTH_ESEC:1",
  "status": "OK",
  "reason": "",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001"
}

BLUETOOTH_ESEC:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new BLUETOOTH_ESEC authenticator for a user. Send request with mac address hash, device name and type to do enroll

Error reasons:

  • MISSING_INFO

  • DEVICE_TOO_LARGE

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • devices: dict (required*)

    • The dict of the bluetooth devices.

LEGACY - BLUETOOTH_ESEC:1 enroll:

POST /api/v1/enroll/SCSuNOF3uvQRPBXmEVwG00Vn1ZBpmIzX/do_enroll
RequestsBluetooth enroll
Headers
Content-Type: application/json
Body
{
  "response": {
      "devices": [
        {"address": "aabbccdd", "name": "My Phone", "type": "phone"},
        {"address": "12345678", "name": "My other device", "type": "other"},
      ],
    },
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "BLUETOOTH_ESEC:1",
  "status": "OK",
  "reason": "",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001"
}

LEGACY - BLUETOOTH_ESEC:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with mac address hash, device name and type to do_enroll

Error reasons:

  • MISSING_INFO

  • DEVICE_TOO_LARGE

URI Parameters
HideShow
enroll_process_id
string (required) Example: SCSuNOF3uvQRPBXmEVwG00Vn1ZBpmIzX

ID of the enroll process


BLUETOOTH_ESEC:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for the IV/Cert.2. Send encryption key from Client.3. Send detected devices from Client.
Headers
Login-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
    "response": {
    "version": 1,
    },
    "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
    "status": "MORE_DATA"
}
Responses200
Headers
Login-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
  "nonce": "base64==",
  "cert": "-----BEGIN CERTIFICATE-----...",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "current_method": "BLUETOOTH_ESEC:1",
  "msgid": "AUCORE-2059",
  "msg": "Waiting for an authentication response",
  "reason": "BLUETOOTH_WAITING_SECRET_KEY",
  "status": "MORE_DATA"
}
Headers
Login-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
    "response": {
    "version": 1,
    "encrypted_key": base64_publicK_encrypted_response("{
        "nonce": "base64==",
        "secret_key": "base64==",
    }"),
    },
    "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Login-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
    "iv": "base64==",
    "tag": "base64==",
    "message": base64_secretK_encrypted_response("{
        "devices": [
            {"address": "abc"},
            {"address": "xyz"},
        ]
    }"),
    "current_method": "BLUETOOTH_ESEC:1",
    "msgid": "AUCORE-2059",
    "msg": "Waiting for an authentication response",
    "reason": "BLUETOOTH_WAITING_DEVICES",
    "status": "MORE_DATA"
}
Headers
Login-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
    "response": {
    "version": 1,
    "iv": "base64==",
    "tag": "base64==",
    "message": base64_secretK_encrypted_response("{
        "devices": [
        {"hash": "abc"},
        {"hash": "xyz"},
        ]
    }"),
    },
    "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Login-Process-Id: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Content-Type: application/json
Body
{
    "devices": [
        {"address": "abc"},
        {"address": "xyz"},
    ],
    "current_method": "BLUETOOTH_ESEC:1",
    "msgid": "AUCORE-2001",
    "msg": "Welcome",
    "status": "OK"
}

BLUETOOTH_ESEC:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the BLUETOOTH_ESEC.

BLUETOOTH_ESEC:1 logon steps:

  1. Send empty request to do logon to ask server for nonce and X509 certificate.

  2. Send encrypted response from Client. Response contains the secret key.

  3. Send encrypted response from Client. Response contains the devices that were detected.

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • BLUETOOTH_WAITING_AUTH_RESPONSE

  • BLUETOOTH_WAITING_SECRET_KEY

  • BLUETOOTH_WAITING_DEVICES

  • INCORRECT_DEVICE

  • NO_DEVICE_FOUND

  • INVALID_IV

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • Please see the examples.


LEGACY - BLUETOOTH_ESEC:1 logon:

POST /api/v1/logon/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_logon
Requests1. Ask server for the IV/Cert.2. Send encryption key from Client.3. Send detected devices from Client.
Headers
Content-Type: application/json
Body
{
      "response": {
        "version": 1,
      },
      "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
      "status": "MORE_DATA"
    }
Responses200
Headers
Content-Type: application/json
Body
{
  "nonce": "base64==",
  "cert": "-----BEGIN CERTIFICATE-----...",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "current_method": "BLUETOOTH_ESEC:1",
  "msgid": "AUCORE-2059",
  "msg": "Waiting for an authentication response",
  "reason": "BLUETOOTH_WAITING_SECRET_KEY",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
      "response": {
        "version": 1,
        "encrypted_key": base64_publicK_encrypted_response("{
          "nonce": "base64==",
          "secret_key": "base64==",
        }"),
      },
      "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
    }
Responses200
Headers
Content-Type: application/json
Body
{
       "iv": "base64==",
       "tag": "base64==",
       "message": base64_secretK_encrypted_response("{
         "devices": [
           {"address": "abc"},
           {"address": "xyz"},
         ]
       }"),
       "current_method": "BLUETOOTH_ESEC:1",
       "msgid": "AUCORE-2059",
       "msg": "Waiting for an authentication response",
       "reason": "BLUETOOTH_WAITING_DEVICES",
       "status": "MORE_DATA"
    }
Headers
Content-Type: application/json
Body
{
      "response": {
        "version": 1,
        "iv": "base64==",
        "tag": "base64==",
        "message": base64_secretK_encrypted_response("{
          "devices": [
            {"hash": "abc"},
            {"hash": "xyz"},
          ]
        }"),
      },
      "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
    }
Responses200
Headers
Content-Type: application/json
Body
{
      "devices": [
        {"address": "abc"},
        {"address": "xyz"},
      ],
      "current_method": "BLUETOOTH_ESEC:1",
      "msgid": "AUCORE-2001",
      "msg": "Welcome",
      "status": "OK"
    }

LEGACY - BLUETOOTH_ESEC:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

BLUETOOTH_ESEC:1 logon steps:

  1. Send empty request to do_logon to ask server for nonce and X509 certificate.

  2. Send encrypted response from Client. Response contains the secret key.

  3. Send encrypted response from Client. Response contains the devices that were detected.

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • BLUETOOTH_WAITING_AUTH_RESPONSE

  • BLUETOOTH_WAITING_SECRET_KEY

  • BLUETOOTH_WAITING_DEVICES

  • INCORRECT_DEVICE

  • NO_DEVICE_FOUND

  • INVALID_IV

URI Parameters
HideShow
logon_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the logon process


DEVICE_AUTH:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsStore either a public key in modulus+exponent format or a certificate in DER format
Headers
Enroll-Process-Id: zJqvZ9zfvXcKvTDIxFYsGv8a4NCff5NQ
Content-Type: application/json
Body
{
  "response": {
    "modulus": "bd77dc79a02acda19a9ec6099cd4a........0da58c9ef04a1e2655aac84f23",
    "card_cert": null,
    "exponent": "10001"
  },
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Enroll-Process-Id: zJqvZ9zfvXcKvTDIxFYsGv8a4NCff5NQ
Content-Type: application/json
Body
{
  "msgid": "AUCORE-3001",
  "reason": "",
  "msg": "Enrollment is complete",
  "status": "OK",
  "method_id": "DEVICE_AUTH:1"
}

DEVICE_AUTH:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll with a public key in modulus + exponent format or a certificate in DER format to do enroll and check status.

Error reasons:

  • PKI_CERT_VALIDATION_FAILED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - DEVICE_AUTH:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsStore either a public key in modulus+exponent format or a certificate in DER format
Headers
Content-Type: application/json
Body
{
  "response": {
    "modulus": "bd77dc79a02acda19a9ec6099cd4a........0da58c9ef04a1e2655aac84f23",
    "card_cert": null,
    "exponent": "10001"
  },
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "msgid": "AUCORE-3001",
  "reason": "",
  "msg": "Enrollment is complete",
  "status": "OK",
  "method_id": "DEVICE_AUTH:1"
}

LEGACY - DEVICE_AUTH:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with a public key in modulus+exponent format or a certificate in DER format to do_enroll and check status.

Error reasons:

  • PKI_CERT_VALIDATION_FAILED
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


DEVICE_AUTH:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for a challenge2. Sign the given challenge on card or token
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {}
}
Responses200
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
    "chains": [{
    "image_name": "default",
    "is_enabled": True,
    "is_trusted": None,
    "methods": ["DEVICE_AUTH:1"],
    "name": "Test-chain",
    "position": 0,
    "short_name": ""
    }],
    "completed_methods": [],
    "current_method": "DEVICE_AUTH:1",
    "event_data_id": "",
    "event_name": "TEST",
    "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
    "msg": "Waiting for an authentication signature",
    "plugins": [],
    "challenge": "f81e9d6882aca80cbe97e291ee5771aba7cc13facb3c79a5ae924e788bc4f7d2",
    "keypair_id": "6f4712e554544ac3",
    "subject": "76b3af3dd66649e896b56b51d46cfe93037a793c961ca35586c485d130375e2f",
    "reason": "PKI_WAITING_AUTH_SIGN",
    "status": "MORE_DATA"
}
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "signature": "58ad84f3a9b7244031aa55c0d....42d123bdb715a153974e992b16d022",
    "padding": "PKCS#1",
    "hash": "SHA1"
  }
}
Responses200
Headers
Logon-Process-Id: jBaYkc08vxmI9LslCJcCTZ3JUgqYn6CH
Content-Type: application/json
Body
{
"repo_obj_id": "6104a6ce424b11e5b7ebdc85de0b0889",
"repo_id": "6104a6c5424b11e5b7ebdc85de0b0889",
"logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
"status": "OK",
"plugins": [],
"msg": "Welcome",
"current_method": "DEVICE_AUTH:1",
"completed_methods": ["DEVICE_AUTH:1"],
"chains": [{
    "methods": ["ANY"],
    "image_name": "default",
    "short_name": "",
    "position": 1000,
    "is_enabled": true,
    "is_trusted": null,
    "name": "TEST CHAIN"
}],
"event_data_id": "",
"user_id": "6104a6cf424b11e5b7ebdc85de0b0889",
"user_name": "LOCAL\ADMIN",
"login_session_id": "DirIO8s41TbT1lm7Dh5BNfK6gRTHhXTl",
"data_id": "",
"event_name": "TEST"
}

DEVICE_AUTH:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the public key in modulus+exponent format or the certificate in DER format.

Logon steps:

  1. Ask server for a challenge by sending empty request to do logon.

  2. Sign the given challenge on card or token and send it to do logon and check status.

Error reasons:

  • PKI_WAITING_AUTH_SIGN

  • PKI_SIGN_VERIFICATION_FAILED

  • PKI_CERT_VALIDATION_FAILED

  • PKI_WRONG_CARD

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - DEVICE_AUTH:1 logon:

POST /api/v1/logon/kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp/do_logon
Requests1. Ask server for a challenge2. Sign the given challenge on card or token
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {}
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [{
    "image_name": "default",
    "is_enabled": True,
    "is_trusted": None,
    "methods": ["DEVICE_AUTH:1"],
    "name": "Test-chain",
    "position": 0,
    "short_name": ""
  }],
  "completed_methods": [],
  "current_method": "DEVICE_AUTH:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Waiting for an authentication signature",
  "plugins": [],
  "challenge": "f81e9d6882aca80cbe97e291ee5771aba7cc13facb3c79a5ae924e788bc4f7d2",
  "keypair_id": "6f4712e554544ac3",
  "subject": "76b3af3dd66649e896b56b51d46cfe93037a793c961ca35586c485d130375e2f",
  "reason": "PKI_WAITING_AUTH_SIGN",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "signature": "58ad84f3a9b7244031aa55c0d....42d123bdb715a153974e992b16d022",
    "padding": "PKCS#1",
    "hash": "SHA1"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "repo_obj_id": "6104a6ce424b11e5b7ebdc85de0b0889",
  "repo_id": "6104a6c5424b11e5b7ebdc85de0b0889",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "status": "OK",
  "plugins": [],
  "msg": "Welcome",
  "current_method": "DEVICE_AUTH:1",
  "completed_methods": ["DEVICE_AUTH:1"],
  "chains": [{
    "methods": ["ANY"],
    "image_name": "default",
    "short_name": "",
    "position": 1000,
    "is_enabled": true,
    "is_trusted": null,
    "name": "TEST CHAIN"
  }],
  "event_data_id": "",
  "user_id": "6104a6cf424b11e5b7ebdc85de0b0889",
  "user_name": "LOCAL\ADMIN",
  "login_session_id": "DirIO8s41TbT1lm7Dh5BNfK6gRTHhXTl",
  "data_id": "",
  "event_name": "TEST"
}

LEGACY - DEVICE_AUTH:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

DEVICE_AUTH:1 logon steps:

  1. Ask server for a challenge by sending empty request to do_logon

  2. Sign the given challenge on card or token and send it to do_logon and check status

Error reasons:

  • PKI_WAITING_AUTH_SIGN

  • PKI_SIGN_VERIFICATION_FAILED

  • PKI_CERT_VALIDATION_FAILED

  • PKI_WRONG_CARD

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp

ID of the logon process


EMAIL_OTP:1 enroll:

POST /api/v1/enroll/do_enroll
Requests1. Start enroll2. Verify email
Headers
Enroll-Process-Id: qKD4Zi9IQW2hKRNiFHAxdyg4smr1uhkp
Content-Type: application/json
Body
{
"login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
"response": {
  "email": "test@domain.com"  // (optional, if not present the email from repository will be used)
}
}
Responses200
Headers
Enroll-Process-Id: qKD4Zi9IQW2hKRNiFHAxdyg4smr1uhkp
Content-Type: application/json
Body
{
  "method_id": "EMAIL_OTP:1",
  "msg": "Verification code was just sent to ***t@domain.com",
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: qKD4Zi9IQW2hKRNiFHAxdyg4smr1uhkp
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Enroll-Process-Id: qKD4Zi9IQW2hKRNiFHAxdyg4smr1uhkp
Content-Type: application/json
Body
{
  "method_id": "EMAIL_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

EMAIL_OTP:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new EMAIL OTP authenticator for a user.

Enroll steps:

  1. Send request to do enroll and check status.
  2. If status is MORE_DATA then send a verification code to do enroll.

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_WAITING_PASSWORD

  • OTP_WRONG_PASSWORD

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - EMAIL_OTP:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requests1. Start enroll2. Verify email
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "email": "test@domain.com"  // (optional, if not present the email from repository will be used)
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "EMAIL_OTP:1",
  "msg": "Verification code was just sent to ***t@domain.com",
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "EMAIL_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - EMAIL_OTP:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send request to do_enroll and check status

  2. If status is MORE_DATA then send a verification code to do_enroll

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_WAITING_PASSWORD

  • OTP_WRONG_PASSWORD

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


EMAIL_OTP:1 logon:

POST /api/v1/logon/do_logon
Requests1. Send message to user2. Enter password from Email successfully3. Enter password from Email unsuccessfully
Headers
Logon-Process-Id: 9BTY2XL55v1Zbj3LViiOIHvT0ElHzi32
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW"
}
Responses200
Headers
Logon-Process-Id: 9BTY2XL55v1Zbj3LViiOIHvT0ElHzi32
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "EMAIL_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "OTP #3 sent to s****man@example.com, please specify",
  "msgid": "AUCORE-2012",
  "plugins": [],
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: 9BTY2XL55v1Zbj3LViiOIHvT0ElHzi32
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW",
  "response": {
    "answer": "795199"
  }
}
Responses200
Headers
Logon-Process-Id: 9BTY2XL55v1Zbj3LViiOIHvT0ElHzi32
Content-Type: application/json
Body
{
"chains": [
  {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": null,
    "image_name": "ANY.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
      "ANY"
    ],
    "name": "TEST CHAIN",
    "position": 1000,
    "required_chain_id_hex": null,
    "short_name": ""
  }
],
"completed_methods": [
  "EMAIL_OTP:1"
],
"current_method": "EMAIL_OTP:1",
"data_id": "",
"event_data_id": "",
"event_name": "",
"login_session_id": "VqtNECMXwMIRDLqbOFG8pBbTbG8lfSTT",
"logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
"msg": "Welcome",
"msgid": "AUCORE-2001",
"plugins": [],
"repo_id": "d65f2f4e0c4e11e6b18c080027983191",
"repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
"status": "OK",
"user_cn": "Admin",
"user_dn": "CN=Admin,CN=test",
"user_email": "test@localhost",
"user_id": "470671fbf0227d268c2cc7d6b756e2c0",
"user_name": "LDS\Admin",
"user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
"user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}
Headers
Logon-Process-Id: 9BTY2XL55v1Zbj3LViiOIHvT0ElHzi32
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW",
  "response": {
    "answer": "795191"
  }
}
Responses200
Headers
Logon-Process-Id: 9BTY2XL55v1Zbj3LViiOIHvT0ElHzi32
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "EMAIL_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "Incorrect answer. Please try again",
  "msgid": "AUCORE-2015",
  "plugins": [],
  "reason": "OTP_WRONG_PASSWORD",
  "status": "MORE_DATA"
}

EMAIL_OTP:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the EMAIL OTL

Logon steps:

  1. Send empty request to do logon to send email.
  2. Send request with password from received email to do logon and check status.

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_RESEND_LATER

  • OTP_WAITING_PASSWORD

  • OTP_NO_PASSWORD

  • OTP_PASSWORD_EXPIRED

  • OTP_WRONG_PASSWORD

  • OTP_NO_EXPLICIT_RECIPIENT

Request Body Parameters

  • endpoint_session_id: string (required*)
    • The ID of the endpoint session.

LEGACY - EMAIL_OTP:1 logon:

POST /api/v1/logon/DjCTzG4tuJdwTmdWhtkbUggbertp2d6E/do_logon
Requests1. Send message to user2. Enter password from Email successfully3. Enter password from Email unsuccessfully
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "EMAIL_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "OTP #3 sent to s****man@example.com, please specify",
  "msgid": "AUCORE-2012",
  "plugins": [],
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW",
  "response": {
    "answer": "795199"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "EMAIL_OTP:1"
  ],
  "current_method": "EMAIL_OTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "VqtNECMXwMIRDLqbOFG8pBbTbG8lfSTT",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "d65f2f4e0c4e11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_email": "test@localhost",
  "user_id": "470671fbf0227d268c2cc7d6b756e2c0",
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW",
  "response": {
    "answer": "795191"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "EMAIL_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "Incorrect answer. Please try again",
  "msgid": "AUCORE-2015",
  "plugins": [],
  "reason": "OTP_WRONG_PASSWORD",
  "status": "MORE_DATA"
}

LEGACY - EMAIL_OTP:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

EMAIL_OTP:1 logon steps:

  1. Send empty request to do_logon to send email

  2. Send request with password from received email to do_logon and check status

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_RESEND_LATER

  • OTP_WAITING_PASSWORD

  • OTP_NO_PASSWORD

  • OTP_PASSWORD_EXPIRED

  • OTP_WRONG_PASSWORD

  • OTP_NO_EXPLICIT_RECIPIENT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: DjCTzG4tuJdwTmdWhtkbUggbertp2d6E

ID of the logon process


EMAIL_OTP:1 method call:

POST /api/v1/logon_method/EMAIL_OTP:1
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9", // (trusted endpoint required)
  "email": "test@domain.com"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "otp": "123456"
}

EMAIL_OTP:1 method call:
POST/api/v1/logon_method/EMAIL_OTP:1

Call the EMAIL OTP logon method to get the OTP.

Method steps:

  1. Send recipient email in request and check OTP.

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • email: string (required*)

    • The email address

EMERG_PASSWORD:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request
Headers
Enroll-Process-Id: 9Z7aoTdaB27kUuI2qddo0wYkpqYGGICT
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "emerg_password"
  }
}
Responses200
Headers
Enroll-Process-Id: 9Z7aoTdaB27kUuI2qddo0wYkpqYGGICT
Content-Type: application/json
Body
{
  "method_id": "EMERG_PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

EMERG_PASSWORD:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new Emergency password authenticator for a user.

Send request with password to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • password: string (required*)

    • The emergency password
  • start_dt: datetime (optional)

    • The start lifetime datetime for emerg password
  • end_dt: datetime (optional)

    • The end lifetime datetime for emerg password
  • max_logon_count: integer (optional)

    • The max possible logon count for this password

LEGACY - EMERG_PASSWORD:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "emerg_password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "EMERG_PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - EMERG_PASSWORD:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with password to do_enroll and check status.

Request fields:

  • password, string, emerg password value

  • start_dt, datetime, optional, start lifetime datetime for emerg password

  • end_dt, datetime, optional, end lifetime datetime for emerg password

  • max_logon_count, integer, max possible logon count for this password

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


EMERG_PASSWORD:1 logon:

POST /api/v1/logon/do_logon
RequestsEmergency password doLogon
Headers
Logon-Process-Id: F4omUvsWseVuHxjhEJKK6syV91nttTn6
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-emergency-password"
  }
}
Responses200
Headers
Logon-Process-Id: F4omUvsWseVuHxjhEJKK6syV91nttTn6
Content-Type: application/json
Body
{
"chains": [
  {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": null,
    "image_name": "ANY.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
      "ANY"
    ],
    "name": "TEST CHAIN",
    "position": 1000,
    "required_chain_id_hex": null,
    "short_name": ""
  }
],
"completed_methods": [
  "EMERG_PASSWORD:1"
],
"current_method": "EMERG_PASSWORD:1",
"data_id": "",
"event_data_id": "",
"event_name": "",
"login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
"logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
"msg": "Welcome",
"msgid": "AUCORE-2001",
"plugins": [],
"repo_id": "3c9c1fd8061e11e6b224080027983191",
"repo_obj_id": "3caa08a0061e11e6b224080027983191",
"status": "OK",
"user_id": "4f34e2882991440ddd0fd515e0d0236c",
"user_name": "LOCAL\ADMIN"
}

EMERG_PASSWORD:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the BANKID.

Logon steps:

  1. Send password to do logon and check status.

Error reasons:

  • EMERG_PASSWORD_EXPIRED

  • EMERG_PASSWORD_INEFFECTIVE

  • EMERG_PASSWORD_EXHAUSTED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • answer: string (required*)

    • The emergency password.

LEGACY - EMERG_PASSWORD:1 logon:

POST /api/v1/logon/TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS/do_logon
RequestsEmergency password doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-emergency-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "EMERG_PASSWORD:1"
  ],
  "current_method": "EMERG_PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - EMERG_PASSWORD:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

EMERG_PASSWORD:1 logon steps:

  1. Send password to do_logon and check status

Error reasons:

  • EMERG_PASSWORD_EXPIRED

  • EMERG_PASSWORD_INEFFECTIVE

  • EMERG_PASSWORD_EXHAUSTED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS

ID of the logon process


FACE:1 enroll:

POST /api/v1/enroll/do_enroll
Requestsface enroll with image
Headers
Enroll-Process-Id: 1yKA4bZYffBOYWluJjNal7sWfehRCkvd
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "face_img": "<Image content>",
    "person_group_id": "test_group"
  }
}
Responses200
Headers
Enroll-Process-Id: 1yKA4bZYffBOYWluJjNal7sWfehRCkvd
Content-Type: application/json
Body
{
  "method_id": "FACE:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

FACE:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new Face image authenticator for a user.

Send request to do enroll with face image

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • INVALID_FACE_IMAGE

  • MISSING_PARAMETERS

  • IMAGE_SIZE_LIMIT_EXCEEDED

  • ENROLLMENT_FAILED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • face_img: string (required*)

    • The urlencoded of base64 string of face image.
    • Allowed image formats: PNG, JPEG, GIF

Note: UI uses Device Service by calling this url: wss://127.0.0.1:8441/api/v1/video through websocket It should return json with captured face image. Device Service returns captured image in png format.


LEGACY - FACE:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requestsface enroll with image
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "face_img": "<Image content>",
    "person_group_id": "test_group"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FACE:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - FACE:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll with face image

Fields description: face_img: It should be urlencoded of base64 string of face image

Allowed image formats: PNG, JPEG, GIF

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • INVALID_FACE_IMAGE

  • MISSING_PARAMETERS

  • IMAGE_SIZE_LIMIT_EXCEEDED

  • ENROLLMENT_FAILED

UI uses Device Service by calling this url: wss://127.0.0.1:8441/api/v1/video through websocket It should return json with captured face image. Device Service returns captured image in png format.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

(required, string) - ID of the enroll process


FACE:1 logon:

POST /api/v1/logon/do_logon
Requestsface capture
Headers
Logon-Process-Id: 4TfYTpWTcY08zP8SKN4EcvkYso4qFgyD
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "face_img": "<Image content>"
  }
}
Responses200
Headers
Logon-Process-Id: 4TfYTpWTcY08zP8SKN4EcvkYso4qFgyD
Content-Type: application/json
Body
{
    "chains": [
        {
        "apply_for_ep_owner": false,
        "grace_period": null,
        "id_hex": null,
        "image_name": "FACE_1.png",
        "is_enabled": true,
        "is_trusted": null,
        "methods": [
            "FACE:1"
        ],
        "name": "TEST CHAIN",
        "position": 1000,
        "required_chain_id_hex": null,
        "short_name": ""
        }
    ],
    "completed_methods": [
        "FACE:1"
    ],
    "current_method": "FACE:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "",
    "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
    "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
    "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
    "status": "OK",
    "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
    "user_name": "LOCAL\ADMIN"
}

FACE:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the face image.

Logon steps:

  1. Send request to do logon with face image.

Error reasons:

  • FACE_MISSING_INFORMATION

  • FACE_POOR_IMAGE_QUALITY

  • FACE_INVALID_IMAGE_FORMAT

  • FACE_MISMATCH

  • LOGON_FAILED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • face_img: string (required*)

    • The urlencoded of base64 string of face image.
    • Allowed image formats: PNG, JPEG, GIF

Note: UI uses Device Service by calling this url: wss://127.0.0.1:8441/api/v1/video through websocket It should return json with captured face image. Device Service returns captured image in png format.


LEGACY - FACE:1 logon:

POST /api/v1/logon/kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp/do_logon
Requestsface capture
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "face_img": "<Image content>"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "FACE_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FACE:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "FACE:1"
  ],
  "current_method": "FACE:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - FACE:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

FACE:1 logon steps:

  1. Send empty request to do_logon to ask server for nonce and X509 certificate.

  2. Send encrypted response from Client. Response contains the secret key.

  3. Send encrypted response from Client. Send request to do_logon with face image

Fields description: face_img: It should be urlencoded of base64 string of face image

Allowed image formats: PNG, JPEG, GIF

Error reasons:

  • FACE_MISSING_INFORMATION

  • FACE_POOR_IMAGE_QUALITY

  • FACE_INVALID_IMAGE_FORMAT

  • FACE_MISMATCH

  • LOGON_FAILED

UI uses Device Service by calling this url: wss://127.0.0.1:8441/api/v1/video through websocket It should return json with captured face image. Device Service returns captured image in png format.

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp

ID of the logon process


FIDO2:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsFirst: Start enrollSecond: Check statusThird: Final status
Headers
Enroll-Process-Id: 7lbF4cwO7a1paLXwe6hVzLAN3zOpWE3c
Content-Type: application/json
Body
{
"login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M",
"response": {
  "rp_id": "localhost"  // REQUIRED: It should be domain name of the requested url.
}
}
Responses200
Headers
Enroll-Process-Id: 7lbF4cwO7a1paLXwe6hVzLAN3zOpWE3c
Content-Type: application/json
Body
{
  "method_id": "FIDO2:1",
  "msg": "Waiting for Web Authentication data",
  "reason": "WAITING_WEBAUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: 7lbF4cwO7a1paLXwe6hVzLAN3zOpWE3c
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M"
}
Responses200
Headers
Enroll-Process-Id: 7lbF4cwO7a1paLXwe6hVzLAN3zOpWE3c
Content-Type: application/json
Body
{
  "method_id": "FIDO2:1",
  "msg": "Waiting for Authentication data",
  "reason": "WAITING_WEBAUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: 7lbF4cwO7a1paLXwe6hVzLAN3zOpWE3c
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M"
}
Responses200
Headers
Enroll-Process-Id: 7lbF4cwO7a1paLXwe6hVzLAN3zOpWE3c
Content-Type: application/json
Body
{
  "method_id": "FIDO2:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

FIDO2:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new FIDO2 authenticator for a user.

Send request to do enroll and check status.

Error reasons:

  • WAITING_WEBAUTH_RESPONSE

  • WRONG_CHALLENGE

  • INVALID_CREDENTIAL_ID

  • WRONG_SIGNATURE

  • FIDO2_FAILED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - FIDO2:1 enroll:

POST /api/v1/enroll/uDlY59KIE89Ez5oQRKVnymjxcxyAFxLc/do_enroll
RequestsFirst: Start enrollSecond: Check statusThird: Check status
Headers
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M",
  "response": {
    "rp_id": "localhost"  // REQUIRED: It should be domain name of the requested url.
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FIDO2:1",
  "msg": "Waiting for Web Authentication data",
  "reason": "WAITING_WEBAUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FIDO2:1",
  "msg": "Waiting for Authentication data",
  "reason": "WAITING_WEBAUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FIDO2:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - FIDO2:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll and check status.

Error reasons:

  • WAITING_WEBAUTH_RESPONSE

  • WRONG_CHALLENGE

  • INVALID_CREDENTIAL_ID

  • WRONG_SIGNATURE

  • FIDO2_FAILED

URI Parameters
HideShow
enroll_process_id
string (required) Example: uDlY59KIE89Ez5oQRKVnymjxcxyAFxLc

ID of the enroll process


FIDO2:1 logon:

POST /api/v1/logon/do_logon
RequestsStart logonCheck resultCheck result failed
Headers
Logon-Process-Id: sFmk5HEyPHjhrnB19aPZcuXd2q7p1Qju
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1",
  "response": {}
}
Responses200
Headers
Logon-Process-Id: sFmk5HEyPHjhrnB19aPZcuXd2q7p1Qju
Content-Type: application/json
Body
{
  "category_id": "",
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "b8476540b49411e7b93e000c294d5acc",
      "image_name": "FIDO2_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FIDO2:1"
      ],
      "mfa_tags": [],
      "name": "fido2",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": "fido2",
      "tenant_id": "def0def0def0def0def0def0def0def0"
    }
  ],
  "completed_methods": [],
  "current_method": "FIDO2:1",
  "event_data_id": "AUTHENTICATORS MANAGEMENT",
  "event_name": "Authenticators Management",
  "linked_logon": false,
  "logon_process_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1",
  "msg": "Waiting for Authentication data",
  "msgid": "AUCORE-3057",
  "plugins": [],
  "reason": "WAITING_WEBAUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: sFmk5HEyPHjhrnB19aPZcuXd2q7p1Qju
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1"
}
Responses200
Headers
Logon-Process-Id: sFmk5HEyPHjhrnB19aPZcuXd2q7p1Qju
Content-Type: application/json
Body
{
"category_id": "",
"chains": [
  {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": null,
    "image_name": "ANY.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
      "ANY"
    ],
    "mfa_tags": [],
    "name": "TEST CHAIN",
    "position": 1000,
    "required_chain_id_hex": null,
    "short_name": "",
    "tenant_id": "def0def0def0def0def0def0def0def0"
  }
],
"completed_chain": {
  "apply_for_ep_owner": false,
  "grace_period": null,
  "id_hex": null,
  "image_name": "ANY.png",
  "is_enabled": true,
  "is_trusted": null,
  "methods": [
    "ANY"
  ],
  "mfa_tags": [],
  "name": "TEST CHAIN",
  "position": 1000,
  "required_chain_id_hex": null,
  "short_name": "",
  "tenant_id": "def0def0def0def0def0def0def0def0"
},
"completed_methods": [
  "FIDO2:1"
],
"current_method": "FIDO2:1",
"data_id": "",
"event_data_id": "",
"event_name": "",
"event_type": "Generic",
"linked_logon": false,
"login_session_id": "Fdsoxy7pvH5AijDRxFdgfkgNuECghmGh",
"logon_process_id": "eurdv8XtHCYrUM6YgPkIQm3WMuF1Kwnb",
"msg": "Welcome!",
"msgid": "AUCORE-2001",
"plugins": [],
"repo_id": "2e0598aa5cf711e8bb2a0242ac130002",
"repo_obj_id": "2e06ede05cf711e8bb2a0242ac130002",
"status": "OK",
"user_id": "6c5f9a6863d233ab6310602a8faee7f1",
"user_name": "LOCAL\ADMIN"
}
Headers
Logon-Process-Id: sFmk5HEyPHjhrnB19aPZcuXd2q7p1Qju
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1"
}
Responses200
Headers
Logon-Process-Id: sFmk5HEyPHjhrnB19aPZcuXd2q7p1Qju
Body
{
  "category_id": "",
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "mfa_tags": [],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": "",
      "tenant_id": "def0def0def0def0def0def0def0def0"
    }
  ],
  "completed_methods": [],
  "current_method": "FIDO2:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "event_type": "Generic",
  "linked_logon": false,
  "logon_process_id": "XqxaOgvchUZB1vdWAMxQ3opIzMhpZaFA",
  "msg": "FIDO2 verification failed",
  "msgid": "AUCORE-3058",
  "plugins": [],
  "reason": "FIDO2_FAILED",
  "status": "FAILED"
}

FIDO2:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the FIDO2.

Logon steps:

  1. Send request to do logon and check status.

Error reasons:

  • WAITING_WEBAUTH_RESPONSE

  • WRONG_CHALLENGE

  • INVALID_CREDENTIAL_ID

  • WRONG_SIGNATURE

  • FIDO2_FAILED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • method_id: string (required*)

    • The ID of the method. Set to FIDO2:1.
  • response: dict (required*)

    • Please see the examples.

LEGACY - FIDO2:1 logon:

POST /api/v1/logon/qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz/do_logon
RequestsStart logonCheck resultCheck result failed
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1",
  "response": {}
}
Responses200
Headers
Content-Type: application/json
Body
{
  "category_id": "",
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "b8476540b49411e7b93e000c294d5acc",
      "image_name": "FIDO2_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FIDO2:1"
      ],
      "mfa_tags": [],
      "name": "fido2",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": "fido2",
      "tenant_id": "def0def0def0def0def0def0def0def0"
    }
  ],
  "completed_methods": [],
  "current_method": "FIDO2:1",
  "event_data_id": "AUTHENTICATORS MANAGEMENT",
  "event_name": "Authenticators Management",
  "linked_logon": false,
  "logon_process_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1",
  "msg": "Waiting for Authentication data",
  "msgid": "AUCORE-3057",
  "plugins": [],
  "reason": "WAITING_WEBAUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "category_id": "",
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "mfa_tags": [],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": "",
      "tenant_id": "def0def0def0def0def0def0def0def0"
    }
  ],
  "completed_chain": {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": null,
    "image_name": "ANY.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
      "ANY"
    ],
    "mfa_tags": [],
    "name": "TEST CHAIN",
    "position": 1000,
    "required_chain_id_hex": null,
    "short_name": "",
    "tenant_id": "def0def0def0def0def0def0def0def0"
  },
  "completed_methods": [
    "FIDO2:1"
  ],
  "current_method": "FIDO2:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "event_type": "Generic",
  "linked_logon": false,
  "login_session_id": "Fdsoxy7pvH5AijDRxFdgfkgNuECghmGh",
  "logon_process_id": "eurdv8XtHCYrUM6YgPkIQm3WMuF1Kwnb",
  "msg": "Welcome!",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "2e0598aa5cf711e8bb2a0242ac130002",
  "repo_obj_id": "2e06ede05cf711e8bb2a0242ac130002",
  "status": "OK",
  "user_id": "6c5f9a6863d233ab6310602a8faee7f1",
  "user_name": "LOCAL\ADMIN"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "FIDO2:1"
}
Responses200
Body
{
  "category_id": "",
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "mfa_tags": [],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": "",
      "tenant_id": "def0def0def0def0def0def0def0def0"
    }
  ],
  "completed_methods": [],
  "current_method": "FIDO2:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "event_type": "Generic",
  "linked_logon": false,
  "logon_process_id": "XqxaOgvchUZB1vdWAMxQ3opIzMhpZaFA",
  "msg": "FIDO2 verification failed",
  "msgid": "AUCORE-3058",
  "plugins": [],
  "reason": "FIDO2_FAILED",
  "status": "FAILED"
}

LEGACY - FIDO2:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

FIDO2:1 logon steps:

  1. Send request to do_logon and check status.

Error reasons:

  • WAITING_WEBAUTH_RESPONSE

  • WRONG_CHALLENGE

  • INVALID_CREDENTIAL_ID

  • WRONG_SIGNATURE

  • FIDO2_FAILED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz

ID of the logon process


FINGER:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsMultiple finger enroll with imagesMultiple finger enroll with iso templatesPartial enrollment: Add operationPartial enrollment: Remove operationPartial enrollment: End operation
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "captures": [
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      },
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      }
    ],
    "duress_finger_index": "1"
  }
}
Responses200
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "captures": [
      {
        "Finger": "1",
        "Image": {
          "ISO": "<iso finger capture template>",
          "captureStatus": "OK"
        }
      },
      {
        "Finger": "1",
        "Image": {
          "ISO": "<iso finger capture template>",
          "captureStatus": "OK"
        }
      }
    ],
    "duress_finger_index": "1"
  }
}
Responses200
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "auth_t_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "captures": [
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      },
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      }
    ],
    "operation": "add"
  }
}
Responses200
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Waiting for next operation",
  "reason": "FINGER_METHOD_WAITS_NEXT_OPERATION",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "auth_t_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "fingers": [
      "1",
      "2"
    ],
    "operation": "remove"
  }
}
Responses200
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Waiting for next operation",
  "reason": "FINGER_METHOD_WAITS_NEXT_OPERATION",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "operation": "end"
  }
}
Responses200
Headers
Enroll-Process-Id: Dyfb3L0lHuOCZBr5eZKBHP6WrrXGKMfs
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

FINGER:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new Fingerprint authenticator for a user.

Send request to do enroll with finger images

Fields description: Finger: “1” , where “1” is finger id from ids below

Finger ids:

  • ANY_FINGER = “0”

  • RIGHT_THUMB = “1”

  • LEFT_THUMB = “2”

  • RIGHT_INDEX = “3”

  • LEFT_INDEX = “4”

  • RIGHT_MIDDLE = “5”

  • LEFT_MIDDLE = “6”

  • RIGHT_RING = “7”

  • LEFT_RING = “8”

  • RIGHT_LITTLE = “9”

  • LEFT_LITTLE = “10”

Image content format:

  • BitsPerPixel, integer, bits per pixel, support only 8 bits now

  • BytesPerLine, integer, count of bytes per one row

  • Width , integer, length of row in pixels

  • Height, integer, pixel row’s count

  • Dpi, integer, is not used now

  • Image, string, base64 encoded string with bytes

  • captureStatus, string, result of capturing

Template content format:

  • ISO: string, base64 encoded string with iso content

  • captureStatus, string, result of capturing

duress_finger_index: “1”, where 1 is the finger id

Partial enrollment

To add / remove fingers to an existing template:

  1. Send request to do enroll with finger images

Fields description: - auth_t_id: “IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H”, (required, string), ID of template - operation: “add”, (required, string), one of (add, remove, end)

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • INCORRECT_FINGERS_COUNT

  • INCORRECT_CAPTURES_COUNT_PER_FINGER

  • FINGER_METHOD_WAITS_NEXT_OPERATION

  • FINGER_NOT_IN_SPECIFIED

  • UNSUPPORTED_OPERATION

  • FINGER_MISMATCH

  • NO_READER_CONNNECTED

  • UNABLE_TO_SCAN

  • READER_NOT_SUPPORTED

  • NO_FINGER_DETECTED

  • INVALID_CONFIGURATION

  • FINGERPRINT_SERVICE_STATUS

  • NO_CAPTURE

  • MISSING_IMAGE_OR_ISO

  • 400

UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/fingerprint/capture It should return json with captured fingerprint. Device Service returns capture in ISO or image format. Type of response is depended on sensor type. So if device service returns ISO send ISO as response or image if device service returns image.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - FINGER:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsMultiple finger enroll with imagesMultiple finger enroll with iso templatesPartial enrollment: Add operationPartial enrollment: Remove operationPartial enrollment: End operation
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "captures": [
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      },
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      }
    ],
    "duress_finger_index": "1"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "captures": [
      {
        "Finger": "1",
        "Image": {
          "ISO": "<iso finger capture template>",
          "captureStatus": "OK"
        }
      },
      {
        "Finger": "1",
        "Image": {
          "ISO": "<iso finger capture template>",
          "captureStatus": "OK"
        }
      }
    ],
    "duress_finger_index": "1"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "auth_t_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "captures": [
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      },
      {
        "Finger": "1",
        "Image": {
          "BitsPerPixel": 8,
          "BytesPerLine": 300,
          "Dpi": 500,
          "Height": 300,
          "Image": "<image content>",
          "Width": 300,
          "captureStatus": "Ok"
        }
      }
    ],
    "operation": "add"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Waiting for next operation",
  "reason": "FINGER_METHOD_WAITS_NEXT_OPERATION",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "auth_t_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "fingers": [
      "1",
      "2"
    ],
    "operation": "remove"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Waiting for next operation",
  "reason": "FINGER_METHOD_WAITS_NEXT_OPERATION",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "operation": "end"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FINGER:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - FINGER:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll with finger images

Fields description: Finger: “1” , where “1” is finger id from ids below

Finger ids:

  • ANY_FINGER = “0”

  • RIGHT_THUMB = “1”

  • LEFT_THUMB = “2”

  • RIGHT_INDEX = “3”

  • LEFT_INDEX = “4”

  • RIGHT_MIDDLE = “5”

  • LEFT_MIDDLE = “6”

  • RIGHT_RING = “7”

  • LEFT_RING = “8”

  • RIGHT_LITTLE = “9”

  • LEFT_LITTLE = “10”

Image content format:

  • BitsPerPixel, integer, bits per pixel, support only 8 bits now

  • BytesPerLine, integer, count of bytes per one row

  • Width , integer, length of row in pixels

  • Height, integer, pixel row’s count

  • Dpi, integer, is not used now

  • Image, string, base64 encoded string with bytes

  • captureStatus, string, result of capturing

Template content format:

  • ISO: string, base64 encoded string with iso content

  • captureStatus, string, result of capturing

duress_finger_index: “1”, where 1 is the finger id

Partial enrollment

To add / remove fingers to an existing template:

  1. Send request to do_enroll with finger images

Fields description: - auth_t_id: “IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H”, (required, string), ID of template - operation: “add”, (required, string), one of (add, remove, end)

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • INCORRECT_FINGERS_COUNT

  • INCORRECT_CAPTURES_COUNT_PER_FINGER

  • FINGER_METHOD_WAITS_NEXT_OPERATION

  • FINGER_NOT_IN_SPECIFIED

  • UNSUPPORTED_OPERATION

  • FINGER_MISMATCH

  • NO_READER_CONNNECTED

  • UNABLE_TO_SCAN

  • READER_NOT_SUPPORTED

  • NO_FINGER_DETECTED

  • INVALID_CONFIGURATION

  • FINGERPRINT_SERVICE_STATUS

  • NO_CAPTURE

  • MISSING_IMAGE_OR_ISO

  • 400

UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/fingerprint/capture It should return json with captured fingerprint. Device Service returns capture in ISO or image format. Type of response is depended on sensor type. So if device service returns ISO send ISO as response or image if device service returns image.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


FINGER:1 logon:

POST /api/v1/logon/do_logon
RequestsSend finger captureSend finger capture's iso template
Headers
Logon-Process-Id: oS1RB69O4jXVHI2HlIKPSdAMvSzBj9rl
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "capture": {
      "BitsPerPixel": 8,
      "BytesPerLine": 300,
      "Dpi": 500,
      "Height": 300,
      "Image": "<image content>",
      "Width": 300,
      "captureStatus": "Ok"
    }
  }
}
Responses200
Headers
Logon-Process-Id: oS1RB69O4jXVHI2HlIKPSdAMvSzBj9rl
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "FINGER_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FINGER:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "FINGER:1"
  ],
  "current_method": "FINGER:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}
Headers
Logon-Process-Id: oS1RB69O4jXVHI2HlIKPSdAMvSzBj9rl
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "capture": {
      "ISO": "<finger capture's iso template>",
      "captureStatus": "OK"
    }
  }
}
Responses200
Headers
Logon-Process-Id: oS1RB69O4jXVHI2HlIKPSdAMvSzBj9rl
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "FINGER_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FINGER:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "FINGER:1"
  ],
  "current_method": "FINGER:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}

FINGER:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Fingerprint.

Logon steps:

  1. Send to server finger capture or finger capture’s iso template

Image content format:

  • BitsPerPixel, integer, bits per pixel, support only 8 bits now

  • BytesPerLine, integer, count of bytes per one row

  • Width , integer, length of row in pixels

  • Height, integer, pixel row’s count

  • Dpi, integer, is not used now

  • Image, string, base64 encoded string with bytes

  • captureStatus, string, result of capturing

Template content format:

  • ISO: string, base64 encoded string with iso content

  • captureStatus, string, result of capturing

Error reasons:

  • INCORRECT_FINGERS_COUNT

  • INCORRECT_CAPTURES_COUNT_PER_FINGER

  • FINGER_METHOD_WAITS_NEXT_OPERATION

  • FINGER_NOT_IN_SPECIFIED

  • UNSUPPORTED_OPERATION

  • FINGER_MISMATCH

  • NO_READER_CONNNECTED

  • UNABLE_TO_SCAN

  • READER_NOT_SUPPORTED

  • NO_FINGER_DETECTED

  • INVALID_CONFIGURATION

  • FINGERPRINT_SERVICE_STATUS

  • NO_CAPTURE

  • MISSING_IMAGE_OR_ISO

  • 400

UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/fingerprint/capture It should return json with captured fingerprint. Device Service returns capture in ISO or image format. Type of response is depended on sensor type. So if device service returns ISO send ISO as response or image if device service returns image.

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - FINGER:1 logon:

POST /api/v1/logon/kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp/do_logon
RequestsSend finger captureSend finger capture's iso template
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "capture": {
      "BitsPerPixel": 8,
      "BytesPerLine": 300,
      "Dpi": 500,
      "Height": 300,
      "Image": "<image content>",
      "Width": 300,
      "captureStatus": "Ok"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "FINGER_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FINGER:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "FINGER:1"
  ],
  "current_method": "FINGER:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "capture": {
      "ISO": "<finger capture's iso template>",
      "captureStatus": "OK"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "FINGER_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "FINGER:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "FINGER:1"
  ],
  "current_method": "FINGER:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - FINGER:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

FINGER:1 logon steps:

  1. Send empty request to do_logon to ask server for nonce and X509 certificate.

  2. Send encrypted response from Client. Response contains the secret key.

  3. Send encrypted response from Client. Server finger capture or finger capture’s iso template

Image content format:

  • BitsPerPixel, integer, bits per pixel, support only 8 bits now

  • BytesPerLine, integer, count of bytes per one row

  • Width , integer, length of row in pixels

  • Height, integer, pixel row’s count

  • Dpi, integer, is not used now

  • Image, string, base64 encoded string with bytes

  • captureStatus, string, result of capturing

Template content format:

  • ISO: string, base64 encoded string with iso content

  • captureStatus, string, result of capturing

Error reasons:

  • INCORRECT_FINGERS_COUNT

  • INCORRECT_CAPTURES_COUNT_PER_FINGER

  • FINGER_METHOD_WAITS_NEXT_OPERATION

  • FINGER_NOT_IN_SPECIFIED

  • UNSUPPORTED_OPERATION

  • FINGER_MISMATCH

  • NO_READER_CONNNECTED

  • UNABLE_TO_SCAN

  • READER_NOT_SUPPORTED

  • NO_FINGER_DETECTED

  • INVALID_CONFIGURATION

  • FINGERPRINT_SERVICE_STATUS

  • NO_CAPTURE

  • MISSING_IMAGE_OR_ISO

  • 400

UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/fingerprint/capture It should return json with captured fingerprint. Device Service returns capture in ISO or image format. Type of response is depended on sensor type. So if device service returns ISO send ISO as response or image if device service returns image.

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp

ID of the logon process


FLEX_OTP:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsFLEX_OTP:1 enroll
Headers
Enroll-Process-Id: qxLs0zW0y60UUoU4qH83dL5pEKsFldQc
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Enroll-Process-Id: qxLs0zW0y60UUoU4qH83dL5pEKsFldQc
Content-Type: application/json
Body
{
  "method_id": "FLEX_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

FLEX_OTP:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new FLEX OTP authenticator for a user.

Send empty request to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

LEGACY - FLEX_OTP:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsFLEX_OTP:1 enroll
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "FLEX_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - FLEX_OTP:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send empty request to do_enroll and check status.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


FLEX_OTP:1 logon:

POST /api/v1/logon/do_logon
RequestsSimple FLEX OTP password doLogon
Headers
Logon-Process-Id: ca821HhQho7iAfdpt1mL9PhnKjSc0G9M
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Logon-Process-Id: ca821HhQho7iAfdpt1mL9PhnKjSc0G9M
Content-Type: application/json
Body
{
    "chains": [
    {
        "apply_for_ep_owner": false,
        "grace_period": null,
        "id_hex": null,
        "image_name": "ANY.png",
        "is_enabled": true,
        "is_trusted": null,
        "methods": [
        "ANY"
        ],
        "name": "TEST CHAIN",
        "position": 1000,
        "required_chain_id_hex": null,
        "short_name": ""
    }
    ],
    "completed_methods": [
        "FLEX_OTP:1"
    ],
    "current_method": "FLEX_OTP:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "",
    "login_session_id": "9QHUl8xbBNo4PUO6UXYzbHltNaMmNpSL",
    "logon_process_id": "f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
    "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
    "status": "OK",
    "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
    "user_name": "LOCAL\ADMIN"
}

FLEX_OTP:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Flex OTP.

Logon steps:

  1. Send otp-password to do logon and check status.

Error reasons:

  • FLEX_OTP_WRONG_OTP

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - FLEX_OTP:1 logon:

POST /api/v1/logon/f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ/do_logon
RequestsSimple FLEX OTP password doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "FLEX_OTP:1"
  ],
  "current_method": "FLEX_OTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "9QHUl8xbBNo4PUO6UXYzbHltNaMmNpSL",
  "logon_process_id": "f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - FLEX_OTP:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

FLEX_OTP:1 logon steps:

  1. Send otp-password to do_logon and check status

Error reasons:

  • FLEX_OTP_WRONG_OTP
URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ

ID of the logon process


HANIS:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request
Headers
Enroll-Process-Id: HHsbS5Zv8i3XuyfqxCOeAB9VMti4vQvG
Content-Type: application/json
Body
{
    "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
    "response": {
        "id_number": "1234567812345",  // (optional, if missed ID/Passport number from repository will be used)
        "mobile_phone": "+123456789"   // (optional, if missed phone number from repository will be used)
    }
}
Responses200
Headers
Enroll-Process-Id: HHsbS5Zv8i3XuyfqxCOeAB9VMti4vQvG
Content-Type: application/json
Body
{
  "method_id": "HANIS:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

HANIS:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new HANIS authenticator for a user.

Send request to do enroll and check status.

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • HANIS_MISSING_PARAMETERS

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - HANIS:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "id_number": "1234567812345",  // (optional, if missed ID/Passport number from repository will be used)
    "mobile_phone": "+123456789"   // (optional, if missed phone number from repository will be used)
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "HANIS:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - HANIS:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll and check status.

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • HANIS_MISSING_PARAMETERS

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


HANIS:1 logon:

POST /api/v1/logon/do_logon
RequestsSend fingerprint image
Headers
Logon-Process-Id: 0cNwgnMAeL8V05MEfRtCcofV8QXY3RL2
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "bio_wsq": "<base64-encoded image>"
  }
}
Responses200
Headers
Logon-Process-Id: 0cNwgnMAeL8V05MEfRtCcofV8QXY3RL2
Content-Type: application/json
Body
{
    "chains": [
        {
            "apply_for_ep_owner": false,
            "grace_period": null,
            "id_hex": "42b312980c8911e69140080027983191",
            "image_name": "HANIS_1.png",
            "is_enabled": true,
            "is_trusted": null,
            "methods": [
                "HANIS:1"
            ],
            "name": "Test-chain",
            "position": 0,
            "required_chain_id_hex": null,
            "short_name": ""
        }
    ],
    "completed_methods": [
        "HANIS:1"
    ],
    "current_method": "HANIS:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "TEST",
    "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
    "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "42987aa00c8911e69140080027983191",
    "repo_obj_id": "42a3962e0c8911e69140080027983191",
    "status": "OK",
    "user_id": "3a76753d7f931751c79fa05d80eb058e",
    "user_name": "LOCAL\USER1"
}

HANIS:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the HANIS.

Logon steps:

  1. Send base64-encoded fingerprint image in WSQ format

Error reasons:

  • HANIS_BIOMETRIC_VALIDATION_FAILED

  • HANIS_LIVENESS_DETECTION_FAILED

  • HANIS_GOLDEN_SOURCE_MISMATCH

  • HANIS_MISSING_INFORMATION

  • HANIS_CRITICAL

  • HANIS_POOR_IMAGE_QUALITY

  • HANIS_INVALID_IMAGE_FORMAT

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - HANIS:1 logon:

POST /api/v1/logon/T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv/do_logon
RequestsSend fingerprint image
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "bio_wsq": "<base64-encoded image>"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "42b312980c8911e69140080027983191",
      "image_name": "HANIS_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "HANIS:1"
      ],
      "name": "Test-chain",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "HANIS:1"
  ],
  "current_method": "HANIS:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "TEST",
  "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "42987aa00c8911e69140080027983191",
  "repo_obj_id": "42a3962e0c8911e69140080027983191",
  "status": "OK",
  "user_id": "3a76753d7f931751c79fa05d80eb058e",
  "user_name": "LOCAL\USER1"
}

LEGACY - HANIS:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

HANIS:1 logon steps:

  1. Send base64-encoded fingerprint image in WSQ format

Error reasons:

  • HANIS_BIOMETRIC_VALIDATION_FAILED

  • HANIS_LIVENESS_DETECTION_FAILED

  • HANIS_GOLDEN_SOURCE_MISMATCH

  • HANIS_MISSING_INFORMATION

  • HANIS_CRITICAL

  • HANIS_POOR_IMAGE_QUALITY

  • HANIS_INVALID_IMAGE_FORMAT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv

ID of the logon process


HANIS:1 method call:

POST /api/v1/logon_method/HANIS:1
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
        "endpoint_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9", // (trusted endpoint required)
        "user_name": "REPO\USER1",
        "id_number": "1234567812345",
        "mobile_phone": "+123456789",
        "bio_wsq": "<base64-encoded image>"
    }
Responses200
Headers
Content-Type: application/json
Body
{
  "result_code": {
    "name": "Success",
    "id": 0
  }
}

HANIS:1 method call:
POST/api/v1/logon_method/HANIS:1

Call the HANIS logon method to get the result code.

Method steps:

  1. Verify user fingerprint

HANIS_FACE:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request
Headers
Enroll-Process-Id: ZUQYBXlObXRLCzz9mLxmRfKotnqkNOi3
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "id_number": "1234567812345",
    "mobile_phone": "+123456789"
  }
}
Responses200
Headers
Enroll-Process-Id: ZUQYBXlObXRLCzz9mLxmRfKotnqkNOi3
Content-Type: application/json
Body
{
  "method_id": "HANIS_FACE:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

HANIS_FACE:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new HANIS FACE authenticator for a user.

Send request to do enroll and check status.

Error reasons:

  • HANIS_MISSING_PARAMETERS

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - HANIS_FACE:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "id_number": "1234567812345",
    "mobile_phone": "+123456789"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "HANIS_FACE:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - HANIS_FACE:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll and check status.

Error reasons:

  • HANIS_MISSING_PARAMETERS
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


HANIS_FACE:1 logon:

POST /api/v1/logon/do_logon
RequestsSend fingerprint image
Headers
Logon-Process-Id: fq4Qh9uYsnSuwYLzLPm9atbNFc21M0Ve
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "face_img": "<base64-encoded image>"
  }
}
Responses200
Headers
Logon-Process-Id: fq4Qh9uYsnSuwYLzLPm9atbNFc21M0Ve
Content-Type: application/json
Body
{
"chains": [
    {
    "apply_for_ep_owner": false,
    "grace_period": null,
    "id_hex": "42b312980c8911e69140080027983191",
    "image_name": "HANIS_FACE_1.png",
    "is_enabled": true,
    "is_trusted": null,
    "methods": [
        "HANIS_FACE:1"
    ],
    "name": "Test-chain",
    "position": 0,
    "required_chain_id_hex": null,
    "short_name": ""
    }
],
"completed_methods": [
    "HANIS_FACE:1"
],
    "current_method": "HANIS_FACE:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "TEST",
    "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
    "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "42987aa00c8911e69140080027983191",
    "repo_obj_id": "42a3962e0c8911e69140080027983191",
    "status": "OK",
    "user_id": "3a76753d7f931751c79fa05d80eb058e",
    "user_name": "LOCAL\USER1"
}

HANIS_FACE:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the HANIS FACE.

Logon steps:

  1. Send base64-encoded face image in PNG format

Error reasons:

  • HANIS_BIOMETRIC_VALIDATION_FAILED

  • HANIS_LIVENESS_DETECTION_FAILED

  • HANIS_GOLDEN_SOURCE_MISMATCH

  • HANIS_MISSING_INFORMATION

  • HANIS_CRITICAL

  • HANIS_POOR_IMAGE_QUALITY

  • HANIS_INVALID_IMAGE_FORMAT

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - HANIS_FACE:1 logon:

POST /api/v1/logon/T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv/do_logon
RequestsSend fingerprint image
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "face_img": "<base64-encoded image>"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "42b312980c8911e69140080027983191",
      "image_name": "HANIS_FACE_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "HANIS_FACE:1"
      ],
      "name": "Test-chain",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "HANIS_FACE:1"
  ],
  "current_method": "HANIS_FACE:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "TEST",
  "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "42987aa00c8911e69140080027983191",
  "repo_obj_id": "42a3962e0c8911e69140080027983191",
  "status": "OK",
  "user_id": "3a76753d7f931751c79fa05d80eb058e",
  "user_name": "LOCAL\USER1"
}

LEGACY - HANIS_FACE:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

HANIS_FACE:1 logon steps:

  1. Send base64-encoded face image in PNG format

Error reasons:

  • HANIS_BIOMETRIC_VALIDATION_FAILED

  • HANIS_LIVENESS_DETECTION_FAILED

  • HANIS_GOLDEN_SOURCE_MISMATCH

  • HANIS_MISSING_INFORMATION

  • HANIS_CRITICAL

  • HANIS_POOR_IMAGE_QUALITY

  • HANIS_INVALID_IMAGE_FORMAT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv

ID of the logon process


HANIS_FACE:1 method call:

POST /api/v1/logon_method/HANIS_FACE:1
Requests1. Submit selfie image2. Submit another one selfie image for liveness proving, use session "jwt_token"
Headers
Content-Type: application/json
Body
{
    "endpoint_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9", // (trusted endpoint required)
    "user_name": "REPO\USER1",
    "id_number": "1234567812345",
    "mobile_phone": "+123456789",
    "face_img": "<base64-encoded image>"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "result_code": {
    "name": "Liveness Detection Failed!",
    "id": 45
  },
  "response_object": {
    "jwt_token": "<token>"
  }
}
Headers
Content-Type: application/json
Body
{
        "endpoint_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9", // (trusted endpoint required)
        "user_name": "REPO\USER1",
        "id_number": "1234567812345",
        "mobile_phone": "+123456789",
        "face_img": "<base64-encoded image>",
        "jwt_token": "<token>"
    }
Responses200
Headers
Content-Type: application/json
Body
{
  "result_code": {
    "name": "Success",
    "id": 0
  }
}

HANIS_FACE:1 method call:
POST/api/v1/logon_method/HANIS_FACE:1

Call the HANIS FACE logon method to get the result code.

HANIS_FACE:1 method steps:

  1. Submit user selfie image

  2. Repeat in case of liveness detection failures

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • face_img: string (required*)

    • The image of the face. It should be a based64 encoded image.
  • id_number: string (required*)

    • The ID.
  • mobile_phone: string (required*)

    • The phone number.
  • user_name: string (required*)

    • The name of the user.
  • jwt_token: string (optional)

    • The jwt token.

HOTP:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request with secret and counterCorrect request with 3 hotps
Headers
Enroll-Process-Id: 0IMYsZ5bX7bvU7fFcsrnGlq0KR7cerIR
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "counter": 10,
    "secret": "0000000000000100"
  }
}
Responses200
Headers
Enroll-Process-Id: 0IMYsZ5bX7bvU7fFcsrnGlq0KR7cerIR
Content-Type: application/json
Body
{
  "method_id": "HOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Enroll-Process-Id: 0IMYsZ5bX7bvU7fFcsrnGlq0KR7cerIR
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "hotp1": "472265",
    "hotp2": "194708",
    "hotp3": "468067",
    "serial": "987654321"
  }
}
Responses200
Headers
Enroll-Process-Id: 0IMYsZ5bX7bvU7fFcsrnGlq0KR7cerIR
Content-Type: application/json
Body
{
  "method_id": "HOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

HOTP:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new BANKID authenticator for a user.

Send request with token serial (or secret) and 3 hotps (or counter) to do enroll and check status.

Remember user device (smartphone etc.) HOTP secret and algoritm parameters.

HOTP auth_template is shared secret and starting counter.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • counter: integer (optional)

    • The monotonically increasing integer value that’s used as part of the OTP generation algorithm. Either counter or 3 hotps must be specified.
  • hotp1, hotp2, hotp3 : string (optional)

    • The consecutive OTP password. Either counter or 3 hotps must be specified.
  • secret: string (optional)

    • The shared secret between the authentication device and the server. Either serial or secret must be specified.
  • serial: string (optional)

    • The unique identifier or secret key used by both the user’s device and the server to generate OTP. Either serial or secret must be specified.
  • hash: string (optional)

    • The hash that one of hashlib.algorithms_guaranteed.
  • token_public_id: string (optional)

    • The Yubikey tokens can be configured to insert their public ID before OTP.

LEGACY - HOTP:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request with secret and counterCorrect request with 3 hotps
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "counter": 10,
    "secret": "0000000000000100"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "HOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "hotp1": "472265",
    "hotp2": "194708",
    "hotp3": "468067",
    "serial": "987654321"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "HOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - HOTP:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with token serial (or secret) and 3 hotps (or counter) to do_enroll and check status.

Remember user device (smartphone etc.) HOTP secret and algoritm parameters

HOTP auth_template is shared secret and starting counter

Request fields:

  • serial, string, optional

  • secret, hex string, optional, either serial or secret must be specified

  • hotp1, hotp2, hotp3, consecutive otp password, optional

  • counter, integer, optional, either counter or 3 hotps must be specified

  • hash, optional, one of hashlib.algorithms_guaranteed

  • token_public_id, optional, Yubikey tokens can be configured to insert their public ID before OTP

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


HOTP:1 logon:

POST /api/v1/logon/do_logon
RequestsSimple HOTP password doLogon
Headers
Logon-Process-Id: 9mmxrNizAZoiduFpTI5zpjqAjeZSl5yA
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Logon-Process-Id: 9mmxrNizAZoiduFpTI5zpjqAjeZSl5yA
Content-Type: application/json
Body
{
"chains": [
    {
        "apply_for_ep_owner": false,
        "grace_period": null,
        "id_hex": null,
        "image_name": "ANY.png",
        "is_enabled": true,
        "is_trusted": null,
        "methods": [
            "ANY"
        ],
        "name": "TEST CHAIN",
        "position": 1000,
        "required_chain_id_hex": null,
        "short_name": ""
        }
    ],
    "completed_methods": [
        "HOTP:1"
    ],
    "current_method": "HOTP:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "",
    "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
    "logon_process_id": "fae8kchtfY2p2t3W0OWrCS3UHu3nf6eM",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
    "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
    "status": "OK",
    "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
    "user_name": "LOCAL\ADMIN"
}

HOTP:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the HOTP.

Logon steps:

  1. Send otp-password to do logon and check status.

Error reasons:

  • HOTP_PASSWORD_WRONG

  • HOTP_PASSWORD_UNDEFINED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - HOTP:1 logon:

POST /api/v1/logon/fae8kchtfY2p2t3W0OWrCS3UHu3nf6eM/do_logon
RequestsSimple HOTP password doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "HOTP:1"
  ],
  "current_method": "HOTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "iCFCUvGVK9zlDQtWa018UWKUwuNHEYcn",
  "logon_process_id": "fae8kchtfY2p2t3W0OWrCS3UHu3nf6eM",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - HOTP:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

HOTP:1 logon steps:

  1. Send otp-password to do_logon and check status

Error reasons:

  • HOTP_PASSWORD_WRONG

  • HOTP_PASSWORD_UNDEFINED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: fae8kchtfY2p2t3W0OWrCS3UHu3nf6eM

ID of the logon process


LDAP_PASSWORD:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsLDAP_PASSWORD:1 enrollLDAP_PASSWORD:1 password change
Headers
Enroll-Process-Id: hdbWlZ0EGc0g1uYeBNaHZtdsbXh4kwlP
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Enroll-Process-Id: hdbWlZ0EGc0g1uYeBNaHZtdsbXh4kwlP
Content-Type: application/json
Body
{
  "method_id": "LDAP_PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Enroll-Process-Id: hdbWlZ0EGc0g1uYeBNaHZtdsbXh4kwlP
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "answer": "old password",
    "confirmation": "new password",
    "new_password": "new password"
  }
}
Responses200
Headers
Enroll-Process-Id: hdbWlZ0EGc0g1uYeBNaHZtdsbXh4kwlP
Content-Type: application/json
Body
{
  "method_id": "LDAP_PASSWORD:1",
  "msg": "Welcome",
  "reason": "",
  "status": "OK"
}

LDAP_PASSWORD:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new LDAP password authenticator for a user.

Send empty request to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

LEGACY - LDAP_PASSWORD:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsLDAP_PASSWORD:1 enrollLDAP_PASSWORD:1 password change
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "LDAP_PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "answer": "old password",
    "confirmation": "new password",
    "new_password": "new password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "LDAP_PASSWORD:1",
  "msg": "Welcome",
  "reason": "",
  "status": "OK"
}

LEGACY - LDAP_PASSWORD:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send empty request to do_enroll and check status.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


LDAP_PASSWORD:1 logon:

POST /api/v1/logon/do_logon
RequestsSimple ldap password doLogon
Headers
Logon-Process-Id: sC235rsoKcMsMVF1dMESmyzQhNA6WHuo
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-ldap-password"
  }
}
Responses200
Headers
Logon-Process-Id: sC235rsoKcMsMVF1dMESmyzQhNA6WHuo
Content-Type: application/json
Body
{
    "chains": [
        {
            "apply_for_ep_owner": false,
            "grace_period": null,
            "id_hex": null,
            "image_name": "ANY.png",
            "is_enabled": true,
            "is_trusted": null,
            "methods": [
            "ANY"
            ],
            "name": "TEST CHAIN",
            "position": 1000,
            "required_chain_id_hex": null,
            "short_name": ""
        }
    ],
    "completed_methods": [
        "LDAP_PASSWORD:1"
    ],
    "current_method": "LDAP_PASSWORD:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "",
    "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
    "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "3c9c1fd8061e11e6b224080027983191",
    "repo_obj_id": "3caa08a0061e11e6b224080027983191",
    "status": "OK",
    "user_id": "4f34e2882991440ddd0fd515e0d0236c",
    "user_name": "LOCAL\ADMIN"
}

LDAP_PASSWORD:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the LDAP password.

Logon steps:

  1. Send password to do logon and check status.

Error reasons:

  • LDAP_PASSWORD_UNDEFINED

  • LDAP_PASSWORD_WRONG

  • LDAP_PASSWORD_ACCOUNT_RESTRICTION

  • LDAP_PASSWORD_INVALID_LOGON_HOURS

  • LDAP_PASSWORD_INVALID_WORKSTATION

  • LDAP_PASSWORD_ACCOUNT_DISABLED

  • LDAP_PASSWORD_TOO_MANY_CONTEXT_IDS

  • LDAP_PASSWORD_ACCOUNT_EXPIRED

  • LDAP_PASSWORD_MUST_CHANGE

  • LDAP_PASSWORD_ACCOUNT_LOCKED_OUT

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - LDAP_PASSWORD:1 logon:

POST /api/v1/logon/jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9/do_logon
RequestsSimple ldap password doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-ldap-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "LDAP_PASSWORD:1"
  ],
  "current_method": "LDAP_PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - LDAP_PASSWORD:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

LDAP_PASSWORD:1 logon steps:

  1. Send password to do_logon and check status

Error reasons:

  • LDAP_PASSWORD_UNDEFINED

  • LDAP_PASSWORD_WRONG

  • LDAP_PASSWORD_ACCOUNT_RESTRICTION

  • LDAP_PASSWORD_INVALID_LOGON_HOURS

  • LDAP_PASSWORD_INVALID_WORKSTATION

  • LDAP_PASSWORD_ACCOUNT_DISABLED

  • LDAP_PASSWORD_TOO_MANY_CONTEXT_IDS

  • LDAP_PASSWORD_ACCOUNT_EXPIRED

  • LDAP_PASSWORD_MUST_CHANGE

  • LDAP_PASSWORD_ACCOUNT_LOCKED_OUT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9

ID of the logon process


NEMID:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request
Headers
Enroll-Process-Id: 9eAvmdxzdfpmttQCoS1LxW0kYydD0Gxy
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "ssn_number": "0711904713"
  }
}
Responses200
Headers
Enroll-Process-Id: 9eAvmdxzdfpmttQCoS1LxW0kYydD0Gxy
Content-Type: application/json
Body
{
  "method_id": "NEMID:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

NEMID:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new NemID authenticator for a user.

Send request to do enroll and check status.

Error reasons:

  • NEMID_MISSING_PARAMETERS

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - NEMID:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "ssn_number": "0711904713"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "NEMID:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - NEMID:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll and check status.

Error reasons:

  • NEMID_MISSING_PARAMETERS
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


NEMID:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for a NemID applet parameters2. Send the applet result XMLDSig token to validate
Headers
Logon-Process-Id: QKwPisEEFlWhOs4DPpvP9rBiEkW5NXEJ
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {}
}
Responses200
Headers
Logon-Process-Id: QKwPisEEFlWhOs4DPpvP9rBiEkW5NXEJ
Content-Type: application/json
Body
{
    "applet_origin": "https://applet.danid.dk",
    "chains": [
        {
            "image_name": "default",
            "is_enabled": true,
            "is_trusted": "None",
            "methods": [
                "NEMID:1"
            ],
            "name": "NemID-chain",
            "position": 0,
            "short_name": ""
        }
    ],
    "completed_methods": [],
    "current_method": "NEMID:1",
    "event_data_id": "",
    "event_name": "TEST",
    "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
    "msg": "Waiting for an authentication token",
    "nemid_parameters": {...},  // json to initialize NemID applet.
    "plugins": [],
    "reason": "NEMID_WAITING_AUTH_TOKEN",
    "status": "MORE_DATA"
}
Headers
Logon-Process-Id: QKwPisEEFlWhOs4DPpvP9rBiEkW5NXEJ
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "nemid_response": "<base64-encoded XMLDsig>"
  }
}
Responses200
Headers
Logon-Process-Id: QKwPisEEFlWhOs4DPpvP9rBiEkW5NXEJ
Content-Type: application/json
Body
{
    "chains": [
        {
            "image_name": "default",
            "is_enabled": true,
            "is_trusted": "None",
            "methods": [
            "NEMID:1"
            ],
            "name": "NemID-chain",
            "position": 0,
            "short_name": ""
        }
    ],
    "completed_methods": [
        "NEMID:1"
    ],
    "current_method": "NEMID:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "TEST",
    "login_session_id": "DirIO8s41TbT1lm7Dh5BNfK6gRTHhXTl",
    "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
    "msg": "Welcome",
    "plugins": [],
    "repo_id": "6104a6c5424b11e5b7ebdc85de0b0889",
    "repo_obj_id": "6104a6ce424b11e5b7ebdc85de0b0889",
    "status": "OK",
    "user_id": "6104a6cf424b11e5b7ebdc85de0b0889",
    "user_name": "LOCAL\ADMIN"
}

NEMID:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the NemID.

Logon steps:

  1. Ask server for a NemID applet parameters by sending empty request to do logon.
  2. Initialize applet with the given parameters and send the result XMLDSig token to do logon and check status.

Error reasons:

  • NEMID_WAITING_AUTH_TOKEN

  • NEMID_VALIDATION_FAILED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - NEMID:1 logon:

POST /api/v1/logon/T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv/do_logon
Requests1. Ask server for a NemID applet parameters2. Send the applet result XMLDSig token to validate
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {}
}
Responses200
Headers
Content-Type: application/json
Body
{
  "applet_origin": "https://applet.danid.dk",
  "chains": [
    {
      "image_name": "default",
      "is_enabled": true,
      "is_trusted": "None",
      "methods": [
        "NEMID:1"
      ],
      "name": "NemID-chain",
      "position": 0,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "NEMID:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Waiting for an authentication token",
  "nemid_parameters": {...},  // json to initialize NemID applet.
  "plugins": [],
  "reason": "NEMID_WAITING_AUTH_TOKEN",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "nemid_response": "<base64-encoded XMLDsig>"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "image_name": "default",
      "is_enabled": true,
      "is_trusted": "None",
      "methods": [
        "NEMID:1"
      ],
      "name": "NemID-chain",
      "position": 0,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "NEMID:1"
  ],
  "current_method": "NEMID:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "TEST",
  "login_session_id": "DirIO8s41TbT1lm7Dh5BNfK6gRTHhXTl",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Welcome",
  "plugins": [],
  "repo_id": "6104a6c5424b11e5b7ebdc85de0b0889",
  "repo_obj_id": "6104a6ce424b11e5b7ebdc85de0b0889",
  "status": "OK",
  "user_id": "6104a6cf424b11e5b7ebdc85de0b0889",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - NEMID:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

NEMID:1 logon steps:

  1. Ask server for a NemID applet parameters by sending empty request to do_logon

  2. Initialize applet with the given parameters and send the result XMLDSig token to do_logon and check status

Error reasons:

  • NEMID_WAITING_AUTH_TOKEN

  • NEMID_VALIDATION_FAILED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv

ID of the logon process


OAUTH2:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsOAUTH2:1 enroll
Headers
Enroll-Process-Id: y5kQblVDNAj8hGW5a0ifNMStOp0AHLez
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Enroll-Process-Id: y5kQblVDNAj8hGW5a0ifNMStOp0AHLez
Content-Type: application/json
Body
{
  "method_id": "OAUTH2:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

OAUTH2:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new OAUTH2 authenticator for a user.

Send empty request to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

LEGACY - OAUTH2:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsOAUTH2:1 enroll
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "OAUTH2:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - OAUTH2:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send empty request to do_enroll and check status.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


OAUTH2:1 logon:

POST /api/v1/logon/do_logon
RequestsOAuth2 access token doLogon
Headers
Logon-Process-Id: TSt83Qmm8AKO6uxLNLSKTtsVwMhOCcfN
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "access_token": "access_token_value"
  }
}
Responses200
Headers
Logon-Process-Id: TSt83Qmm8AKO6uxLNLSKTtsVwMhOCcfN
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "OAUTH2:1"
  ],
  "current_method": "OAUTH2:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}

OAUTH2:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the OAUTH2.

Logon steps:

  1. Send access token to do logon and check status.

Error reasons:

  • OAUTH2_WRONG_TOKEN

  • INACTIVE_TOKEN

  • WRONG_USER

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - OAUTH2:1 logon:

POST /api/v1/logon/TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS/do_logon
RequestsOAuth2 access token doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "access_token": "access_token_value"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "OAUTH2:1"
  ],
  "current_method": "OAUTH2:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - OAUTH2:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

OAUTH2:1 logon steps:

  1. Send access token to do_logon and check status

Error reasons:

  • OAUTH2_WRONG_TOKEN

  • INACTIVE_TOKEN

  • WRONG_USER

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS

ID of the logon process


OOB:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsOOB:1 enroll
Headers
Enroll-Process-Id: 1BROtUpt9vMmXW8ycBE17gl1PkH92WqE
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Enroll-Process-Id: 1BROtUpt9vMmXW8ycBE17gl1PkH92WqE
Content-Type: application/json
Body
{
  "method_id": "OOB:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

OOB:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new Out-of-Band authenticator for a user.

The method supports auto-enroll, explicit do enroll is not required

Enroll steps:

  1. Send empty request to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.

LEGACY - OOB:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsOOB:1 enroll
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "OOB:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - OOB:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

The method supports auto-enroll, explicit do_enroll is not required

OOB:1 enroll steps:

  1. Send empty request to do_enroll and check status
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


OOB:1 logon:

POST /api/v1/logon/do_logon
Requests1. Begin OOB logon, send empty request2. Periodically send empty request and check logon status2. When logon is rejected/expired, response.status is "STOP" or "FAILED"
Headers
Logon-Process-Id: NqL6YHJylGjyu8yH4LcP7gOVXdzGRNsp
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: NqL6YHJylGjyu8yH4LcP7gOVXdzGRNsp
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "OOB:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "OOB:1",
  "event_data_id": "",
  "event_name": "Office workstations",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "OOB:1",
  "msg": "Please continue at https://server/oob/ui",
  "plugins": [],
  "reason": "",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: NqL6YHJylGjyu8yH4LcP7gOVXdzGRNsp
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: NqL6YHJylGjyu8yH4LcP7gOVXdzGRNsp
Body
{
    "chains": [
        {}
    ],
    "completed_methods": [
        "OOB:1"
    ],
    "current_method": "OOB:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "Office workstations",
    "login_session_id": "qeDTAoC66hrMIl28xfnfeGbUpNn8nJXR",
    "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
    "method_id": "OOB:1",
    "msg": "Welcome",
    "msgid": "AUCORE-2053",
    "plugins": [],
    "repo_id": "8c4749d20c7111e69e17080027983191",
    "repo_obj_id": "8c4d1b500c7111e69e17080027983191",
    "status": "OK",
    "user_id": "187e62bd172488bea921e47ea2be0e7e",
    "user_name": "LOCAL\user1"
}
Headers
Logon-Process-Id: NqL6YHJylGjyu8yH4LcP7gOVXdzGRNsp
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: NqL6YHJylGjyu8yH4LcP7gOVXdzGRNsp
Body
{
  "chains": [
    {}
  ],
  "completed_methods": [],
  "current_method": "OOB:1",
  "event_name": "Office workstations",
  "login_session_id": "qeDTAoC66hrMIl28xfnfeGbUpNn8nJXR",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "OOB:1",
  "msg": "OOB Authentication has been rejected",
  "repo_obj_id": "8c4d1b500c7111e69e17080027983191",
  "status": "STOP",
  "user_id": "187e62bd172488bea921e47ea2be0e7e"
}

OOB:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Out-of-Band.

Error reasons:

  • OOB_LOGON_REJECTED

  • OOB_LOGON_EXPIRED_NOT_FOUND

Request Body Parameters

  • endpoint_session_id: string (required*)
    • The ID of the endpoint session.

LEGACY - OOB:1 logon:

POST /api/v1/logon/6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n/do_logon
Requests1. Begin OOB logon, send empty request2. Periodically send empty request and check logon status2. When logon is rejected/expired, response.status is "STOP" or "FAILED"
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "OOB:1"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "OOB:1",
  "event_data_id": "",
  "event_name": "Office workstations",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "OOB:1",
  "msg": "Please continue at https://server/oob/ui",
  "plugins": [],
  "reason": "",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Body
{
  "chains": [
    {}
  ],
  "completed_methods": [
    "OOB:1"
  ],
  "current_method": "OOB:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "Office workstations",
  "login_session_id": "qeDTAoC66hrMIl28xfnfeGbUpNn8nJXR",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "OOB:1",
  "msg": "Welcome",
  "msgid": "AUCORE-2053",
  "plugins": [],
  "repo_id": "8c4749d20c7111e69e17080027983191",
  "repo_obj_id": "8c4d1b500c7111e69e17080027983191",
  "status": "OK",
  "user_id": "187e62bd172488bea921e47ea2be0e7e",
  "user_name": "LOCAL\user1"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Body
{
  "chains": [
    {}
  ],
  "completed_methods": [],
  "current_method": "OOB:1",
  "event_name": "Office workstations",
  "login_session_id": "qeDTAoC66hrMIl28xfnfeGbUpNn8nJXR",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "OOB:1",
  "msg": "OOB Authentication has been rejected",
  "repo_obj_id": "8c4d1b500c7111e69e17080027983191",
  "status": "STOP",
  "user_id": "187e62bd172488bea921e47ea2be0e7e"
}

LEGACY - OOB:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Error reasons:

  • OOB_LOGON_REJECTED

  • OOB_LOGON_EXPIRED_NOT_FOUND

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: 6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n

ID of the logon process


PASSWORD:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect requestEnable Password Must Be Changed
Headers
Enroll-Process-Id: tn7aul51JzrMQJRhrw6YgSVhaWIuEd4G
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "super_password"
  }
}
Responses200
Headers
Enroll-Process-Id: tn7aul51JzrMQJRhrw6YgSVhaWIuEd4G
Content-Type: application/json
Body
{
  "method_id": "PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Enroll-Process-Id: tn7aul51JzrMQJRhrw6YgSVhaWIuEd4G
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "temporary-password",
    "password_must_be_changed": true
  }
}
Responses200
Headers
Enroll-Process-Id: tn7aul51JzrMQJRhrw6YgSVhaWIuEd4G
Content-Type: application/json
Body
{
  "method_id": "PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

PASSWORD:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new password authenticator for a user.

Send request with password to do enroll and check status.

Error reasons:

  • PASSWORD_BAD_CONFIRMATION

  • PASSWORD_EMPTY

  • PASSWORD_UNCHANGED

  • PASSWORD_TOO_SHORT

  • PASSWORD_TOO_SIMPLE

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - PASSWORD:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect requestEnable Password Must Be Changed
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "super_password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "password": "temporary-password",
    "password_must_be_changed": true
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "PASSWORD:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - PASSWORD:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with password to do_enroll and check status.

Error reasons:

  • PASSWORD_BAD_CONFIRMATION

  • PASSWORD_EMPTY

  • PASSWORD_UNCHANGED

  • PASSWORD_TOO_SHORT

  • PASSWORD_TOO_SIMPLE

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


PASSWORD:1 logon:

POST /api/v1/logon/do_logon
RequestsSimple virtual password doLogonPassword Must Be ChangedChange Password
Headers
Logon-Process-Id: fZCjJVFREdU5F3J7JUdAUKMzZ0ZvdgxV
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password"
  }
}
Responses200
Headers
Logon-Process-Id: fZCjJVFREdU5F3J7JUdAUKMzZ0ZvdgxV
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}
Headers
Logon-Process-Id: fZCjJVFREdU5F3J7JUdAUKMzZ0ZvdgxV
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password"
  }
}
Responses200
Headers
Logon-Process-Id: fZCjJVFREdU5F3J7JUdAUKMzZ0ZvdgxV
Content-Type: application/json
Body
{
  "completed_methods": [],
  "logon_process_id": "c9Ns7R2gQNDpUEWfwlTEV8kMmN0oiBZY",
  "method_id": "PASSWORD:1",
  "result": {
    "linked_logon": false,
    "msg": "Password must be changed",
    "plugins": [],
    "reason": "PASSWORD_MUST_BE_CHANGED",
    "status": "MORE_DATA"
  }
}
Headers
Logon-Process-Id: fZCjJVFREdU5F3J7JUdAUKMzZ0ZvdgxV
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password",
    "confirmation": "my-new-password",
    "new_password": "my-new-password"
  }
}
Responses200
Headers
Logon-Process-Id: fZCjJVFREdU5F3J7JUdAUKMzZ0ZvdgxV
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}

PASSWORD:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the password.

Logon steps:

  1. Send password to do logon and check status.

Error reasons:

  • PASSWORD_UNDEFINED

  • PASSWORD_WRONG

  • PASSWORD_EXPIRED

  • PASSWORD_MUST_BE_CHANGED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - PASSWORD:1 logon:

POST /api/v1/logon/TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS/do_logon
RequestsSimple virtual password doLogonPassword Must Be ChangedChange Password
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "completed_methods": [],
  "logon_process_id": "c9Ns7R2gQNDpUEWfwlTEV8kMmN0oiBZY",
  "method_id": "PASSWORD:1",
  "result": {
    "linked_logon": false,
    "msg": "Password must be changed",
    "plugins": [],
    "reason": "PASSWORD_MUST_BE_CHANGED",
    "status": "MORE_DATA"
  }
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-password",
    "confirmation": "my-new-password",
    "new_password": "my-new-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "PASSWORD:1"
  ],
  "current_method": "PASSWORD:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - PASSWORD:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

PASSWORD:1 logon steps:

  1. Send password to do_logon and check status

Error reasons:

  • PASSWORD_UNDEFINED

  • PASSWORD_WRONG

  • PASSWORD_EXPIRED

  • PASSWORD_MUST_BE_CHANGED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS

ID of the logon process


PKI:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsStore either a public key in modulus+exponent format or a certificate in DER format
Headers
Content-Type: application/json
Enroll-Process-Id: WZx1PO6fzNQbUIUlmjY1t7Fj0cOB2xFl
Body
{
  "response": {
    "card_uid": "1",
    "modulus": "bd77dc79a02acda19a9ec6099cd4a........0da58c9ef04a1e2655aac84f23",
    "card_cert": null,
    "exponent": "10001"
  },
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "msgid": "AUCORE-3001",
  "reason": "",
  "msg": "Enrollment is complete",
  "status": "OK",
  "method_id": "PKI:1"
}

PKI:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new BANKID authenticator for a user.

Send request with a public key in modulus+exponent format or a certificate in DER format to do enroll and check status.

Error reasons:

  • PKI_CERT_VALIDATION_FAILED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - PKI:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsStore either a public key in modulus+exponent format or a certificate in DER format
Headers
Content-Type: application/json
Body
{
  "response": {
    "card_uid": "1",
    "modulus": "bd77dc79a02acda19a9ec6099cd4a........0da58c9ef04a1e2655aac84f23",
    "card_cert": null,
    "exponent": "10001"
  },
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "msgid": "AUCORE-3001",
  "reason": "",
  "msg": "Enrollment is complete",
  "status": "OK",
  "method_id": "PKI:1"
}

LEGACY - PKI:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with a public key in modulus+exponent format or a certificate in DER format to do_enroll and check status.

Error reasons:

  • PKI_CERT_VALIDATION_FAILED
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


PKI:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for a challenge2. Sign the given challenge on card or token
Headers
Content-Type: application/json
Logon-Process-Id: ENdQTVmj2ZQMtbCFXSgOneXlgxELdTN6
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {}
}
Responses200
Headers
Content-Type: application/json
Body
{
    "chains": [{
        "image_name": "default",
        "is_enabled": True,
        "is_trusted": None,
        "methods": ["PKI:1"],
        "name": "Test-chain",
        "position": 0,
        "short_name": ""
    }],
    "completed_methods": [],
    "current_method": "PKI:1",
    "event_data_id": "",
    "event_name": "TEST",
    "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
    "msg": "Waiting for an authentication signature",
    "plugins": [],
    "challenge": "f81e9d6882aca80cbe97e291ee5771aba7cc13facb3c79a5ae924e788bc4f7d2",
    "keypair_id": "6f4712e554544ac3",
    "subject": "76b3af3dd66649e896b56b51d46cfe93037a793c961ca35586c485d130375e2f",
    "reason": "PKI_WAITING_AUTH_SIGN",
    "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Logon-Process-Id: ENdQTVmj2ZQMtbCFXSgOneXlgxELdTN6
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "signature": "58ad84f3a9b7244031aa55c0d....42d123bdb715a153974e992b16d022",
    "padding": "PKCS#1",
    "hash": "SHA1"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
    "repo_obj_id": "6104a6ce424b11e5b7ebdc85de0b0889",
    "repo_id": "6104a6c5424b11e5b7ebdc85de0b0889",
    "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
    "status": "OK",
    "plugins": [],
    "msg": "Welcome",
    "current_method": "PKI:1",
    "completed_methods": ["PKI:1"],
    "chains": [{
        "methods": ["ANY"],
        "image_name": "default",
        "short_name": "",
        "position": 1000,
        "is_enabled": true,
        "is_trusted": null,
        "name": "TEST CHAIN"
    }],
    "event_data_id": "",
    "user_id": "6104a6cf424b11e5b7ebdc85de0b0889",
    "user_name": "LOCAL\ADMIN",
    "login_session_id": "DirIO8s41TbT1lm7Dh5BNfK6gRTHhXTl",
    "data_id": "",
    "event_name": "TEST"
}

PKI:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the PKI.

Logon steps:

  1. Ask server for a challenge by sending empty request to do logon.
  2. Sign the given challenge on card or token and send it to do logon and check status.

Error reasons:

  • PKI_WAITING_AUTH_SIGN

  • PKI_SIGN_VERIFICATION_FAILED

  • PKI_CERT_VALIDATION_FAILED

  • PKI_WRONG_CARD

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - PKI:1 logon:

POST /api/v1/logon/kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp/do_logon
Requests1. Ask server for a challenge2. Sign the given challenge on card or token
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {}
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [{
    "image_name": "default",
    "is_enabled": True,
    "is_trusted": None,
    "methods": ["PKI:1"],
    "name": "Test-chain",
    "position": 0,
    "short_name": ""
  }],
  "completed_methods": [],
  "current_method": "PKI:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "msg": "Waiting for an authentication signature",
  "plugins": [],
  "challenge": "f81e9d6882aca80cbe97e291ee5771aba7cc13facb3c79a5ae924e788bc4f7d2",
  "keypair_id": "6f4712e554544ac3",
  "subject": "76b3af3dd66649e896b56b51d46cfe93037a793c961ca35586c485d130375e2f",
  "reason": "PKI_WAITING_AUTH_SIGN",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
        endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
        "response": {"signature": "58ad84f3a9b7244031aa55c0d....42d123bdb715a153974e992b16d022",
            "padding": "PKCS#1", "hash": "SHA1"}
    }
Responses200
Headers
Content-Type: application/json
Body
{
  "repo_obj_id": "6104a6ce424b11e5b7ebdc85de0b0889",
  "repo_id": "6104a6c5424b11e5b7ebdc85de0b0889",
  "logon_process_id": "kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp",
  "status": "OK",
  "plugins": [],
  "msg": "Welcome",
  "current_method": "PKI:1",
  "completed_methods": ["PKI:1"],
  "chains": [{
    "methods": ["ANY"],
    "image_name": "default",
    "short_name": "",
    "position": 1000,
    "is_enabled": true,
    "is_trusted": null,
    "name": "TEST CHAIN"
  }],
  "event_data_id": "",
  "user_id": "6104a6cf424b11e5b7ebdc85de0b0889",
  "user_name": "LOCAL\ADMIN",
  "login_session_id": "DirIO8s41TbT1lm7Dh5BNfK6gRTHhXTl",
  "data_id": "",
  "event_name": "TEST"
}

LEGACY - PKI:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

PKI:1 logon steps:

  1. Ask server for a challenge by sending empty request to do_logon

  2. Sign the given challenge on card or token and send it to do_logon and check status

Error reasons:

  • PKI_WAITING_AUTH_SIGN

  • PKI_SIGN_VERIFICATION_FAILED

  • PKI_CERT_VALIDATION_FAILED

  • PKI_WRONG_CARD

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: kytfmodEy4QmcMKgEb9cuGpLpNv9ooYp

ID of the logon process


RADIUS:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsRADIUS enroll
Headers
Enroll-Process-Id: RMHFmz5feIlmxI6lLGIwOzXfmB2uuShm
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "user_name": "user_name",
    "send_reponame": "repository_name\peter",
  }
}
Responses200
Headers
Enroll-Process-Id: RMHFmz5feIlmxI6lLGIwOzXfmB2uuShm
Content-Type: application/json
Body
{
  "method_id": "RADIUS:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

RADIUS:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new RADIUS authenticator for a user.

Send request with fields below to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - RADIUS:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsRADIUS enroll
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "RADIUS:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - RADIUS:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with fields below to do_enroll and check status.

Request fields:

  • user_name (optional) - send to RADIUS instead of user.user_name

  • send_reponame (optional) - send repository_name\peter, not just peter

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


RADIUS:1 logon:

POST /api/v1/logon/do_logon
RequestsRADIUS password doLogonRADIUS logon with expired password
Headers
Logon-Process-Id: TZL0emXTOLOjqdWt3NAdbIM25IAUq0hM
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-radius-password"
  }
}
Responses200
Headers
Logon-Process-Id: TZL0emXTOLOjqdWt3NAdbIM25IAUq0hM
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "RADIUS:1"
  ],
  "current_method": "RADIUS:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}
Headers
Logon-Process-Id: TZL0emXTOLOjqdWt3NAdbIM25IAUq0hM
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-radius-password-was-expired"
  }
}
Responses200
Headers
Logon-Process-Id: TZL0emXTOLOjqdWt3NAdbIM25IAUq0hM
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "RADIUS:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "RADIUS:1",
  "plugins": [],
  "reply_message": "Your password was expired. Please enter new password",
  "status": "MORE_DATA"
}

RADIUS:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the RADIUS.

Logon steps:

  1. Send password to do logon and check status.

Error reasons:

  • RADIUS_WRONG_PASSWORD

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - RADIUS:1 logon:

POST /api/v1/logon/TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS/do_logon
RequestsRADIUS password doLogonRADIUS logon with expired password
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-radius-password"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "RADIUS:1"
  ],
  "current_method": "RADIUS:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "TmPxkC98vF4FGhDvqedjXItbmGjVJYTD",
  "logon_process_id": "jImh3267QFyZ9pXjSGPj5EIhpKKU8Xu9",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_obj_id": "3caa08a0061e11e6b224080027983191",
  "status": "OK",
  "user_id": "4f34e2882991440ddd0fd515e0d0236c",
  "user_name": "LOCAL\ADMIN"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "my-radius-password-was-expired"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "RADIUS:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "RADIUS:1",
  "plugins": [],
  "reply_message": "Your password was expired. Please enter new password",
  "status": "MORE_DATA"
}

LEGACY - RADIUS:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

RADIUS:1 logon steps:

  1. Send password to do_logon and check status

Error reasons:

  • RADIUS_WRONG_PASSWORD
URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: TTPeglOJxUZ3R8IV3e5vwUgUQACs8fBS

ID of the logon process


SECQUEST:1 enroll:

POST /api/v1/enroll/do_enroll
Requests1. Get questions2. Send answers
Headers
Enroll-Process-Id: UJAYdu4cJDeW02SdjkgLNhVq56p41zeo
Content-Type: application/json
Body
{
  "login_session_id": "ySHjXQyPAH1dIXYeq3arbMQd7wyP3mMm"
}
Responses200
Headers
Enroll-Process-Id: UJAYdu4cJDeW02SdjkgLNhVq56p41zeo
Content-Type: application/json
Body
{
  "method_id": "SECQUEST:1",
  "msg": "Waiting for the answers...",
  "msgid": "AUCORE-2046",
  "questions": {
    "0": "question #0",
    "1": "question #1",
    "2": "question #2",
    "3": "question #3",
    "4": "question #4",
    "5": "question #5",
    "6": "question #6",
    "7": "question #7",
    "8": "question #8",
    "9": "question #9"
  },
  "reason": "SECQUEST_WAITING_ANSWERS",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: UJAYdu4cJDeW02SdjkgLNhVq56p41zeo
Content-Type: application/json
Body
{
  "login_session_id": "ySHjXQyPAH1dIXYeq3arbMQd7wyP3mMm",
  "response": {
    "answers": {
      "0": "answer #0",
      "1": "answer #1",
      "2": "answer #2",
      "3": "answer #3",
      "4": "answer #4",
      "5": "answer #5",
      "6": "answer #6",
      "7": "answer #7",
      "8": "answer #8",
      "9": "answer #9"
    }
  }
}
Responses200
Headers
Enroll-Process-Id: UJAYdu4cJDeW02SdjkgLNhVq56p41zeo
Content-Type: application/json
Body
{
  "method_id": "SECQUEST:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

SECQUEST:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new SecQuest authenticator for a user.

Enroll steps:

  1. Send empty request to do enroll to receive questions.
  2. Send answers to do enroll and check status.

Error reasons:

  • SECQUEST_WAITING_ANSWERS

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - SECQUEST:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requests1. Get questions2. Send answers
Headers
Content-Type: application/json
Body
{
  "login_session_id": "ySHjXQyPAH1dIXYeq3arbMQd7wyP3mMm"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SECQUEST:1",
  "msg": "Waiting for the answers...",
  "msgid": "AUCORE-2046",
  "questions": {
    "0": "question #0",
    "1": "question #1",
    "2": "question #2",
    "3": "question #3",
    "4": "question #4",
    "5": "question #5",
    "6": "question #6",
    "7": "question #7",
    "8": "question #8",
    "9": "question #9"
  },
  "reason": "SECQUEST_WAITING_ANSWERS",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "ySHjXQyPAH1dIXYeq3arbMQd7wyP3mMm",
  "response": {
    "answers": {
      "0": "answer #0",
      "1": "answer #1",
      "2": "answer #2",
      "3": "answer #3",
      "4": "answer #4",
      "5": "answer #5",
      "6": "answer #6",
      "7": "answer #7",
      "8": "answer #8",
      "9": "answer #9"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SECQUEST:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - SECQUEST:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

SECQUEST:1 enroll steps:

  1. Send empty request to do_enroll to receive questions

  2. Send answers to do_enroll and check status.

Error reasons:

  • SECQUEST_WAITING_ANSWERS
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


SECQUEST:1 logon:

POST /api/v1/logon/do_logon
Requests1. Get questions from service2. Send answers
Headers
Logon-Process-Id: hkKml6xBVqHd5cqE3rje9XiZdKiMYp6U
Content-Type: application/json
Body
{
  "endpoint_session_id": "peSWzJrCY3BH10TaP6nRrZiQy8ahauIt"
}
Responses200
Headers
Logon-Process-Id: hkKml6xBVqHd5cqE3rje9XiZdKiMYp6U
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "SECQUEST:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "2rMurbLwdVVmL4MZYnaJQdh1RWV7ekDx",
  "method_id": "SECQUEST:1",
  "msg": "Waiting for the answers...",
  "msgid": "AUCORE-2046",
  "plugins": [],
  "questions": {
    "1": "question #1",
    "2": "question #2",
    "3": "question #3",
    "4": "question #4",
    "7": "question #7"
  },
  "reason": "SECQUEST_WAITING_ANSWERS",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: hkKml6xBVqHd5cqE3rje9XiZdKiMYp6U
Content-Type: application/json
Body
{
  "endpoint_session_id": "peSWzJrCY3BH10TaP6nRrZiQy8ahauIt",
  "response": {
    "answers": {
      "1": "answer #1",
      "2": "answer #2",
      "3": "answer #3",
      "4": "answer #4",
      "7": "answer #7"
    }
  }
}
Responses200
Headers
Logon-Process-Id: hkKml6xBVqHd5cqE3rje9XiZdKiMYp6U
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "SECQUEST:1"
  ],
  "current_method": "SECQUEST:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "doB7cTIWcAaE5tAIar6VnPPnKKf5wHdN",
  "logon_process_id": "2rMurbLwdVVmL4MZYnaJQdh1RWV7ekDx",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "46dac56a0c7411e687c1080027983191",
  "repo_obj_id": "46dfef2c0c7411e687c1080027983191",
  "status": "OK",
  "user_id": "bdb2b894ce176333bf70a35f1f961126",
  "user_name": "LOCAL\ADMIN"
}

SECQUEST:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the SecQuest.

Logon steps:

  1. Send empty request to do logon to receive questions.
  2. Send answers to do logon and check status.

Error reasons:

  • SECQUEST_WRONG_ANSWERS

  • SECQUEST_WAITING_ANSWERS

  • SECQUEST_INCORRECT_ANSWER_SET

  • SECQUEST_QUESTIONS_FIRST

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (optional)

    • Please see the examples.

LEGACY - SECQUEST:1 logon:

POST /api/v1/logon/2rMurbLwdVVmL4MZYnaJQdh1RWV7ekDx/do_logon
Requests1. Get questions from service2. Send answers
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "peSWzJrCY3BH10TaP6nRrZiQy8ahauIt"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "SECQUEST:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "2rMurbLwdVVmL4MZYnaJQdh1RWV7ekDx",
  "method_id": "SECQUEST:1",
  "msg": "Waiting for the answers...",
  "msgid": "AUCORE-2046",
  "plugins": [],
  "questions": {
    "1": "question #1",
    "2": "question #2",
    "3": "question #3",
    "4": "question #4",
    "7": "question #7"
  },
  "reason": "SECQUEST_WAITING_ANSWERS",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "peSWzJrCY3BH10TaP6nRrZiQy8ahauIt",
  "response": {
    "answers": {
      "1": "answer #1",
      "2": "answer #2",
      "3": "answer #3",
      "4": "answer #4",
      "7": "answer #7"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "SECQUEST:1"
  ],
  "current_method": "SECQUEST:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "doB7cTIWcAaE5tAIar6VnPPnKKf5wHdN",
  "logon_process_id": "2rMurbLwdVVmL4MZYnaJQdh1RWV7ekDx",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "46dac56a0c7411e687c1080027983191",
  "repo_obj_id": "46dfef2c0c7411e687c1080027983191",
  "status": "OK",
  "user_id": "bdb2b894ce176333bf70a35f1f961126",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - SECQUEST:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

SECQUEST:1 logon steps:

  1. Send empty request to do_logon to receive questions

  2. Send answers to do_logon and check status

Error reasons:

  • SECQUEST_WRONG_ANSWERS

  • SECQUEST_WAITING_ANSWERS

  • SECQUEST_INCORRECT_ANSWER_SET

  • SECQUEST_QUESTIONS_FIRST

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: 2rMurbLwdVVmL4MZYnaJQdh1RWV7ekDx

ID of the logon process


CARD:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsSmartcard enroll
Headers
Content-Type: application/json
Enroll-Process-Id: lY4YSZZFG4YcVQBDuHYdchXuqVBuSQ3B
Body
{
  "response": {
    "card_cert": "308205243082040ca..................a5883aa073b4588",
    "card_uid": "0e62f260aa610be177ba6c5d052ef002"
  },
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "CARD:1",
  "status": "OK",
  "reason": "",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001"
}

CARD:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new card authenticator for a user.

Store card UID and validate card certificate (for PKI-cards).

Now only support contactless cards (UID).

Send request with card certificate and card uid to do enroll and check status.

Error reasons:

  • MISSING_UID

  • UID_NOT_HEX

  • PKI_MIGRATION_NOT_PERMITTED

  • VALIDATION_FAILED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - CARD:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsSmartcard enroll
Headers
Content-Type: application/json
Body
{
  "response": {
    "card_cert": "308205243082040ca..................a5883aa073b4588",
    "card_uid": "0e62f260aa610be177ba6c5d052ef002"
  },
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "CARD:1",
  "status": "OK",
  "reason": "",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001"
}

LEGACY - CARD:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: Store card UID and validate card certificate (for PKI-cards)

Now only support contactless cards (UID).

Send request with card certificate and card uid to do_enroll and check status.

Error reasons:

  • MISSING_UID

  • UID_NOT_HEX

  • PKI_MIGRATION_NOT_PERMITTED

  • VALIDATION_FAILED

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


CARD:1 logon:

POST /api/v1/logon/do_logon
RequestsSend Smartcard UID and card certificate
Headers
Content-Type: application/json
Logon-Process-Id: qQRa5Uep2Yrfo7b4288EgXYEIidQjlAz
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ",
  "response": {
    "card_uid": "0e62f260aa610be177ba6c5d052ef002",
    "card_cert": "308205243082040ca003...64a5883aa073b4588"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
    "plugins": [],
    "msg": "Welcome",
    "status": "OK",
    "logon_process_id": "R94moMSOwAekT28PMCbSnuK8UJq0AxlP",
    "event_name": "TEST",
    "chains": [
        {
        "short_name": "",
        "apply_for_ep_owner": false,
        "image_name": "CARD_1.png",
        "grace_period": null,
        "methods": ["CARD:1"],
        "position": 0,
        "id_hex": "54e35a080c8a11e6b5cd080027983191",
        "is_trusted": null,
        "name": "Test-chain",
        "required_chain_id_hex": null,
        "is_enabled": true
        }
    ],
    "event_data_id": "",
    "repo_id": "54d11b360c8a11e6b5cd080027983191",
    "user_id": "ba94bcf442f0c148fc6a049c9470d1dd",
    "completed_methods": ["CARD:1"],
    "repo_obj_id": "54d6890e0c8a11e6b5cd080027983191",
    "login_session_id": "htNJc4zJq0DvtMR3jxqQXRzDKqdSB7vu",
    "data_id": "",
    "current_method": "CARD:1",
    "msgid": "AUCORE-2001",
    "user_name": "LOCAL\USER1"
}

CARD:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the card.

Logon steps:

  1. Send empty request to do_logon to ask server for nonce and X509 certificate.
  2. Send encrypted response from Client. Response contains the secret key.
  3. Send encrypted response from Client. Send Smartcard UID and card certificate (for PKI-cards) to do logon and check status.

Note: Currently only supports contactless cards (UID) and certificate-based (PKI) cards. This method supports 1-N logon, you can define card UID in ‘unit_id’ parameter instead of user_name. Yes, you send card_uid twice. Second one is needed for not 1-N logon scenarios, card AP is not first method of the chain.

Non 1-N logon is also supported.

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • UID_NOT_HEX

  • INCORRECT_CARD

  • CERT_VALIDATION_ERROR

  • MISSING_CERT

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - CARD:1 logon:

POST /api/v1/logon/R94moMSOwAekT28PMCbSnuK8UJq0AxlP/do_logon
RequestsSend Smartcard UID and card certificate
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ",
  "response": {
    "card_uid": "0e62f260aa610be177ba6c5d052ef002",
    "card_cert": "308205243082040ca003...64a5883aa073b4588"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
      "plugins": [],
      "msg": "Welcome",
      "status": "OK",
      "logon_process_id": "R94moMSOwAekT28PMCbSnuK8UJq0AxlP",
      "event_name": "TEST",
      "chains": [
        {
          "short_name": "",
          "apply_for_ep_owner": false,
          "image_name": "CARD_1.png",
          "grace_period": null,
          "methods": ["CARD:1"],
          "position": 0,
          "id_hex": "54e35a080c8a11e6b5cd080027983191",
          "is_trusted": null,
          "name": "Test-chain",
          "required_chain_id_hex": null,
          "is_enabled": true
        }
      ],
      "event_data_id": "",
      "repo_id": "54d11b360c8a11e6b5cd080027983191",
      "user_id": "ba94bcf442f0c148fc6a049c9470d1dd",
      "completed_methods": ["CARD:1"],
      "repo_obj_id": "54d6890e0c8a11e6b5cd080027983191",
      "login_session_id": "htNJc4zJq0DvtMR3jxqQXRzDKqdSB7vu",
      "data_id": "",
      "current_method": "CARD:1",
      "msgid": "AUCORE-2001",
      "user_name": "LOCAL\USER1"
    }

LEGACY - CARD:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

CARD:1 logon steps:

  1. Send Smartcard UID and card certificate (for PKI-cards) to do_logon and check status

Currently only supports contactless cards (UID) and certificate-based (PKI) cards. This method supports 1-N logon, you can define card UID in ‘unit_id’ parameter instead of user_name. Yes, you send card_uid twice. Second one is needed for not 1-N logon scenarios, card AP is not first method of the chain. Non 1-N logon is also supported.

Error reasons:

  • WAITING_SECRET_KEY

  • WAITING_DATA

  • INVALID_VERSION

  • NONCE_DOES_NOT_MATCH

  • ENCRYPTION_FAILURE

  • INVALID_STATE Error reasons:

  • UID_NOT_HEX

  • INCORRECT_CARD

  • CERT_VALIDATION_ERROR

  • MISSING_CERT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: R94moMSOwAekT28PMCbSnuK8UJq0AxlP

ID of the logon process


SMARTPHONE:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsGet QR to enroll - Default vendorGet QR to enroll - Custom vendorFinish enroll after phone actions
Headers
Enroll-Process-Id: qwKHGeOqszkn7szIW4P0cSFD6w3aMlD1
Content-Type: application/json
Body
{
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk",
  "vendor": "SOME (optional, string) - Name of vendor of custom mobile app"
}
Responses200
Headers
Enroll-Process-Id: qwKHGeOqszkn7szIW4P0cSFD6w3aMlD1
Content-Type: application/json
Body
{
  "method_id": "SMARTPHONE:1",
  "msg": "Scan this QR code with the smartphone application",
  "msgid": "AUCORE-3003",
  "qrdata": "OOBDATAJgBFHPokfqPOxbVzvKrj61GcZDkHeYd0AWYT9x3qQ0ihO9rRktvpqmnyPdlP5efN/FgLhl5D03bU9NJ6OwnxfODK9p5VHXpKqRYfKJhS/hSL7E4weFC4iGP1M1a9DTKfiRN4/A6XprEbkAQceOZMGDdkzmsh7dUus+0owd3FwBnG7jkkfCAQ1rSeI5P1HFMuPsBCdOUFRbMv3Ju8kXLIQRNrHiotksOCtF2vh1ALN3S4fXoPfpC8Nu13uV3ZU7vU+RL5FuexRktRm3dnoDnT1WrTerDXGVRn3T6Ghlg9UkyxswtW1Ipu8N+7OWIT/4PlQ62mj1xGG2otpPE6qCpWPg==",
  "reason": "SMARTPHONE_SCAN_QR",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: qwKHGeOqszkn7szIW4P0cSFD6w3aMlD1
Content-Type: application/json
Body
{
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk",
  "response": {
    "vendor": "SOME"
  }
}
Responses200
Headers
Enroll-Process-Id: qwKHGeOqszkn7szIW4P0cSFD6w3aMlD1
Content-Type: application/json
Body
{
  "method_id": "SMARTPHONE:1",
  "msg": "Scan this QR code with the smartphone application",
  "msgid": "AUCORE-3003",
  "qrdata": "OOBDATAJgBFHPokfqPOxbVzvKrj61GcZDkHeYd0AWYT9x3qQ0ihO9rRktvpqmnyPdlP5efN/FgLhl5D03bU9NJ6OwnxfODK9p5VHXpKqRYfKJhS/hSL7E4weFC4iGP1M1a9DTKfiRN4/A6XprEbkAQceOZMGDdkzmsh7dUus+0owd3FwBnG7jkkfCAQ1rSeI5P1HFMuPsBCdOUFRbMv3Ju8kXLIQRNrHiotksOCtF2vh1ALN3S4fXoPfpC8Nu13uV3ZU7vU+RL5FuexRktRm3dnoDnT1WrTerDXGVRn3T6Ghlg9UkyxswtW1Ipu8N+7OWIT/4PlQ62mj1xGG2otpPE6qCpWPg==",
  "reason": "SMARTPHONE_SCAN_QR",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: qwKHGeOqszkn7szIW4P0cSFD6w3aMlD1
Content-Type: application/json
Body
{
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk"
}
Responses200
Headers
Enroll-Process-Id: qwKHGeOqszkn7szIW4P0cSFD6w3aMlD1
Content-Type: application/json
Body
{
  "method_id": "SMARTPHONE:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

SMARTPHONE:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new smartphone app authenticator for a user.

Enroll steps:

  1. Send empty request do enroll to get QA code and check status. User should scan this QR code by application.

  2. To check status of enroll application should send empty request to do enroll until status will not change for failed or successful.

Error reasons:

  • SMARTPHONE_ENROLL_TIMEOUT

  • SMARTPHONE_WAITING_DATA

  • SMARTPHONE_SCAN_QR

  • SMARTPHONE_WRONG_V4_TEMPLATE

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • vendor: string (optional)

    • The name of vendor of custom mobile app
  • response: dict (optional)

    • Please see the examples.

LEGACY - SMARTPHONE:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsGet QR to enroll - Default vendorGet QR to enroll - Custom vendorFinish enroll after phone actions
Headers
Content-Type: application/json
Body
{
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk",
  "vendor": "SOME (optional, string) - Name of vendor of custom mobile app"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SMARTPHONE:1",
  "msg": "Scan this QR code with the smartphone application",
  "msgid": "AUCORE-3003",
  "qrdata": "OOBDATAJgBFHPokfqPOxbVzvKrj61GcZDkHeYd0AWYT9x3qQ0ihO9rRktvpqmnyPdlP5efN/FgLhl5D03bU9NJ6OwnxfODK9p5VHXpKqRYfKJhS/hSL7E4weFC4iGP1M1a9DTKfiRN4/A6XprEbkAQceOZMGDdkzmsh7dUus+0owd3FwBnG7jkkfCAQ1rSeI5P1HFMuPsBCdOUFRbMv3Ju8kXLIQRNrHiotksOCtF2vh1ALN3S4fXoPfpC8Nu13uV3ZU7vU+RL5FuexRktRm3dnoDnT1WrTerDXGVRn3T6Ghlg9UkyxswtW1Ipu8N+7OWIT/4PlQ62mj1xGG2otpPE6qCpWPg==",
  "reason": "SMARTPHONE_SCAN_QR",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk",
  "response": {
    "vendor": "SOME"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SMARTPHONE:1",
  "msg": "Scan this QR code with the smartphone application",
  "msgid": "AUCORE-3003",
  "qrdata": "OOBDATAJgBFHPokfqPOxbVzvKrj61GcZDkHeYd0AWYT9x3qQ0ihO9rRktvpqmnyPdlP5efN/FgLhl5D03bU9NJ6OwnxfODK9p5VHXpKqRYfKJhS/hSL7E4weFC4iGP1M1a9DTKfiRN4/A6XprEbkAQceOZMGDdkzmsh7dUus+0owd3FwBnG7jkkfCAQ1rSeI5P1HFMuPsBCdOUFRbMv3Ju8kXLIQRNrHiotksOCtF2vh1ALN3S4fXoPfpC8Nu13uV3ZU7vU+RL5FuexRktRm3dnoDnT1WrTerDXGVRn3T6Ghlg9UkyxswtW1Ipu8N+7OWIT/4PlQ62mj1xGG2otpPE6qCpWPg==",
  "reason": "SMARTPHONE_SCAN_QR",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "KOYxcRUuuZxDsEhxiycof4XwcuI2lbwk"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SMARTPHONE:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - SMARTPHONE:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

SMARTPHONE:1 enroll steps:

  1. Send empty request do_enroll to get QA code and check status. User should scan this QR code by application.

  2. To check status of enroll application should send empty request to do_enroll until status will not change for failed or successful.

Error reasons:

  • SMARTPHONE_ENROLL_TIMEOUT

  • SMARTPHONE_WAITING_DATA

  • SMARTPHONE_SCAN_QR

  • SMARTPHONE_WRONG_V4_TEMPLATE

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process

vendor
string (optional) Example: SOME

Name of vendor of custom mobile app


SMARTPHONE:1 logon online:

POST /api/v1/logon/do_logon
Requests1. Send push message to smartphone2a. Finish logon successfully2b. Finish logon failed
Headers
Logon-Process-Id: j0NK0ZFoPrkrlKJ18zQTOh7gEraxwMK1
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: j0NK0ZFoPrkrlKJ18zQTOh7gEraxwMK1
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "SMARTPHONE:1",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "SMARTPHONE:1",
  "msg": "Waiting for the smartphone data...",
  "msgid": "AUCORE-2056",
  "plugins": [],
  "reason": "SMARTPHONE_WAITING_DATA",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: j0NK0ZFoPrkrlKJ18zQTOh7gEraxwMK1
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: j0NK0ZFoPrkrlKJ18zQTOh7gEraxwMK1
Content-Type: application/json
Body
{
    "chains": [],
    "completed_methods": [
        "SMARTPHONE:1"
    ],
    "current_method": "SMARTPHONE:1",
    "login_session_id": "qeDTAoC66hrMIl28xfnfeGbUpNn8nJXR",
    "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
    "method_id": "SMARTPHONE:1",
    "msg": "Authentication is accepted",
    "msgid": "AUCORE-2053",
    "plugins": [],
    "repo_id": "8c4749d20c7111e69e17080027983191",
    "repo_obj_id": "8c4d1b500c7111e69e17080027983191",
    "status": "OK",
    "user_id": "187e62bd172488bea921e47ea2be0e7e",
    "user_name": "LOCAL\AG"
}
Headers
Logon-Process-Id: j0NK0ZFoPrkrlKJ18zQTOh7gEraxwMK1
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Logon-Process-Id: j0NK0ZFoPrkrlKJ18zQTOh7gEraxwMK1
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "SMARTPHONE:1",
  "logon_process_id": "3VXhH6liboHcD35uweditS3MGoLJxQVo",
  "method_id": "SMARTPHONE:1",
  "msg": "Auth rejected",
  "msgid": "AUCORE-2054",
  "plugins": [],
  "reason": "SMARTPHONE_AUTH_REJECTED",
  "status": "FAILED"
}

SMARTPHONE:1 logon online:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Smartphone app while online.

Online mode logon steps:

  1. Send empty request to do logon to send push notification to smartphone. User should receive push message, and they can approve or reject it.
  2. To check status of logon application should send empty request to do logon until status will not change for failed or successful.

Error reasons:

  • SMARTPHONE_SAME_TOTP

  • SMARTPHONE_WRONG_TOTP

  • SMARTPHONE_AUTH_CONFIRM_TIMEOUT

  • SMARTPHONE_AUTH_REJECTED

  • SMARTPHONE_LOGON_IN_PROGRESS

  • SMARTPHONE_WAITING_DATA

  • SMARTPHONE_NO_LOCATION

  • SMARTPHONE_INCORRECT_LOCATION

  • SMARTPHONE_TOTP_LOGON_DISABLED

Request Body Parameters

  • endpoint_session_id: string (required*)
    • The ID of the endpoint session.

LEGACY - SMARTPHONE:1 logon online:

POST /api/v1/logon/6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n/do_logon
Requests1. Send push message to smartphone2a. Finish logon successfully2b. Finish logon failed
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "SMARTPHONE:1",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "SMARTPHONE:1",
  "msg": "Waiting for the smartphone data...",
  "msgid": "AUCORE-2056",
  "plugins": [],
  "reason": "SMARTPHONE_WAITING_DATA",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "SMARTPHONE:1"
  ],
  "current_method": "SMARTPHONE:1",
  "login_session_id": "qeDTAoC66hrMIl28xfnfeGbUpNn8nJXR",
  "logon_process_id": "6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n",
  "method_id": "SMARTPHONE:1",
  "msg": "Authentication is accepted",
  "msgid": "AUCORE-2053",
  "plugins": [],
  "repo_id": "8c4749d20c7111e69e17080027983191",
  "repo_obj_id": "8c4d1b500c7111e69e17080027983191",
  "status": "OK",
  "user_id": "187e62bd172488bea921e47ea2be0e7e",
  "user_name": "LOCAL\AG"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "MDG133vYLaZIBuSvHFF5LfZtSApQHkaQ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "SMARTPHONE:1",
  "logon_process_id": "3VXhH6liboHcD35uweditS3MGoLJxQVo",
  "method_id": "SMARTPHONE:1",
  "msg": "Auth rejected",
  "msgid": "AUCORE-2054",
  "plugins": [],
  "reason": "SMARTPHONE_AUTH_REJECTED",
  "status": "FAILED"
}

LEGACY - SMARTPHONE:1 logon online:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

SMARTPHONE:1 Online mode logon steps:

  1. Send empty request to do_logon to send push notification to smartphone. User should receive push message, and they can approve or reject it.

  2. To check status of logon application should send empty request to do_logon until status will not change for failed or successful.

Error reasons:

  • SMARTPHONE_SAME_TOTP

  • SMARTPHONE_WRONG_TOTP

  • SMARTPHONE_AUTH_CONFIRM_TIMEOUT

  • SMARTPHONE_AUTH_REJECTED

  • SMARTPHONE_LOGON_IN_PROGRESS

  • SMARTPHONE_WAITING_DATA

  • SMARTPHONE_NO_LOCATION

  • SMARTPHONE_INCORRECT_LOCATION

  • SMARTPHONE_TOTP_LOGON_DISABLED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: 6MwzQQ2AKGtTW0q0q2VEQ3tIs0Y6Py0n

ID of the logon process


SMARTPHONE:1 logon offline:

POST /api/v1/logon/do_logon
RequestsEnter TOTP-password from smartphoneLogon failed
Headers
Logon-Process-Id: 8BWlg7ANVtMNlsnF2f9FfnprfKtbTBKQ
Content-Type: application/json
Body
{
  "endpoint_session_id": "oxBLoOk1WyIvAcuUv5xIENMgSoya1K0j",
  "response": {
    "totp": "053226"
  }
}
Responses200
Headers
Logon-Process-Id: 8BWlg7ANVtMNlsnF2f9FfnprfKtbTBKQ
Content-Type: application/json
Body
{
    "chains": [],
    "completed_methods": [
        "SMARTPHONE:1"
    ],
    "current_method": "SMARTPHONE:1",
    "data_id": "",
    "event_data_id": "",
    "event_name": "",
    "login_session_id": "sUne8w7x4E2VMifobJcxxoobdudkq9Sp",
    "logon_process_id": "X7F93FOgKJVoVBg7kgRgdTtc0UKAN2Tm",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "bf6508400c7111e69e17080027983191",
    "repo_obj_id": "bf6d48340c7111e69e17080027983191",
    "status": "OK",
    "user_id": "0524d36a32ced8ac9044fb62f79f60e5",
    "user_name": "LOCAL\AG"
}
Headers
Logon-Process-Id: 8BWlg7ANVtMNlsnF2f9FfnprfKtbTBKQ
Content-Type: application/json
Body
{
  "endpoint_session_id": "oxBLoOk1WyIvAcuUv5xIENMgSoya1K0j",
  "response": {
    "totp": "053229"
  }
}
Responses200
Headers
Logon-Process-Id: 8BWlg7ANVtMNlsnF2f9FfnprfKtbTBKQ
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "SMARTPHONE:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "nJERAkt5172RyPdJWuenkyjZHVKG2NR0",
  "msg": "Wrong TOTP password",
  "msgid": "AUCORE-2028",
  "plugins": [],
  "reason": "SMARTPHONE_WRONG_TOTP",
  "status": "FAILED"
}

SMARTPHONE:1 logon offline:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the smartphone app while offline.

Offline mode logon steps:

  1. Send request with totp password from smartphone to do logon and check status.

Error reasons:

  • SMARTPHONE_SAME_TOTP

  • SMARTPHONE_WRONG_TOTP

  • SMARTPHONE_AUTH_CONFIRM_TIMEOUT

  • SMARTPHONE_AUTH_REJECTED

  • SMARTPHONE_LOGON_IN_PROGRESS

  • SMARTPHONE_WAITING_DATA

  • SMARTPHONE_NO_LOCATION

  • SMARTPHONE_INCORRECT_LOCATION

  • SMARTPHONE_TOTP_LOGON_DISABLED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - SMARTPHONE:1 logon offline:

POST /api/v1/logon/X7F93FOgKJVoVBg7kgRgdTtc0UKAN2Tm/do_logon
RequestsEnter TOTP-password from smartphoneLogon failed
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "oxBLoOk1WyIvAcuUv5xIENMgSoya1K0j",
  "response": {
    "totp": "053226"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "SMARTPHONE:1"
  ],
  "current_method": "SMARTPHONE:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "sUne8w7x4E2VMifobJcxxoobdudkq9Sp",
  "logon_process_id": "X7F93FOgKJVoVBg7kgRgdTtc0UKAN2Tm",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "bf6508400c7111e69e17080027983191",
  "repo_obj_id": "bf6d48340c7111e69e17080027983191",
  "status": "OK",
  "user_id": "0524d36a32ced8ac9044fb62f79f60e5",
  "user_name": "LOCAL\AG"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "oxBLoOk1WyIvAcuUv5xIENMgSoya1K0j",
  "response": {
    "totp": "053229"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "SMARTPHONE:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "nJERAkt5172RyPdJWuenkyjZHVKG2NR0",
  "msg": "Wrong TOTP password",
  "msgid": "AUCORE-2028",
  "plugins": [],
  "reason": "SMARTPHONE_WRONG_TOTP",
  "status": "FAILED"
}

LEGACY - SMARTPHONE:1 logon offline:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

SMARTPHONE:1 Offline mode logon steps:

  1. Send request with totp password from smartphone to do_logon and check status

Error reasons:

  • SMARTPHONE_SAME_TOTP

  • SMARTPHONE_WRONG_TOTP

  • SMARTPHONE_AUTH_CONFIRM_TIMEOUT

  • SMARTPHONE_AUTH_REJECTED

  • SMARTPHONE_LOGON_IN_PROGRESS

  • SMARTPHONE_WAITING_DATA

  • SMARTPHONE_NO_LOCATION

  • SMARTPHONE_INCORRECT_LOCATION

  • SMARTPHONE_TOTP_LOGON_DISABLED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: X7F93FOgKJVoVBg7kgRgdTtc0UKAN2Tm

ID of the logon process


SMS_OTP:1 enroll:

POST /api/v1/enroll/do_enroll
Requests1. Start enroll2. Verify phone number
Headers
Enroll-Process-Id: 1hmKcdnokWXGpGn79GuN4I738k9vAgnF
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "mobile_phone": "+12345678901"  // (optional, if missed phone from repository will be used)
  }
}
Responses200
Headers
Enroll-Process-Id: 1hmKcdnokWXGpGn79GuN4I738k9vAgnF
Content-Type: application/json
Body
{
  "method_id": "SMS_OTP:1",
  "msg": "Verification code was just sent to +1*******901",
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: 1hmKcdnokWXGpGn79GuN4I738k9vAgnF
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Enroll-Process-Id: 1hmKcdnokWXGpGn79GuN4I738k9vAgnF
Content-Type: application/json
Body
{
  "method_id": "SMS_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

SMS_OTP:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new SMS OTP authenticator for a user.

Enroll steps:

  1. Send request to do enroll and check status.
  2. If status is MORE_DATA then send a verification code to do enroll.

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_WAITING_PASSWORD

  • OTP_WRONG_PASSWORD

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - SMS_OTP:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requests1. Start enroll2. Verify phone number
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "mobile_phone": "+12345678901"  // (optional, if missed phone from repository will be used)
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SMS_OTP:1",
  "msg": "Verification code was just sent to +1*******901",
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "SMS_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - SMS_OTP:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send request to do_enroll and check status

  2. If status is MORE_DATA then send a verification code to do_enroll

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_WAITING_PASSWORD

  • OTP_WRONG_PASSWORD

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


SMS_OTP:1 logon:

POST /api/v1/logon/do_logon
Requests1. Send message to user2. Enter password from SMS3. Enter password from SMS unsuccessfully
Headers
Logon-Process-Id: fLWb5SmwiB5zs4i7pmIJlt0W4hMIjPoE
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa"
}
Responses200
Headers
Logon-Process-Id: fLWb5SmwiB5zs4i7pmIJlt0W4hMIjPoE
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "SMS_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "OTP #3 sent to +1******890",
  "msgid": "AUCORE-2012",
  "plugins": [],
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: fLWb5SmwiB5zs4i7pmIJlt0W4hMIjPoE
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "246635"
  }
}
Responses200
Headers
Logon-Process-Id: fLWb5SmwiB5zs4i7pmIJlt0W4hMIjPoE
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "SMS_OTP:1"
  ],
  "current_method": "SMS_OTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "HG72YHJloobSOVuIQAobht2tSeSnvl6Z",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "4c8449de0c4f11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_id": "dfd5acc4dc8fdb8c712d8b9c8e8a10ad",
  "user_mobile_phone": [
    "+12345678901"
  ],
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}
Headers
Logon-Process-Id: fLWb5SmwiB5zs4i7pmIJlt0W4hMIjPoE
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "795191"
  }
}
Responses200
Headers
Logon-Process-Id: fLWb5SmwiB5zs4i7pmIJlt0W4hMIjPoE
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "SMS_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Incorrect answer. Please try again",
  "msgid": "AUCORE-2015",
  "plugins": [],
  "reason": "OTP_WRONG_PASSWORD",
  "status": "MORE_DATA"
}

SMS_OTP:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the SMS OTP.

Logon steps:

  1. Send empty request to do logon to send sms.
  2. Send request with password from received sms to do logon and check status.

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_RESEND_LATER

  • OTP_WAITING_PASSWORD

  • OTP_NO_PASSWORD

  • OTP_PASSWORD_EXPIRED

  • OTP_WRONG_PASSWORD

  • OTP_NO_EXPLICIT_RECIPIENT

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (optional)

    • Please see the examples.

LEGACY - SMS_OTP:1 logon:

POST /api/v1/logon/T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv/do_logon
Requests1. Send message to user2. Enter password from SMS3. Enter password from SMS unsuccessfully
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "SMS_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "OTP #3 sent to +1******890",
  "msgid": "AUCORE-2012",
  "plugins": [],
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "246635"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "SMS_OTP:1"
  ],
  "current_method": "SMS_OTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "HG72YHJloobSOVuIQAobht2tSeSnvl6Z",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "4c8449de0c4f11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_id": "dfd5acc4dc8fdb8c712d8b9c8e8a10ad",
  "user_mobile_phone": [
    "+12345678901"
  ],
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "795191"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "SMS_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Incorrect answer. Please try again",
  "msgid": "AUCORE-2015",
  "plugins": [],
  "reason": "OTP_WRONG_PASSWORD",
  "status": "MORE_DATA"
}

LEGACY - SMS_OTP:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

SMS_OTP:1 logon steps:

  1. Send empty request to do_logon to send sms

  2. Send request with password from received sms to do_logon and check status

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_RESEND_LATER

  • OTP_WAITING_PASSWORD

  • OTP_NO_PASSWORD

  • OTP_PASSWORD_EXPIRED

  • OTP_WRONG_PASSWORD

  • OTP_NO_EXPLICIT_RECIPIENT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv

ID of the logon process


SMS_OTP:1 method call:

POST /api/v1/logon_method/SMS_OTP:1
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id":"rBT79CAz8AWh1o920OrHumx32iaToCU9", // (trusted endpoint required)
  "mobile_phone": "+123456789"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "otp": "123456"
}

SMS_OTP:1 method call:
POST/api/v1/logon_method/SMS_OTP:1

Call the SMS OTP logon method to get the OTP.

Method steps:

  1. Send recipient mobile phone in request and check OTP.

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • mobile_phone: string (required*)

    • The phone number.

TOTP:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsCorrect request
Headers
Enroll-Process-Id: XtYMQJZSqmIBrQf5zA0wwyFPoKVDs7v0
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "otp": "472265",
    "serial": "987654321"
  }
}
Responses200
Headers
Enroll-Process-Id: XtYMQJZSqmIBrQf5zA0wwyFPoKVDs7v0
Content-Type: application/json
Body
{
  "method_id": "TOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

TOTP:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new TOTP authenticator for a user.

Send request with token serial or secret to do enroll and check status.

Error reasons:

  • TOTP_SCAN_QR

  • TOTP_PASSWORD_WRONG

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.
  • secret: string (optional)

    • The shared secret between the authentication device and the server. Either serial or secret must be specified.
  • serial: string (optional)

    • The unique identifier or secret key used by both the user’s device and the server to generate OTP. Either serial or secret must be specified.
  • is_base32_secret: boolean (optional)

    • Whether to use base32 secret. Default to false.
  • period: int (optional)

    • The time interval for which a generated TOTP code is valid.
  • otp_format: string (optional)

    • The format of the OTP. One of [dec4, dec6, dec7, dec8]
  • hash: string (optional)

    • The hash that one of hashlib.algorithms_guaranteed
  • otp: string (optional)

    • The OTP code generated by the user’s device.

Note: TOTP auth_template is shared secret and acceptance period (oath default is 30 sec)


LEGACY - TOTP:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "otp": "472265",
    "serial": "987654321"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "TOTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - TOTP:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with token serial or secret to do_enroll and check status.

Error reasons:

  • TOTP_SCAN_QR

  • TOTP_PASSWORD_WRONG

TOTP auth_template is shared secret and acceptance period (oath default is 30 sec)

Request fields:

  • serial, string, optional

  • secret, hex or base32 string, optional, either serial or secret must be specified

  • is_base32_secret, boolean, optional, default False

  • period, optional, default 30

  • otp_format, optional, one of [dec4, dec6, dec7, dec8]

  • hash, optional, one of hashlib.algorithms_guaranteed

  • otp, string, optional

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


TOTP:1 logon:

POST /api/v1/logon/do_logon
RequestsSimple TOTP password doLogon
Headers
Logon-Process-Id: L84Uz3qYwHnFjwFhUjZjfml087BTeeGY
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Logon-Process-Id: L84Uz3qYwHnFjwFhUjZjfml087BTeeGY
Content-Type: application/json
Body
{
    "chains": [],
    "completed_methods": [
        "TOTP:1"
    ],
    "current_method": "TOTP:1",
    "login_session_id": "9QHUl8xbBNo4PUO6UXYzbHltNaMmNpSL",
    "logon_process_id": "f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ",
    "msg": "Welcome",
    "msgid": "AUCORE-2001",
    "plugins": [],
    "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
    "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
    "status": "OK",
    "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
    "user_name": "LOCAL\ADMIN"
}

TOTP:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the TOTP.

Logon steps:

  1. Send otp-password to do logon and check status.

Error reasons:

  • TOTP_PASSWORD_UNDEFINED

  • TOTP_WAIT_MINUTE

  • TOTP_PASSWORD_WRONG

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - TOTP:1 logon:

POST /api/v1/logon/f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ/do_logon
RequestsSimple TOTP password doLogon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "P7p3JJuenqo0SnyJ4HnbRbbJIqDhtt0u",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "TOTP:1"
  ],
  "current_method": "TOTP:1",
  "login_session_id": "9QHUl8xbBNo4PUO6UXYzbHltNaMmNpSL",
  "logon_process_id": "f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "c0eeb0ee0b0e11e6b224080027983191",
  "repo_obj_id": "c0fd1ab20b0e11e6b224080027983191",
  "status": "OK",
  "user_id": "84a0a279d391de4b2fd70ea38b46d3ce",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - TOTP:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

TOTP:1 logon steps:

  1. Send otp-password to do_logon and check status

Error reasons:

  • TOTP_PASSWORD_UNDEFINED

  • TOTP_WAIT_MINUTE

  • TOTP_PASSWORD_WRONG

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: f0fzSCkoGcCFMJTDRalx5nnsC9zEYHBQ

ID of the logon process


TOTP enrollment QR code:

POST /api/v1/logon_method/TOTP:1
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "a23as...34ff",
  "generate_authenticator": true
}
Responses200
Headers
Content-Type: application/json
Body
{
  "is_base32_secret": false,
  "otp_format": "dec6",
  "period": 30,
  "qrdata": "OTPDATAYhgSNT3/7Gt0m1Kwpu3kqEvaOhI75PHcbgV0qbPMm71puyQlli069SCMsJv31jqALnzZRlkm+2qB5YX8dYP0s9/6cda7JjlSHaMZBszOKi6vIDX9cDd2AgIw4P1th8ByWu89HDMGA3nv6SiFJ0cZNkSHVZO8bzF/u9en6e7T1HkEppXvtcgYFlOcRPkGVBfY19xtU1l3S7/QvaNymQFA8mtWlZbveztpSq943iy1LwS8NE0koi3noTabpOI3cR5CaEK62651X2FhIsB+z956TwaWixorNjAQhJTe1eezAYNAeKvh/CVObzfjC9fs+gLokXvVOK23rODyK3RnDnp1aQ==",
  "secret": "baf6eefdbde06858733798b6ac9f08748a4fca3d"
}

TOTP enrollment QR code:
POST/api/v1/logon_method/TOTP:1

Call the TOTP logon method to get the QR code .

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • generate_authenticator: boolean (required*)

    • Whether to generate a authenticator. Always true.
  • is_base32_secret: boolean (required*)

    • Whether to use Google Authenticator format of secret (base32).

TOUCHID:1 enroll:

POST /api/v1/enroll/do_enroll
Requestsenroll
Headers
Enroll-Process-Id: jN3E07u3f1GG9PD3n0ZQk9cn5HrmNf3b
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "public_key": "2d2d2d2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145737a49594b7862494249524f70734b7068794d6634726f724a4950720a54475254424c4e5336704770514a4d4d7965444b5349776c39756d456f50506b4a504a79577255497353416c4c3837663964704b666173576c773d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d",
    "user_id": "501"
  }
}
Responses200
Headers
Enroll-Process-Id: jN3E07u3f1GG9PD3n0ZQk9cn5HrmNf3b
Content-Type: application/json
Body
{
  "method_id": "TOUCHID:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

TOUCHID:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new Touch ID authenticator for a user.

Send request to do enroll and check status.

Error reasons:

  • MISSING_PARAMETERS

Note: UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/touchid/enroll

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.
  • public_key: string (required*)

    • The RSA public key which can be used on server side to validate signature.
  • user_id: string (required*)

    • The ID of account which profile was used to storing key pair

LEGACY - TOUCHID:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requestsenroll
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "public_key": "2d2d2d2d2d424547494e205055424c4943204b45592d2d2d2d2d0a4d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a30444151634451674145737a49594b7862494249524f70734b7068794d6634726f724a4950720a54475254424c4e5336704770514a4d4d7965444b5349776c39756d456f50506b4a504a79577255497353416c4c3837663964704b666173576c773d3d0a2d2d2d2d2d454e44205055424c4943204b45592d2d2d2d2d",
    "user_id": "501"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "TOUCHID:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - TOUCHID:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll and check status.

Fields description:

public_key: RSA public key which can be used on server side to validate signature (hex encoded string)

user_id: ID of account which profile was used to storing key pair (hex encoded string)

Error reasons:

  • MISSING_PARAMETERS

UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/touchid/enroll

NOTE:

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


TOUCHID:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for hash challenge2. Send signed hash challenge using private key of enrolled user to do_logon
Headers
Login-Process-Id: Csrez5zgWBTqev8JY7t24sglagHgcmHU
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Login-Process-Id: Csrez5zgWBTqev8JY7t24sglagHgcmHU
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "42b312980c8911e69140080027983191",
      "image_name": "TOUCHID_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "TOUCHID:1"
      ],
      "name": "Test-chain",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "challenge": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af",
  "completed_methods": [],
  "current_method": "TOUCHID:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Waiting for an authentication response",
  "msgid": "AUCORE-2059",
  "plugins": [],
  "reason": "TOUCHID_WAITING_AUTH_SIGNATURE",
  "status": "MORE_DATA",
  "user_id": "501"
}
Headers
Login-Process-Id: Csrez5zgWBTqev8JY7t24sglagHgcmHU
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "signature": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af"
  }
}
Responses200
Headers
Login-Process-Id: Csrez5zgWBTqev8JY7t24sglagHgcmHU
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "TOUCHID:1"
  ],
  "current_method": "TOUCHID:1",
  "event_name": "TEST",
  "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "42987aa00c8911e69140080027983191",
  "repo_obj_id": "42a3962e0c8911e69140080027983191",
  "status": "OK",
  "user_id": "3a76753d7f931751c79fa05d80eb058e",
  "user_name": "LOCAL\USER1"
}

TOUCHID:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Touch ID.

Logon step:

  1. Send empty request to do logon to ask server for hash challenge.
  2. Send signed hash using private key of enrolled user to do logon.

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (optional)

    • Please see the examples.

LEGACY - TOUCHID:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for hash challenge2. Send signed hash challenge using private key of enrolled user to do_logon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": "42b312980c8911e69140080027983191",
      "image_name": "TOUCHID_1.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "TOUCHID:1"
      ],
      "name": "Test-chain",
      "position": 0,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "challenge": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af",
  "completed_methods": [],
  "current_method": "TOUCHID:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Waiting for an authentication response",
  "msgid": "AUCORE-2059",
  "plugins": [],
  "reason": "TOUCHID_WAITING_AUTH_SIGNATURE",
  "status": "MORE_DATA",
  "user_id": "501"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "signature": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "TOUCHID:1"
  ],
  "current_method": "TOUCHID:1",
  "event_name": "TEST",
  "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "42987aa00c8911e69140080027983191",
  "repo_obj_id": "42a3962e0c8911e69140080027983191",
  "status": "OK",
  "user_id": "3a76753d7f931751c79fa05d80eb058e",
  "user_name": "LOCAL\USER1"
}

LEGACY - TOUCHID:1 logon:
POST/api/v1/logon/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send empty request to do_logon to ask server for hash challenge

  2. Send signed hash using private key of enrolled user to do_logon


U2F:1 enroll:

POST /api/v1/enroll/do_enroll
Requests1. Ask server for registerRequests2. Forward registerRequests and signRequests to JSAPI, get registerResponse and forward to server
Headers
Enroll-Process-Id: zI5k92X0I6sHRX3QgOW2d7GYkqajhb5x
Content-Type: application/json
Body
{
  "login_session_id": "xTIskntGShVlNfkAUiaZUXE7BR3xToue",
  "response": {
    "userName": "user1"
  }
}
Responses200
Headers
Enroll-Process-Id: zI5k92X0I6sHRX3QgOW2d7GYkqajhb5x
Content-Type: application/json
Body
{
  "method_id": "U2F:1",
  "msg": "Waiting for the register response",
  "msgid": "AUCORE-3004",
  "reason": "U2F_WAITING_REG_RESPONSE",
  "registerRequests": [
    {
      "appId": "https://demo.yubico.com",
      "challenge": "2MSDiW84JXiIfSpUd72XebgBujs2WOA-UmuWzpyUQsk",
      "version": "U2F_V2"
    }
  ],
  "signRequests": [],
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: zI5k92X0I6sHRX3QgOW2d7GYkqajhb5x
Content-Type: application/json
Body
{
  "login_session_id": "xTIskntGShVlNfkAUiaZUXE7BR3xToue",
  "response": {
    "registerResponse": {
      "clientData": "eyJ0eXAiOiJuYXZpZ2F...0b3IuaWQuZmluaXNoRW",
      "registrationData": "BQQ_jNAqemWkTfI9uL4...CVo3eQSNIMe66u-pasr8BMu"
    }
  }
}
Responses200
Headers
Enroll-Process-Id: zI5k92X0I6sHRX3QgOW2d7GYkqajhb5x
Content-Type: application/json
Body
{
  "method_id": "U2F:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

U2F:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new U2F authenticator for a user.

Enroll steps:

  1. Ask server for registerRequests by sending empty request to do enroll.
  2. Forward registerRequests and signRequests to JSAPI, get registerResponse and forward to server to do enroll.
  3. Check status of received response.

Error reasons:

  • U2F_WAITING_REG_RESPONSE

  • U2F_NOT_ATTESTED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

Note: U2F AP uses camelCasing for parameters. Chrome JS-API (u2f.js) uses this scheme. You simply forward objects such as SignRequest to/from AP and JS-API.

How to build APPID from inside browser:

function getOriginFromUrl(url) {
    var re = new RegExp('^(https?://)[^/]*/?');
    var originarray = re.exec(url);
    if (originarray == null) return originarray;
    var origin = originarray[0];
    while (origin.charAt(origin.length - 1) == '/') {
        origin = origin.substring(0, origin.length - 1);
    }
    if (origin == 'http:' || origin == 'https:')
        return null;
    return origin;
}
var appId = getOriginFromUrl(window.location);

LEGACY - U2F:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requests1. Ask server for registerRequests2. Forward registerRequests and signRequests to JSAPI, get registerResponse and forward to server
Headers
Content-Type: application/json
Body
{
  "login_session_id": "xTIskntGShVlNfkAUiaZUXE7BR3xToue",
  "response": {
    "userName": "user1"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "U2F:1",
  "msg": "Waiting for the register response",
  "msgid": "AUCORE-3004",
  "reason": "U2F_WAITING_REG_RESPONSE",
  "registerRequests": [
    {
      "appId": "https://demo.yubico.com",
      "challenge": "2MSDiW84JXiIfSpUd72XebgBujs2WOA-UmuWzpyUQsk",
      "version": "U2F_V2"
    }
  ],
  "signRequests": [],
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "xTIskntGShVlNfkAUiaZUXE7BR3xToue",
  "response": {
    "registerResponse": {
      "clientData": "eyJ0eXAiOiJuYXZpZ2F...0b3IuaWQuZmluaXNoRW",
      "registrationData": "BQQ_jNAqemWkTfI9uL4...CVo3eQSNIMe66u-pasr8BMu"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "U2F:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - U2F:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

U2F:1 enroll steps:

  1. Ask server for registerRequests by sending empty request to do_enroll

  2. Forward registerRequests and signRequests to JSAPI, get registerResponse and forward to server to do_enroll

  3. Check status of received response

Error reasons:

  • U2F_WAITING_REG_RESPONSE

  • U2F_NOT_ATTESTED

U2F AP uses camelCasing for parameters. Chrome JS-API (u2f.js) uses this scheme. You simply forward objects such as SignRequest to/from AP and JS-API.

How to build APPID from inside browser:

function getOriginFromUrl(url) {
    var re = new RegExp('^(https?://)[^/]*/?');
    var originarray = re.exec(url);
    if (originarray == null) return originarray;
    var origin = originarray[0];
    while (origin.charAt(origin.length - 1) == '/') {
        origin = origin.substring(0, origin.length - 1);
    }
    if (origin == 'http:' || origin == 'https:')
        return null;
    return origin;
}
var appId = getOriginFromUrl(window.location);
URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


U2F:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for signRequests2. Forward signRequests to JSAPI, get signResponse and forward to server
Headers
Logon-Process-Id: MbqFLQi751Teni5wgEqz8j9C2vhPnQQC
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Logon-Process-Id: MbqFLQi751Teni5wgEqz8j9C2vhPnQQC
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "U2F:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Waiting for an authentication response",
  "msgid": "AUCORE-2059",
  "plugins": [],
  "reason": "U2F_WAITING_AUTH_RESPONSE",
  "signRequests": [
    {
      "appId": "https://demo.yubico.com",
      "challenge": "NGX54sR5bgHSSJVs7ijQaMi_vV-lz48UqWW-XTlHgX4",
      "keyHandle": "qF5EfdOTSEK4kP3hlEd_Q2SD4kOYs6K9qZJR5Ve9EloEs6ns36GHG-jGUKFD4JLMwOqsLsRnsipa-XsBzfF6Ow",
      "version": "U2F_V2"
    }
  ],
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: MbqFLQi751Teni5wgEqz8j9C2vhPnQQC
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "signResponse": {
      "clientData": "eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZ2V0QXNzZXJ0aW9uIiwiY2hhbGxlbmdlIjoiZXYwd3dLR3l5bV9YamdZZkExd2tNT3Y4bGpsOHphS0F5WGdBV3gyUW91OCIsIm9yaWdpbiI6Imh0dHBzOi8vZGVtby55dWJpY28uY29tIiwiY2lkX3B1YmtleSI6IiJ9",
      "keyHandle": "qF5EfdOTSEK4kP3hlEd_Q2SD4kOYs6K9qZJR5Ve9EloEs6ns36GHG-jGUKFD4JLMwOqsLsRnsipa-XsBzfF6Ow",
      "signatureData": "AQAAAKowRAIgFrmzsrUHiUw2ixt20cXLjBRDo7-UoqWqZlNsFcXZL4ECIH45ALRE86ijsKPv_r3zmzhoE34N3NqzgvRJ1f49C1UA"
    }
  }
}
Responses200
Headers
Logon-Process-Id: MbqFLQi751Teni5wgEqz8j9C2vhPnQQC
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "U2F:1"
  ],
  "current_method": "U2F:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "TEST",
  "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "42987aa00c8911e69140080027983191",
  "repo_obj_id": "42a3962e0c8911e69140080027983191",
  "status": "OK",
  "user_id": "3a76753d7f931751c79fa05d80eb058e",
  "user_name": "LOCAL\USER1"
}

U2F:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the U2F.

Logon steps:

  1. Send empty request to do logon to ask server for signRequests.
  2. Forward signRequests to JSAPI, get signResponse, send it to do logon and check status.

Error reasons:

  • U2F_ALL_TOKENS_COMPROMISED

  • U2F_NO_TOKENS

  • U2F_WAITING_AUTH_RESPONSE

  • U2F_INVALID_VERSION

  • U2F_PROTOCOL_VIOLATION

  • U2F_SIGNING_PROBLEM

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (optional)

    • Please see the examples.

LEGACY - U2F:1 logon:

POST /api/v1/logon/tvV9a4UNEf71yvZDxwJQ179SJnHQndmT/do_logon
Requests1. Ask server for signRequests2. Forward signRequests to JSAPI, get signResponse and forward to server
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "U2F:1",
  "event_data_id": "",
  "event_name": "TEST",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Waiting for an authentication response",
  "msgid": "AUCORE-2059",
  "plugins": [],
  "reason": "U2F_WAITING_AUTH_RESPONSE",
  "signRequests": [
    {
      "appId": "https://demo.yubico.com",
      "challenge": "NGX54sR5bgHSSJVs7ijQaMi_vV-lz48UqWW-XTlHgX4",
      "keyHandle": "qF5EfdOTSEK4kP3hlEd_Q2SD4kOYs6K9qZJR5Ve9EloEs6ns36GHG-jGUKFD4JLMwOqsLsRnsipa-XsBzfF6Ow",
      "version": "U2F_V2"
    }
  ],
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ",
  "response": {
    "signResponse": {
      "clientData": "eyJ0eXAiOiJuYXZpZ2F0b3IuaWQuZ2V0QXNzZXJ0aW9uIiwiY2hhbGxlbmdlIjoiZXYwd3dLR3l5bV9YamdZZkExd2tNT3Y4bGpsOHphS0F5WGdBV3gyUW91OCIsIm9yaWdpbiI6Imh0dHBzOi8vZGVtby55dWJpY28uY29tIiwiY2lkX3B1YmtleSI6IiJ9",
      "keyHandle": "qF5EfdOTSEK4kP3hlEd_Q2SD4kOYs6K9qZJR5Ve9EloEs6ns36GHG-jGUKFD4JLMwOqsLsRnsipa-XsBzfF6Ow",
      "signatureData": "AQAAAKowRAIgFrmzsrUHiUw2ixt20cXLjBRDo7-UoqWqZlNsFcXZL4ECIH45ALRE86ijsKPv_r3zmzhoE34N3NqzgvRJ1f49C1UA"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "U2F:1"
  ],
  "current_method": "U2F:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "TEST",
  "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL",
  "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "42987aa00c8911e69140080027983191",
  "repo_obj_id": "42a3962e0c8911e69140080027983191",
  "status": "OK",
  "user_id": "3a76753d7f931751c79fa05d80eb058e",
  "user_name": "LOCAL\USER1"
}

LEGACY - U2F:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

U2F:1 logon steps:

  1. Send empty request to do_logon to ask server for signRequests

  2. Forward signRequests to JSAPI, get signResponse, send it to do_logon and check status

Error reasons:

  • U2F_ALL_TOKENS_COMPROMISED

  • U2F_NO_TOKENS

  • U2F_WAITING_AUTH_RESPONSE

  • U2F_INVALID_VERSION

  • U2F_PROTOCOL_VIOLATION

  • U2F_SIGNING_PROBLEM

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: tvV9a4UNEf71yvZDxwJQ179SJnHQndmT

ID of the logon process


VERIFICATION:1.{instance} enroll:

POST /api/v1/enroll/do_enroll
Requests1. Start enroll2. Verify form
Headers
Enroll-Process-Id: nyn2GIfA0YlvwfEgVSZivcUYd9uhBJPb
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9"
}
Responses200
Headers
Enroll-Process-Id: nyn2GIfA0YlvwfEgVSZivcUYd9uhBJPb
Body
{
  "form": {
    // json representation of the form.io form.
    // See https://formio.github.io/formio.js/app/sandbox.html for examples
  },
  "method_id": "VERIFICATION:1.{instance}",
  "msg": "Waiting for the data",
  "reason": "DATA_INCOMPLETE",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: nyn2GIfA0YlvwfEgVSZivcUYd9uhBJPb
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "json submission values for the form.io form. See https://formio.github.io/formio.js/app/sandbox.html for examples": null
  }
}
Responses200
Headers
Enroll-Process-Id: nyn2GIfA0YlvwfEgVSZivcUYd9uhBJPb
Body
{
  "method_id": "VERIFICATION:1.{instance}",
  "msg": "",
  "reason": "",
  "status": "OK"
}

VERIFICATION:1.{instance} enroll:
POST/api/v1/enroll/do_enroll

Enroll a new VERIFICATION {instance} authenticator for a user.

Enroll steps:

  1. Send request to do enroll and check status.
  2. If status is FAILED then manual enroll is not available for this instance of a verification method.
  3. If status is MORE_DATA then a json representation of the form will be returned.
  4. If status is OK then either enrollment is complete, or no manual enrollment is permitted, or the instance allows auto-enrollment.
  5. Send new request containing the completed form to do enroll.
  6. Continue steps 3 & 4 until status is OK or FAILED.

Error reasons:

  • DATA_INCOMPLETE

  • ENROLL_NOT_REQUIRED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (optional)

    • Please see the examples.

LEGACY - VERIFICATION:1.{instance} enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requests1. Start enroll2. Verify form
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9"
}
Responses200
Body
{
  "form": {
    // json representation of the form.io form.
    // See https://formio.github.io/formio.js/app/sandbox.html for examples
  },
  "method_id": "VERIFICATION:1.{instance}",
  "msg": "Waiting for the data",
  "reason": "DATA_INCOMPLETE",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "json submission values for the form.io form. See https://formio.github.io/formio.js/app/sandbox.html for examples": null
  }
}
Responses200
Body
{
  "method_id": "VERIFICATION:1.{instance}",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - VERIFICATION:1.{instance} enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send request to do_enroll and check status

  2. If ‘status’ is ‘FAILED’ then manual enroll is not available for this instance of a verification method

  3. If ‘status’ is ‘MORE_DATA’ then a json representation of the form will be returned

  4. If ‘status’ is ‘OK’ then either enrollment is complete, or no manual enrollment is permitted, or the instance allows auto-enrollment.

  5. Send new request containing the completed form to do_enroll

  6. Continue steps 3 & 4 until ‘status’ is ‘OK or "FAILED’

Error reasons:

  • DATA_INCOMPLETE

  • ENROLL_NOT_REQUIRED

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


VERIFICATION:1.{instance} logon:

POST /api/v1/logon/do_logon
Requests1. Client doesn't know what is need and calls AA with nothing more than the session_id2. Enter information from form successfully
Headers
Logon-Process-Id: xF2R3EM1Zmr8WlG8xpUhp49wGBT9I6bG
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW"
}
Responses200
Headers
Logon-Process-Id: xF2R3EM1Zmr8WlG8xpUhp49wGBT9I6bG
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "VERIFICATION:1.{instance}",
  "event_data_id": "",
  "event_name": "",
  "form": {
    "components": [
      {
        "applyMaskOn": "change",
        "autoExpand": false,
        "defaultValue": "Access to the super secure internal system is restricted.",
        "hideLabel": true,
        "input": true,
        "key": "textArea",
        "label": "Consent Text",
        "persistent": false,
        "protected": true,
        "tableView": true,
        "type": "textarea"
      },
      {
        "errorLabel": "Signature Required",
        "input": true,
        "key": "signature",
        "label": "Signature",
        "tableView": false,
        "type": "signature",
        "validate": {
          "required": true
        }
      },
      {
        "disableOnInvalid": true,
        "input": true,
        "key": "submit",
        "label": "Submit",
        "tableView": false,
        "type": "button"
      }
    ],
    "display": "form"
  },
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "plugins": [],
  "reason": "WAITING_AUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: xF2R3EM1Zmr8WlG8xpUhp49wGBT9I6bG
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW",
  "response": {
    "submission": {
      "_vnote": "",
      "data": {
        "signature": "data:image/png;base64,iVBO...VORK5CYII=",
        "submit": true,
        "textArea": "Access to the super secure internal system is restricted."
      },
      "metadata": {
        "browserName": "Netscape",
        "offset": -420,
        "onLine": true,
        "origin": "https://formio.github.io",
        "pathName": "/formio.js/app/sandbox.html",
        "referrer": "https://formio.github.io/formio.js/app/builder.html",
        "timezone": "America/Los_Angeles",
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
      },
      "state": "submitted"
    }
  }
}
Responses200
Headers
Logon-Process-Id: xF2R3EM1Zmr8WlG8xpUhp49wGBT9I6bG
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "VERIFICATION:1.{instance}"
  ],
  "current_method": "VERIFICATION:1.{instance}",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "VqtNECMXwMIRDLqbOFG8pBbTbG8lfSTT",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "d65f2f4e0c4e11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_email": "test@localhost",
  "user_id": "470671fbf0227d268c2cc7d6b756e2c0",
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}

VERIFICATION:1.{instance} logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the VERIFICATION {instance}.

Error reasons:

  • FACTOR_EXPIRED

  • FACTOR_INEFFECTIVE

  • FACTOR_EXHAUSTED

  • WAITING_AUTH_RESPONSE

  • NO_ACTIVE_FACTORS

  • FACTOR_DISABLED

  • METHOD_DISABLED

  • MISSING_DATA

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (optional)

    • Please see the examples.

LEGACY - VERIFICATION:1.{instance} logon:

POST /api/v1/logon/DjCTzG4tuJdwTmdWhtkbUggbertp2d6E/do_logon
Requests1. Client doesn't know what is need and calls AA with nothing more than the session_id2. Enter information from form successfully
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "VERIFICATION:1.{instance}",
  "event_data_id": "",
  "event_name": "",
  "form": {
    "components": [
      {
        "applyMaskOn": "change",
        "autoExpand": false,
        "defaultValue": "Access to the super secure internal system is restricted.",
        "hideLabel": true,
        "input": true,
        "key": "textArea",
        "label": "Consent Text",
        "persistent": false,
        "protected": true,
        "tableView": true,
        "type": "textarea"
      },
      {
        "errorLabel": "Signature Required",
        "input": true,
        "key": "signature",
        "label": "Signature",
        "tableView": false,
        "type": "signature",
        "validate": {
          "required": true
        }
      },
      {
        "disableOnInvalid": true,
        "input": true,
        "key": "submit",
        "label": "Submit",
        "tableView": false,
        "type": "button"
      }
    ],
    "display": "form"
  },
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "plugins": [],
  "reason": "WAITING_AUTH_RESPONSE",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "caclPKkiAOkbwUMyX6kvMlIVtOdMwgvW",
  "response": {
    "submission": {
      "_vnote": "",
      "data": {
        "signature": "data:image/png;base64,iVBO...VORK5CYII=",
        "submit": true,
        "textArea": "Access to the super secure internal system is restricted."
      },
      "metadata": {
        "browserName": "Netscape",
        "offset": -420,
        "onLine": true,
        "origin": "https://formio.github.io",
        "pathName": "/formio.js/app/sandbox.html",
        "referrer": "https://formio.github.io/formio.js/app/builder.html",
        "timezone": "America/Los_Angeles",
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
      },
      "state": "submitted"
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "VERIFICATION:1.{instance}"
  ],
  "current_method": "VERIFICATION:1.{instance}",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "VqtNECMXwMIRDLqbOFG8pBbTbG8lfSTT",
  "logon_process_id": "DjCTzG4tuJdwTmdWhtkbUggbertp2d6E",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "d65f2f4e0c4e11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_email": "test@localhost",
  "user_id": "470671fbf0227d268c2cc7d6b756e2c0",
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}

LEGACY - VERIFICATION:1.{instance} logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

VERIFICATION:1.{instance} logon steps:

Error reasons:

  • FACTOR_EXPIRED

  • FACTOR_INEFFECTIVE

  • FACTOR_EXHAUSTED

  • WAITING_AUTH_RESPONSE

  • NO_ACTIVE_FACTORS

  • FACTOR_DISABLED

  • METHOD_DISABLED

  • MISSING_DATA

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: DjCTzG4tuJdwTmdWhtkbUggbertp2d6E

ID of the logon process


VOICE:1 enroll:

POST /api/v1/enroll/do_enroll
Requestsexample 1
Headers
Enroll-Process-Id: kPMmY3l5KcW5vD1ljHRkO941zt17As2M
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "mobile_phone": "+123456789",  // (optional, if missed phone from repository will be used)
    "pin": "12345"
  }
}
Responses200
Headers
Enroll-Process-Id: kPMmY3l5KcW5vD1ljHRkO941zt17As2M
Content-Type: application/json
Body
{
  "method_id": "VOICE:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

VOICE:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new voice-based authenticator for a user.

Send request with pin to do enroll and check status.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - VOICE:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "mobile_phone": "+123456789",  // (optional, if missed phone from repository will be used)
    "pin": "12345"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "VOICE:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - VOICE:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request with pin to do_enroll and check status.

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


VOICE:1 logon:

POST /api/v1/logon/do_logon
Requests1. Call to user2. Check call status3. Finish logon
Headers
Logon-Process-Id: E4P7TrZULb42PiYsJypjy0QBdxf2kXHm
Content-Type: application/json
Body
{
  "endpoint_session_id": "vqRVxFg79DEHCAJjoe0nJNBSMoibCZa9"
}
Responses200
Headers
Logon-Process-Id: E4P7TrZULb42PiYsJypjy0QBdxf2kXHm
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "VOICE:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "F1iJ4albUW81CqFzdZXekgdyPyB43YbY",
  "msg": "Call has been initiated",
  "msgid": "AUCORE-2077",
  "plugins": [],
  "reason": "VOICE_CALL_INITIATED",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: E4P7TrZULb42PiYsJypjy0QBdxf2kXHm
Content-Type: application/json
Body
{
  "endpoint_session_id": "vqRVxFg79DEHCAJjoe0nJNBSMoibCZa9"
}
Responses200
Headers
Logon-Process-Id: E4P7TrZULb42PiYsJypjy0QBdxf2kXHm
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "VOICE:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "F1iJ4albUW81CqFzdZXekgdyPyB43YbY",
  "msg": "Call is in progress",
  "msgid": "AUCORE-2073",
  "plugins": [],
  "reason": "VOICE_CALL_IN_PROGRESS",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: E4P7TrZULb42PiYsJypjy0QBdxf2kXHm
Content-Type: application/json
Body
{
  "endpoint_session_id": "vqRVxFg79DEHCAJjoe0nJNBSMoibCZa9"
}
Responses200
Headers
Logon-Process-Id: E4P7TrZULb42PiYsJypjy0QBdxf2kXHm
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "VOICE:1"
  ],
  "current_method": "VOICE:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "sUne8w7x4E2VMifobJcxxoobdudkq9Sp",
  "logon_process_id": "F1iJ4albUW81CqFzdZXekgdyPyB43YbY",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "bf6508400c7111e69e17080027983191",
  "repo_obj_id": "bf6d48340c7111e69e17080027983191",
  "status": "OK",
  "user_id": "0524d36a32ced8ac9044fb62f79f60e5",
  "user_name": "LOCAL\AG"
}

VOICE:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the voice.

Logon steps:

  1. Send empty request to do logon to make a call to user. User should receive call and enter pin from it.
  2. To check status of logon application should send empty request to do logon until status will not change for failed or successful.

Error reasons:

  • VOICE_PIN_NOT_VERIFIED

  • VOICE_CALL_IN_PROGRESS

  • VOICE_PIN_EXPIRED

  • VOICE_CANNOT_CALL

  • VOICE_CALL_INITIATED

Request Body Parameters

  • endpoint_session_id: string (required*)
    • The ID of the endpoint session.

LEGACY - VOICE:1 logon:

POST /api/v1/logon/F1iJ4albUW81CqFzdZXekgdyPyB43YbY/do_logon
Requests1. Call to user2. Check call status3. Finish logon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "vqRVxFg79DEHCAJjoe0nJNBSMoibCZa9"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "VOICE:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "F1iJ4albUW81CqFzdZXekgdyPyB43YbY",
  "msg": "Call has been initiated",
  "msgid": "AUCORE-2077",
  "plugins": [],
  "reason": "VOICE_CALL_INITIATED",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "vqRVxFg79DEHCAJjoe0nJNBSMoibCZa9"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [],
  "current_method": "VOICE:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "F1iJ4albUW81CqFzdZXekgdyPyB43YbY",
  "msg": "Call is in progress",
  "msgid": "AUCORE-2073",
  "plugins": [],
  "reason": "VOICE_CALL_IN_PROGRESS",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "vqRVxFg79DEHCAJjoe0nJNBSMoibCZa9"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [],
  "completed_methods": [
    "VOICE:1"
  ],
  "current_method": "VOICE:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "sUne8w7x4E2VMifobJcxxoobdudkq9Sp",
  "logon_process_id": "F1iJ4albUW81CqFzdZXekgdyPyB43YbY",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "bf6508400c7111e69e17080027983191",
  "repo_obj_id": "bf6d48340c7111e69e17080027983191",
  "status": "OK",
  "user_id": "0524d36a32ced8ac9044fb62f79f60e5",
  "user_name": "LOCAL\AG"
}

LEGACY - VOICE:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

VOICE:1 logon steps:

  1. Send empty request to do_logon to make a call to user. User should receive call and enter pin from it.

  2. To check status of logon application should send empty request to do_logon until status will not change for failed or successful.

Error reasons:

  • VOICE_PIN_NOT_VERIFIED

  • VOICE_CALL_IN_PROGRESS

  • VOICE_PIN_EXPIRED

  • VOICE_CANNOT_CALL

  • VOICE_CALL_INITIATED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: F1iJ4albUW81CqFzdZXekgdyPyB43YbY

ID of the logon process


VOICE_OTP:1 enroll:

POST /api/v1/enroll/do_enroll
Requests1. Start enroll2. Verify phone number
Headers
Enroll-Process-Id: cYZnKm1JTj4pGwxByr1tumUKVebIylOD
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "mobile_phone": "+12345678901"  // (optional, if missed phone from repository will be used)
}
Responses200
Headers
Enroll-Process-Id: cYZnKm1JTj4pGwxByr1tumUKVebIylOD
Content-Type: application/json
Body
{
  "method_id": "VOICE_OTP:1",
  "msg": "Verification code was just sent to +1*******901",
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Enroll-Process-Id: cYZnKm1JTj4pGwxByr1tumUKVebIylOD
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Enroll-Process-Id: cYZnKm1JTj4pGwxByr1tumUKVebIylOD
Content-Type: application/json
Body
{
  "method_id": "VOICE_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

VOICE_OTP:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new voice OTP authenticator for a user.

Enroll steps:

  1. Send request to do enroll and check status.
  2. If status is MORE_DATA then send a verification code to do enroll.

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_WAITING_PASSWORD

  • OTP_WRONG_PASSWORD

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • mobile_phone: string (optional)

    • The phone number.
  • response: dict (optional)

    • Please see the examples.

LEGACY - VOICE_OTP:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requests1. Start enroll2. Verify phone number
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "mobile_phone": "+12345678901"  // (optional, if missed phone from repository will be used)
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "VOICE_OTP:1",
  "msg": "Verification code was just sent to +1*******901",
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "rBT79CAz8AWh1o920OrHumx32iaToCU9",
  "response": {
    "answer": "123456"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "VOICE_OTP:1",
  "msg": "",
  "reason": "",
  "status": "OK"
}

LEGACY - VOICE_OTP:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  1. Send request to do_enroll and check status.

  2. If status is MORE_DATA then send a verification code to do_enroll

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_WAITING_PASSWORD

  • OTP_WRONG_PASSWORD

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


VOICE_OTP:1 logon:

POST /api/v1/logon/do_logon
Requests1. Send message to user2. Enter password from call3. Enter password from call unsuccessfully
Headers
Logon-Process-Id: QLMFj9VKjeyc2HdVedznKVbuvuxaDQJC
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa"
}
Responses200
Headers
Logon-Process-Id: QLMFj9VKjeyc2HdVedznKVbuvuxaDQJC
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "VOICE_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "OTP #3 sent to +1******890",
  "msgid": "AUCORE-2012",
  "plugins": [],
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Logon-Process-Id: QLMFj9VKjeyc2HdVedznKVbuvuxaDQJC
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "246635"
  }
}
Responses200
Headers
Logon-Process-Id: QLMFj9VKjeyc2HdVedznKVbuvuxaDQJC
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "VOICE_OTP:1"
  ],
  "current_method": "VOICE_OTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "HG72YHJloobSOVuIQAobht2tSeSnvl6Z",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "4c8449de0c4f11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_id": "dfd5acc4dc8fdb8c712d8b9c8e8a10ad",
  "user_mobile_phone": [
    "+12345678901"
  ],
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}
Headers
Logon-Process-Id: QLMFj9VKjeyc2HdVedznKVbuvuxaDQJC
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "795191"
  }
}
Responses200
Headers
Logon-Process-Id: QLMFj9VKjeyc2HdVedznKVbuvuxaDQJC
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "VOICE_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Incorrect answer. Please try again",
  "msgid": "AUCORE-2015",
  "plugins": [],
  "reason": "OTP_WRONG_PASSWORD",
  "status": "MORE_DATA"
}

VOICE_OTP:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Voice OTP.

Logon steps:

  1. Send empty request to do logon to initiate call.
  2. Send request with password from call to do logon and check status.

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_RESEND_LATER

  • OTP_WAITING_PASSWORD

  • OTP_NO_PASSWORD

  • OTP_PASSWORD_EXPIRED

  • OTP_WRONG_PASSWORD

  • OTP_NO_EXPLICIT_RECIPIENT

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (required*)

    • Please see the examples.

LEGACY - VOICE_OTP:1 logon:

POST /api/v1/logon/T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv/do_logon
Requests1. Send message to user2. Enter password from call3. Enter password from call unsuccessfully
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "VOICE_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "OTP #3 sent to +1******890",
  "msgid": "AUCORE-2012",
  "plugins": [],
  "reason": "OTP_WAITING_PASSWORD",
  "status": "MORE_DATA"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "246635"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [
    "VOICE_OTP:1"
  ],
  "current_method": "VOICE_OTP:1",
  "data_id": "",
  "event_data_id": "",
  "event_name": "",
  "login_session_id": "HG72YHJloobSOVuIQAobht2tSeSnvl6Z",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Welcome",
  "msgid": "AUCORE-2001",
  "plugins": [],
  "repo_id": "4c8449de0c4f11e6b18c080027983191",
  "repo_obj_id": "11a2916c4521e14e83ad19b0165311d1",
  "status": "OK",
  "user_cn": "Admin",
  "user_dn": "CN=Admin,CN=test",
  "user_id": "dfd5acc4dc8fdb8c712d8b9c8e8a10ad",
  "user_mobile_phone": [
    "+12345678901"
  ],
  "user_name": "LDS\Admin",
  "user_sid": "S-1-384768500-3318151576-2078616805-1261548118-3717951140-1565446721",
  "user_sid_hex": "0105000016ef19f498f9c6c5e52ce57b56b2314ba46e9bdd41d24e5d"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "eRPr3yB92MgYySHk8I8yj5twuuf3PAUa",
  "response": {
    "answer": "795191"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "chains": [
    {
      "apply_for_ep_owner": false,
      "grace_period": null,
      "id_hex": null,
      "image_name": "ANY.png",
      "is_enabled": true,
      "is_trusted": null,
      "methods": [
        "ANY"
      ],
      "name": "TEST CHAIN",
      "position": 1000,
      "required_chain_id_hex": null,
      "short_name": ""
    }
  ],
  "completed_methods": [],
  "current_method": "VOICE_OTP:1",
  "event_data_id": "",
  "event_name": "",
  "logon_process_id": "T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv",
  "msg": "Incorrect answer. Please try again",
  "msgid": "AUCORE-2015",
  "plugins": [],
  "reason": "OTP_WRONG_PASSWORD",
  "status": "MORE_DATA"
}

LEGACY - VOICE_OTP:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

VOICE_OTP:1 logon steps:

  1. Send empty request to do_logon to initiate call

  2. Send request with password from call to do_logon and check status

Error reasons:

  • OTP_CANNOT_SEND

  • OTP_RESEND_LATER

  • OTP_WAITING_PASSWORD

  • OTP_NO_PASSWORD

  • OTP_PASSWORD_EXPIRED

  • OTP_WRONG_PASSWORD

  • OTP_NO_EXPLICIT_RECIPIENT

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: T3Hc3fwHIN4pyJ9gEBaWC416gKRTANQv

ID of the logon process


VOICE_OTP:1 method call:

POST /api/v1/logon_method/VOICE_OTP:1
RequestsCorrect request
Headers
Content-Type: application/json
Body
{
        "endpoint_session_id":"rBT79CAz8AWh1o920OrHumx32iaToCU9", // (trusted endpoint required)
        "mobile_phone": "+123456789"
    }
Responses200
Headers
Content-Type: application/json
Body
{
  "otp": "3456"
}

VOICE_OTP:1 method call:
POST/api/v1/logon_method/VOICE_OTP:1

Call the Voice OTP logon method to get the OTP.

Method steps:

  1. Send recipient mobile phone in request and check OTP.

WEBAUTH:1 enroll:

POST /api/v1/enroll/do_enroll
RequestsdoEnroll: Start enrolldoEnroll: Check status
Headers
Enroll-Process-Id: djjbzPuzGFCw0IYsiuEdAHZx1lYK5xtR
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M",
  "response": {
    "idp_name": "Google OAuth 2.0",                  // REQUIRED: Identity provider (IdP) entry in Web authentication method settings
    "user_id": "3a76753d7f931751c79fa05d80eb058e",   // OPTIONAL: AA assigned user_id, if provided and valid the response status will be "OK" and enrollment is complete.
    "username_hint": "test@gmail.com",               // OPTIONAL: Hint is usable for some IdP (Google) to fill up "User name" field
    "final_redirection": {                           // REQUIRED if user_id is not sent: the redirection form which will be sent to browser after the user passed IdP authentication
      "action": "http://localhost/path?par=val",
      "method": "post",
      "id": "form1",
      "name": "formName",
      "data": {
        "field1": "state1",
        "field2": 12345
      }
    }
  }
}
Responses200
Headers
Enroll-Process-Id: djjbzPuzGFCw0IYsiuEdAHZx1lYK5xtR
Content-Type: application/json
Body
{
  "status": "MORE_DATA",
  "msg": "Waiting for Identity provider response",
  "reason": "WEBAUTH_WAITING_DATA",
  "method_id": "WEBAUTH:1",
  "msgid": "AUCORE-3057"
}
Headers
Enroll-Process-Id: djjbzPuzGFCw0IYsiuEdAHZx1lYK5xtR
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M"
}
Responses200
Headers
Enroll-Process-Id: djjbzPuzGFCw0IYsiuEdAHZx1lYK5xtR
Content-Type: application/json
Body
For the next calls until the user is authenticated by IdP:
{
  "status": "MORE_DATA",
  "msg": "Waiting for Identity provider response",
  "reason": "WEBAUTH_WAITING_DATA",
  "method_id": "WEBAUTH:1",
  "msgid": "AUCORE-3057"
}

The final result when the user passed through IdP authentication successfully,
or user_id parameter was provided during initial enroll call:
{
  "status": "OK",
  "msg": "",
  "reason": "",
  "method_id": "WEBAUTH:1"
}

The final result when the user failed IdP authentication:
{
  "status": "FAILED",
  "msg": "",
  "reason": "",
  "method_id": "WEBAUTH:1"
}

WEBAUTH:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new WebAuth authenticator for a user.

Enroll steps:

  1. Send request with required parameters to do enroll and check status.
  2. If the request contained a valid user_id then the enrollment will be completed without contacting the IDP and the response will contain "status": "OK".
  3. If the request did not contain a user_id it must contain a final_redirection.
  4. Open the URL /webauth/{enroll_process_id}/enroll in browser.
  5. Go through authentication steps in browser.
  6. Send “response” to do enroll and check status.

Error reasons:

  • WEBAUTH_WAITING_DATA

  • WEBAUTH_FAILED

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.

LEBACY: WEBAUTH:1 enroll:

POST /api/v1/enroll/uDlY59KIE89Ez5oQRKVnymjxcxyAFxLc/do_enroll
RequestsdoEnroll: Start enrolldoEnroll: Check status
Headers
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M",
  "response": {
    "idp_name": "Google OAuth 2.0",                  // REQUIRED: Identity provider (IdP) entry in Web authentication method settings
    "user_id": "3a76753d7f931751c79fa05d80eb058e",   // OPTIONAL: AA assigned user_id, if provided and valid the response status will be "OK" and enrollment is complete.
    "username_hint": "test@gmail.com",               // OPTIONAL: Hint is usable for some IdP (Google) to fill up "User name" field
    "final_redirection": {                           // REQUIRED if user_id is not sent: the redirection form which will be sent to browser after the user passed IdP authentication
      "action": "http://localhost/path?par=val",
      "method": "post",
      "id": "form1",
      "name": "formName",
      "data": {
        "field1": "state1",
        "field2": 12345
      }
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "status": "MORE_DATA",
  "msg": "Waiting for Identity provider response",
  "reason": "WEBAUTH_WAITING_DATA",
  "method_id": "WEBAUTH:1",
  "msgid": "AUCORE-3057"
}
Headers
Content-Type: application/json
Body
{
  "login_session_id": "CD506E53Mts35Qp2YI3gCWPgtjx6Kt4M"
}
Responses200
Headers
Content-Type: application/json
Body
For the next calls until the user is authenticated by IdP:
{
  "status": "MORE_DATA",
  "msg": "Waiting for Identity provider response",
  "reason": "WEBAUTH_WAITING_DATA",
  "method_id": "WEBAUTH:1",
  "msgid": "AUCORE-3057"
}

The final result when the user passed through IdP authentication successfully,
or user_id parameter was provided during initial enroll call:
{
  "status": "OK",
  "msg": "",
  "reason": "",
  "method_id": "WEBAUTH:1"
}

The final result when the user failed IdP authentication:
{
  "status": "FAILED",
  "msg": "",
  "reason": "",
  "method_id": "WEBAUTH:1"
}

LEBACY: WEBAUTH:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

WEBAUTH:1 enroll steps:

  1. Send request with required parameters to do_enroll and check status.
  2. If the request contained a valid user_id then the enrollment will be completed without contacting the IDP and the response will contain “status”: “OK”
  3. If the request did not contain a user_id it must contain a final_redirection.
  4. Open the URL /webauth/{enroll_process_id}/enroll in browser.
  5. Go through authentication steps in browser.
  6. Send “response” to do_enroll and check status.

Error reasons:

  • WEBAUTH_WAITING_DATA

  • WEBAUTH_FAILED

URI Parameters
HideShow
enroll_process_id
string (required) Example: uDlY59KIE89Ez5oQRKVnymjxcxyAFxLc

ID of the enroll process


WEBAUTH:1 logon:

POST /api/v1/logon/do_logon
RequestsdoLogon: Start logondoLogon: Check result
Headers
Logon-Process-Id: lVmvKcN5LVNrxurB1GW2eex3OlMMwkhb
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "WEBAUTH:1",
  "response": {
    "final_redirection": {
      "action": "http://localhost/path?par=val",
      "method": "post",
      "id": "form1",          // OPTIONAL
      "name": "formName",     // OPTIONAL
      "data": {               // OPTIONAL form fields
        "field1": "state1",
        "field2": 12345
      }
    }
  }
}
Responses200
Headers
Logon-Process-Id: lVmvKcN5LVNrxurB1GW2eex3OlMMwkhb
Content-Type: application/json
Body
For the first call:
{
  "event_data_id": "AUTHENTICATORS MANAGEMENT",
  "msgid": "AUCORE-3057",
  "category_id": "",
  "reason": "WEBAUTH_WAITING_DATA",
  "msg": "Waiting for IdP response",
  "linked_logon": false,
  "plugins": [ ],
  "event_name": "Authenticators Management",
  "status": "MORE_DATA",
  "chains": [
    {
      "tenant_id": "def0def0def0def0def0def0def0def0",
      "is_enabled": true,
      "image_name": "WEBAUTH_1.png",
      "name": "webauth",
      "id_hex": "b8476540b49411e7b93e000c294d5acc",
      "is_trusted": null,
      "apply_for_ep_owner": false,
      "short_name": "webauth",
      "position": 0,
      "methods": ["WEBAUTH:1"],
      "mfa_tags": [ ],
      "required_chain_id_hex": null,
      "grace_period": null
    }
  ],
  "completed_methods": [ ],
  "method_id": "WEBAUTH:1",
  "current_method": "WEBAUTH:1",
  "login_url": "https://testsp.ngrok.io/webauth/qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz/login",
  "logon_process_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz"
}
Headers
Logon-Process-Id: lVmvKcN5LVNrxurB1GW2eex3OlMMwkhb
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "WEBAUTH:1"
}
Responses200
Headers
Logon-Process-Id: lVmvKcN5LVNrxurB1GW2eex3OlMMwkhb
Content-Type: application/json
Body
The final result when the user passed through IdP authentication successfully:
{
  "status": "OK",
  "msg": "Welcome!",
  "linked_logon": false,
  "plugins": [],
  "login_session_id": "Fdsoxy7pvH5AijDRxFdgfkgNuECghmGh",
  "completed_chain": {
    "id_hex": null,
    "tenant_id": "def0def0def0def0def0def0def0def0",
    "is_trusted": null,
    "is_enabled": true,
    "name": "TEST CHAIN",
    "short_name": "",
    "methods": [
        "ANY"
    ],
    "position": 1000,
    "apply_for_ep_owner": false,
    "image_name": "ANY.png",
    "required_chain_id_hex": null,
    "grace_period": null,
    "mfa_tags": []
  },
  "user_id": "6c5f9a6863d233ab6310602a8faee7f1",
  "user_name": "LOCAL\ADMIN",
  "repo_id": "2e0598aa5cf711e8bb2a0242ac130002",
  "repo_obj_id": "2e06ede05cf711e8bb2a0242ac130002",
  "msgid": "AUCORE-2001",
  "chains": [
    {
        "id_hex": null,
        "tenant_id": "def0def0def0def0def0def0def0def0",
        "is_trusted": null,
        "is_enabled": true,
        "name": "TEST CHAIN",
        "short_name": "",
        "methods": [
            "ANY"
        ],
        "position": 1000,
        "apply_for_ep_owner": false,
        "image_name": "ANY.png",
        "required_chain_id_hex": null,
        "grace_period": null,
        "mfa_tags": []
    }
  ],
  "current_method": "WEBAUTH:1",
  "completed_methods": [
    "WEBAUTH:1"
  ],
  "logon_process_id": "eurdv8XtHCYrUM6YgPkIQm3WMuF1Kwnb",
  "event_name": "",
  "event_type": "Generic",
  "event_data_id": "",
  "data_id": "",
  "category_id": ""
}

The final result when error:
{
  "status": "FAILED",
  "msg": "Web Authentication has failed",
  "linked_logon": false,
  "reason": "WEBAUTH_FAILED",
  "plugins": [],
  "msgid": "AUCORE-3058",
  "chains": [
    {
      "id_hex": null,
      "tenant_id": "def0def0def0def0def0def0def0def0",
      "is_trusted": null,
      "is_enabled": true,
      "name": "TEST CHAIN",
      "short_name": "",
      "methods": [
          "ANY"
      ],
      "position": 1000,
      "apply_for_ep_owner": false,
      "image_name": "ANY.png",
      "required_chain_id_hex": null,
      "grace_period": null,
      "mfa_tags": []
    }
  ],
  "current_method": "WEBAUTH:1",
  "completed_methods": [],
  "logon_process_id": "XqxaOgvchUZB1vdWAMxQ3opIzMhpZaFA",
  "event_name": "",
  "event_type": "Generic",
  "event_data_id": "",
  "data_id": "",
  "category_id": ""
}

WEBAUTH:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the WebAuth.

Logon steps:

  1. Send “response” with redirection code to do logon and check status.
  2. Open the URL /webauth/{logon_process_id}/login in browser.
  3. Go through authentication steps in browser.
  4. Send “response” with or without redirection parameters to do logon and check status.

Error reasons:

  • WEBAUTH_WAITING_DATA

  • WEBAUTH_FAILED

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • method_id: string (required*)

    • The ID of the method. Use WEBAUTH:1
  • response: dict (required*)

    • Please see the examples.

LEGACY - WEBAUTH:1 logon:

POST /api/v1/logon/qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz/do_logon
RequestsdoLogon: Start logondoLogon: Check result
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "WEBAUTH:1",
  "response": {
    "final_redirection": {
      "action": "http://localhost/path?par=val",
      "method": "post",
      "id": "form1",          // OPTIONAL
      "name": "formName",     // OPTIONAL
      "data": {               // OPTIONAL form fields
        "field1": "state1",
        "field2": 12345
      }
    }
  }
}
Responses200
Headers
Content-Type: application/json
Body
For the first call:
{
  "event_data_id": "AUTHENTICATORS MANAGEMENT",
  "msgid": "AUCORE-3057",
  "category_id": "",
  "reason": "WEBAUTH_WAITING_DATA",
  "msg": "Waiting for IdP response",
  "linked_logon": false,
  "plugins": [ ],
  "event_name": "Authenticators Management",
  "status": "MORE_DATA",
  "chains": [
    {
      "tenant_id": "def0def0def0def0def0def0def0def0",
      "is_enabled": true,
      "image_name": "WEBAUTH_1.png",
      "name": "webauth",
      "id_hex": "b8476540b49411e7b93e000c294d5acc",
      "is_trusted": null,
      "apply_for_ep_owner": false,
      "short_name": "webauth",
      "position": 0,
      "methods": ["WEBAUTH:1"],
      "mfa_tags": [ ],
      "required_chain_id_hex": null,
      "grace_period": null
    }
  ],
  "completed_methods": [ ],
  "method_id": "WEBAUTH:1",
  "current_method": "WEBAUTH:1",
  "login_url": "https://testsp.ngrok.io/webauth/qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz/login",
  "logon_process_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz"
}
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz",
  "method_id": "WEBAUTH:1"
}
Responses200
Headers
Content-Type: application/json
Body
The final result when the user passed through IdP authentication successfully:
{
  "status": "OK",
  "msg": "Welcome!",
  "linked_logon": false,
  "plugins": [],
  "login_session_id": "Fdsoxy7pvH5AijDRxFdgfkgNuECghmGh",
  "completed_chain": {
    "id_hex": null,
    "tenant_id": "def0def0def0def0def0def0def0def0",
    "is_trusted": null,
    "is_enabled": true,
    "name": "TEST CHAIN",
    "short_name": "",
    "methods": [
        "ANY"
    ],
    "position": 1000,
    "apply_for_ep_owner": false,
    "image_name": "ANY.png",
    "required_chain_id_hex": null,
    "grace_period": null,
    "mfa_tags": []
  },
  "user_id": "6c5f9a6863d233ab6310602a8faee7f1",
  "user_name": "LOCAL\ADMIN",
  "repo_id": "2e0598aa5cf711e8bb2a0242ac130002",
  "repo_obj_id": "2e06ede05cf711e8bb2a0242ac130002",
  "msgid": "AUCORE-2001",
  "chains": [
    {
        "id_hex": null,
        "tenant_id": "def0def0def0def0def0def0def0def0",
        "is_trusted": null,
        "is_enabled": true,
        "name": "TEST CHAIN",
        "short_name": "",
        "methods": [
            "ANY"
        ],
        "position": 1000,
        "apply_for_ep_owner": false,
        "image_name": "ANY.png",
        "required_chain_id_hex": null,
        "grace_period": null,
        "mfa_tags": []
    }
  ],
  "current_method": "WEBAUTH:1",
  "completed_methods": [
    "WEBAUTH:1"
  ],
  "logon_process_id": "eurdv8XtHCYrUM6YgPkIQm3WMuF1Kwnb",
  "event_name": "",
  "event_type": "Generic",
  "event_data_id": "",
  "data_id": "",
  "category_id": ""
}

The final result when error:
{
  "status": "FAILED",
  "msg": "Web Authentication has failed",
  "linked_logon": false,
  "reason": "WEBAUTH_FAILED",
  "plugins": [],
  "msgid": "AUCORE-3058",
  "chains": [
    {
      "id_hex": null,
      "tenant_id": "def0def0def0def0def0def0def0def0",
      "is_trusted": null,
      "is_enabled": true,
      "name": "TEST CHAIN",
      "short_name": "",
      "methods": [
          "ANY"
      ],
      "position": 1000,
      "apply_for_ep_owner": false,
      "image_name": "ANY.png",
      "required_chain_id_hex": null,
      "grace_period": null,
      "mfa_tags": []
    }
  ],
  "current_method": "WEBAUTH:1",
  "completed_methods": [],
  "logon_process_id": "XqxaOgvchUZB1vdWAMxQ3opIzMhpZaFA",
  "event_name": "",
  "event_type": "Generic",
  "event_data_id": "",
  "data_id": "",
  "category_id": ""
}

LEGACY - WEBAUTH:1 logon:
POST/api/v1/logon/{logon_process_id}/do_logon

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

WEBAUTH:1 logon steps:

  1. Send “response” with redirection code to do_logon and check status.

  2. Open the URL /webauth/{logon_process_id}/login in browser.

  3. Go through authentication steps in browser.

  4. Send “response” with or without redirection parameters to do_logon and check status.

Error reasons:

  • WEBAUTH_WAITING_DATA

  • WEBAUTH_FAILED

URI Parameters
HideShow
logon_process_id
32 symbol id (required) Example: qC3pQSmnA4Lto7JxTEQ7pn9DwSM5Vboz

ID of the logon process


WINHELLO:1 enroll:

POST /api/v1/enroll/do_enroll
Requestsenroll
Headers
Enroll-Process-Id: QS1iU5VtbIvLTaXiYEm11s4FDowYlWrw
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "account_name": "abcdef",
    "id": "c1e1c72a9bd070b4088f02b5df5f89abecad1b7ecced50da62542f8c794b8fb7",
    "pkey": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af",
    "user_sid": "0105000000000005150000008fabdc762a5e01157827e7a08c040000"
  }
}
Responses200
Headers
Enroll-Process-Id: QS1iU5VtbIvLTaXiYEm11s4FDowYlWrw
Content-Type: application/json
Body
{
  "method_id": "WINHELLO:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

WINHELLO:1 enroll:
POST/api/v1/enroll/do_enroll

Enroll a new Windows Hello authenticator for a user.

Send request to do enroll and check status.

Error reasons:

  • MISSING_PARAMETERS

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • response: dict (required*)

    • Please see the examples.
  • id: string (required*)

    • The key pair ID. Can be used for quick checking that user provide correct finger.
  • pkey: string (required*)

    • The RSA public key which can be used on server side to validate signature.
  • user_sid: string (required*)

    • The RSA public key which can be used on server side to validate signature.

Note: UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/wh/enroll


LEGACY - WINHELLO:1 enroll:

POST /api/v1/enroll/JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX/do_enroll
Requestsenroll
Headers
Content-Type: application/json
Body
{
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "response": {
    "account_name": "abcdef",
    "id": "c1e1c72a9bd070b4088f02b5df5f89abecad1b7ecced50da62542f8c794b8fb7",
    "pkey": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af",
    "user_sid": "0105000000000005150000008fabdc762a5e01157827e7a08c040000"
  }
}
Responses200
Headers
Content-Type: application/json
Body
{
  "method_id": "WINHELLO:1",
  "msg": "Enrollment is complete",
  "msgid": "AUCORE-3001",
  "reason": "",
  "status": "OK"
}

LEGACY - WINHELLO:1 enroll:
POST/api/v1/enroll/{enroll_process_id}/do_enroll

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Send request to do_enroll and check status.

Fields description: pkey: RSA public key which can be used on server side to validate signature (hex encoded string) id: Key pair ID. Can be used for quick checking that user provide correct finger (string) user_sid: SID of account which profile was used to storing key pair (hex encoded string)

Error reasons:

  • MISSING_PARAMETERS

UI uses Device Service by calling this url: https://127.0.0.1:8442/api/v1/wh/enroll

URI Parameters
HideShow
enroll_process_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the enroll process


WINHELLO:1 logon:

POST /api/v1/logon/do_logon
Requests1. Ask server for hash challenge2. Send signed hash challenge using private key of enrolled user to do_logon
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Content-Type: application/json
Body
{
        "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
        "current_method": "WINHELLO:1",
        "reason": "WINHELLO_WAITING_AUTH_SIGNATURE",
        "event_data_id": "",
        "msgid": "AUCORE-2059",
        "plugins": [],
        "challenge": '66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af',
        "event_name": "TEST",
        "msg": "Waiting for an authentication response",
        "chains": [
            {
                "short_name": "",
                "required_chain_id_hex": null,
                "position": 0,
                "is_enabled": true,
                "methods": ["WINHELLO:1"],
                "image_name": "WINHELLO_1.png",
                "grace_period": null,
                "name": "Test-chain",
                "id_hex": "42b312980c8911e69140080027983191",
                "apply_for_ep_owner": false,
                "is_trusted": null
            }
        ],
        "completed_methods": [],
        "status": "MORE_DATA"
    }
Headers
Content-Type: application/json
Body
{
  "response": {
    "signature": "66fd6ef831e4ec98957030be94189a78ca3c2986dbed57a3b97985d862c217af",
    "id": "c1e1c72a9bd070b4088f02b5df5f89abecad1b7ecced50da62542f8c794b8fb7",
    "user_sid": "0105000000000005150000008fabdc762a5e01157827e7a08c040000"
  },
  "endpoint_session_id": "4CkX5jecFnGrv4wIoP83ADpVORjk7zqZ"
}
Responses200
Headers
Content-Type: application/json
Body
{
        "data_id": "",
        "logon_process_id": "tvV9a4UNEf71yvZDxwJQ179SJnHQndmT",
        "current_method": "WINHELLO:1",
        "event_data_id": "",
        "user_id": "3a76753d7f931751c79fa05d80eb058e",
        "repo_id": "42987aa00c8911e69140080027983191",
        "msgid": "AUCORE-2001",
        "plugins": [],
        "repo_obj_id": "42a3962e0c8911e69140080027983191",
        "event_name": "TEST",
        "msg": "Welcome",
        "chains": [
            {
                "short_name": "",
                "required_chain_id_hex": null,
                "position": 0,
                "is_enabled": true,
                "methods": ["WINHELLO:1"],
                "image_name": "WINHELLO_1.png",
                "grace_period": null,
                "name": "Test-chain",
                "id_hex": "42b312980c8911e69140080027983191",
                "apply_for_ep_owner": false,
                "is_trusted": null
            }
        ],
        "user_name": "LOCAL\USER1",
        "completed_methods": ["WINHELLO:1"],
        "status": "OK",
        "login_session_id": "Cga6cvaMTaMTaDp5TLZHPOet29O808VL"
    }

WINHELLO:1 logon:
POST/api/v1/logon/do_logon

Perform the authentication step of the logon process based on the Windoes Hello.

Logon steps:

  1. Send empty request to do logon to ask server for hash challenge.
  2. Send signed hash using private key of enrolled user to do logon.

Request Body Parameters

  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • response: dict (optional)

    • Please see the examples.

OTP tokens

OATH tokens manager rest api. Requires login_session_id. Logged user must be member of FULL ADMINS or ENROLL ADMINS.

Get otp tokens with pagination:

GET /api/v1/otp_tokens?offset=0&limit=50&otp_token_id=f1be127607dc11e69bae080027983191
Responses200
Headers
Content-Type: application/json
Login-Session-Id: yz7xGbT5PGq5AwlWCSUXh0kI30lQtVp6
Body
{
  "tokens": [
    {
      "id": "d1a69020962e11e89e8f0242ac1b0002",
      "serial": "987654321",
      "type": "hotp",
      "otplen": 8,
      "time_step": null,
      "counter": 0,
      "hashlib": "",
      "ocrasuite": "",
      "public_id": "",
      "auth_template_id": null
    },
    {
      "id": "d1a6a04c962e11e89e8f0242ac1b0002",
      "serial": "987654323",
      "type": "pin",
      "otplen": 4,
      "time_step": null,
      "counter": null,
      "hashlib": "",
      "ocrasuite": "",
      "public_id": "",
      "auth_template_id": null
    },
    {
      "id": "c43028e8962e11e89e8f0242ac1b0002",
      "serial": "cc0000000000_1(cccccccccccc)",
      "type": "hotp",
      "otplen": 8,
      "time_step": null,
      "counter": null,
      "hashlib": "",
      "ocrasuite": "",
      "public_id": "cc0000000000",
      "auth_template_id": null
    }
  ]
}

Get otp tokens with pagination:
GET/api/v1/otp_tokens?offset={offset}&limit={limit}&otp_token_id={otp_token_id}

URI Parameters
HideShow
otp_token_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the otp token

limit
int (optional) Example: 50

The page size. default to 50. max 50.

offset
int (optional) Example: 0

The offset for pagination. Default to 0.


LEGACY - Get otp tokens with pagination:

GET /api/v1/otp_tokens?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&offset=0&limit=50&otp_token_id=f1be127607dc11e69bae080027983191
Responses200
Headers
Content-Type: application/json
Body
{
  "tokens": [
    {
      "id": "d1a69020962e11e89e8f0242ac1b0002",
      "serial": "987654321",
      "type": "hotp",
      "otplen": 8,
      "time_step": null,
      "counter": 0,
      "hashlib": "",
      "ocrasuite": "",
      "public_id": "",
      "auth_template_id": null
    },
    {
      "id": "d1a6a04c962e11e89e8f0242ac1b0002",
      "serial": "987654323",
      "type": "pin",
      "otplen": 4,
      "time_step": null,
      "counter": null,
      "hashlib": "",
      "ocrasuite": "",
      "public_id": "",
      "auth_template_id": null
    },
    {
      "id": "c43028e8962e11e89e8f0242ac1b0002",
      "serial": "cc0000000000_1(cccccccccccc)",
      "type": "hotp",
      "otplen": 8,
      "time_step": null,
      "counter": null,
      "hashlib": "",
      "ocrasuite": "",
      "public_id": "cc0000000000",
      "auth_template_id": null
    }
  ]
}

LEGACY - Get otp tokens with pagination:
GET/api/v1/otp_tokens?login_session_id={login_session_id}&offset={offset}&limit={limit}&otp_token_id={otp_token_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

otp_token_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the otp token

offset
int (optional) Example: 0

offset for pagination, default 0

limit
int (optional) Example: 50

page size, default 50, max 50


Create otp token:

POST /api/v1/otp_tokens
RequestsCreate HOTP tokenCreate TOTP token
Headers
Content-Type: application/json
Login-Session-Id: 0VR4D5QggmBgTRKBTrJivKG1jKDb76o9
Body
{
  "hmac_key": "182903812382912802381049923198",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "counter": 10
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": 60,
  "hashlib": "sha256",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": null
}
Headers
Content-Type: application/json
Login-Session-Id: 0VR4D5QggmBgTRKBTrJivKG1jKDb76o9
Body
{
  "hmac_key": "182903812382912802381049923198",
  "serial": "987654321",
  "type": "totp",
  "otplen": 8,
  "time_step": 60,
  "hashlib":"sha256",
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": 60,
  "hashlib": "sha256",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": null
}

Create otp token:
POST/api/v1/otp_tokens

Create an OTP token using this call.

Request Body Parameters

  • serial: dict (required*)

    • The id of the token.
  • type: dict (required*)

    • The type of the OTP token. One of the [‘hotp’, ‘pin’, ‘totp’, ‘ocra’]
  • otplen: dict (required*)

    • The length of the OTP.
  • hmac_key: dict (required*)

    • The secret of the OTP token.
  • counter: dict (optional)

    • the OTP generation counter.
  • hashlib: string (optional)

    • The hash library. One of the [‘sha1’, ‘sha256’, ‘sha512’]
  • time_step: dict (optional)

    • The TOTP time step.
  • public_id: dict (optional)

    • The public ID of the yubikey.

LEGACY - Create otp token:

POST /api/v1/otp_tokens?login_session_id=JZA3VnSMbvW04ZoqejJvD0NYa9awyPge
RequestsCreate hotp tokenCreate totp token
Headers
Content-Type: application/json
Body
{
  "hmac_key": "182903812382912802381049923198",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "counter": 10
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": 60,
  "hashlib": "sha256",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": null
}
Headers
Content-Type: application/json
Body
{
  "hmac_key": "182903812382912802381049923198",
  "serial": "987654321",
  "type": "totp",
  "otplen": 8,
  "time_step": 60,
  "hashlib":"sha256",
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": 60,
  "hashlib": "sha256",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": null
}

LEGACY - Create otp token:
POST/api/v1/otp_tokens?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Body params:

  • hashlib - one of ‘sha1’, ‘sha256’, ‘sha512’

  • type - one of ‘hotp’, ‘pin’, ‘totp’, ‘ocra’

  • otplen - length of otp, required

  • counter - the OTP generation counter

  • hmac_key - otp token’s secret, required

  • time_step - TOTP time step

  • public_id - yubikey public id

  • serial - id of token

URI Parameters
HideShow
login_session_id
string (required) Example: JZA3VnSMbvW04ZoqejJvD0NYa9awyPge

ID of the login session


Get otp token:

GET /api/v1/otp_tokens/f1be127607dc11e69bae080027983191
Responses200
Headers
Login-Session-Id: D7Tzd7CFXNsGFZiDtkYxSp15RpJzHe5u
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": null,
  "counter": 0,
  "hashlib": "",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": null
}

Get otp token:
GET/api/v1/otp_tokens/{otp_token_id}

URI Parameters
HideShow
otp_token_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the OTP token.


LEGACY - Get otp token:

GET /api/v1/otp_tokens/f1be127607dc11e69bae080027983191?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": null,
  "counter": 0,
  "hashlib": "",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": null
}

LEGACY - Get otp token:
GET/api/v1/otp_tokens/{otp_token_id}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

otp_token_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the otp token


Delete otp token:

DELETE /api/v1/otp_tokens/f1be127607dc11e69bae080027983191

Delete otp token:
DELETE/api/v1/otp_tokens/{otp_token_id}

Delete the activated OTP token.

URI Parameters
HideShow
otp_token_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the OTP token.


LEGACY - Delete otp token:

DELETE /api/v1/otp_tokens/f1be127607dc11e69bae080027983191?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

LEGACY - Delete otp token:
DELETE/api/v1/otp_tokens/{otp_token_id}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

otp_token_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the otp token


Enroll otp token:

POST /api/v1/otp_tokens/f1be127607dc11e69bae080027983191/enroll
RequestsEnroll otp token
Headers
Content-Type: application/json
Login-Session-Id: RIqpcQz3VhPNV0ArDEWPFVrZZbM8otbJ
Body
{
  "user_id": "f1be127607dc11e69bae080027983191"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": null,
  "counter": 0,
  "hashlib": "",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": "f1be127607dc11e69bae080027983191",
  "owner": "User1"
}

Enroll otp token:
POST/api/v1/otp_tokens/{otp_token_id}/enroll

Enroll an OTP token authenticator for a user.

Request Body Parameters

  • user_id: string (required*)
    • The ID of the user.
URI Parameters
HideShow
otp_token_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the OTP token.


LEGACY - Enroll otp token:

POST /api/v1/otp_tokens/f1be127607dc11e69bae080027983191/enroll?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
RequestsEnroll otp token
Headers
Content-Type: application/json
Body
{
  "user_id": "f1be127607dc11e69bae080027983191"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "d1a69020962e11e89e8f0242ac1b0002",
  "serial": "987654321",
  "type": "hotp",
  "otplen": 8,
  "time_step": null,
  "counter": 0,
  "hashlib": "",
  "ocrasuite": "",
  "public_id": "",
  "auth_template_id": "f1be127607dc11e69bae080027983191",
  "owner": "User1"
}

LEGACY - Enroll otp token:
POST/api/v1/otp_tokens/{otp_token_id}/enroll?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

otp_token_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the otp token


Revoke otp token:

DELETE /api/v1/otp_tokens/f1be127607dc11e69bae080027983191/enroll

Revoke otp token:
DELETE/api/v1/otp_tokens/{otp_token_id}/enroll

Revoke the enrolled OTP token.

URI Parameters
HideShow
otp_token_id
string (required) Example: f1be127607dc11e69bae080027983191

The ID of the OTP token.


LEGACY - Revoke otp token:

DELETE /api/v1/otp_tokens/f1be127607dc11e69bae080027983191/enroll?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

LEGACY - Revoke otp token:
DELETE/api/v1/otp_tokens/{otp_token_id}/enroll?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

otp_token_id
32 symbol id (required) Example: f1be127607dc11e69bae080027983191

ID of the otp token


Policies

Read object policies. Requires logged_session_id.

No writes. Setting policies is the task of admin UI.

Policies are defined for component. “Component policies” is dictionary of values. Value is any json-serializable object, maybe nested dict::

{
   "component_id":{
      "policy1":"value",
      "policy2":"value"
   }
}

Service returns effective policies. Effective is default component policies overridden by object-specific policies.

Read effective policies of user :

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/effective_policy
Responses200
Headers
Login-Session-Id: 8fnukhR8fdurvnWObeeEZ9iNF2V5C2lL
Content-Type: application/json
Body
{
  "policy": {
    "HelpdeskOptions": {
      "component_id": "HelpdeskOptions",
      "data": {
        "require_user_credentials": false
      }
    },
    "LoginOptions": {
      "component_id": "LoginOptions",
      "data": {
        "default_repos": [
          "LOCAL"
        ],
        "nondefault_repos": []
      }
    }
  }
}

Read effective policies of user :
GET/api/v1/users/{user_id}/effective_policy

Retrieves the effective set of policies that apply to a specific user.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - Read effective policies of user :

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/effective_policy?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "policy": {
    "HelpdeskOptions": {
      "component_id": "HelpdeskOptions",
      "data": {
        "require_user_credentials": false
      }
    },
    "LoginOptions": {
      "component_id": "LoginOptions",
      "data": {
        "default_repos": [
          "LOCAL"
        ],
        "nondefault_repos": []
      }
    }
  }
}

LEGACY - Read effective policies of user :
GET/api/v1/users/{user_id}/effective_policy?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


Read info about specific component of effective user policy

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod
Responses200
Headers
Login-Session-Id: tjVRlhTkbO7A3AvPkCKhMRrVIvbczajj
Content-Type: application/json
Body
{
  "policy": {
    "component_id": "TOTPMethod",
    "data": {
      "otp_format": "dec6",
      "otp_period": 30,
      "otp_window": 4,
      "use_key_uri_format_qr": false
    }
  }
}

Read info about specific component of effective user policy
GET/api/v1/users/{user_id}/effective_policy/{component}

Retrieves detailed information about a specific component within a user’s effective policy.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.

component
string (required) Example: TOTPMethod

The name of the component.


LEGACY - Read info about specific component of effective user policy

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "policy": {
    "component_id": "TOTPMethod",
    "data": {
      "otp_format": "dec6",
      "otp_period": 30,
      "otp_window": 4,
      "use_key_uri_format_qr": false
    }
  }
}

LEGACY - Read info about specific component of effective user policy
GET/api/v1/users/{user_id}/effective_policy/{component}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

component
string (required) Example: TOTPMethod

Component name


Read info about field of specific component of effective user policy

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod/data
Responses200
Headers
Login-Session-Id: JVk1ScPjRx94A91Zpdl2gKdM87qG9BgM
Content-Type: application/json
Body
{
  "policy": {
    "otp_format": "dec6",
    "otp_period": 30,
    "otp_window": 4,
    "use_key_uri_format_qr": false
  }
}

Read info about field of specific component of effective user policy
GET/api/v1/users/{user_id}/effective_policy/{component}/{field}

Retrieves the value and related details of a specific field within a component of a user’s effective policy.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.

component
string (required) Example: TOTPMethod

The name of the component.

field
string (required) Example: data

The name of the field.


LEGACY - Read info about field of specific component of effective user policy

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod/data?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "policy": {
    "otp_format": "dec6",
    "otp_period": 30,
    "otp_window": 4,
    "use_key_uri_format_qr": false
  }
}

LEGACY - Read info about field of specific component of effective user policy
GET/api/v1/users/{user_id}/effective_policy/{component}/{field}?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session

component
string (required) Example: TOTPMethod

Component name

field
string (required) Example: data

Field name


Read effective policies of endpoint:

GET /api/v1/endpoints/4f34e2882991440ddd0fd515e0d0236c/effective_policy
Responses200
Headers
Endpoint-Session-Id: cNLZQtlx7qExIRixy20N3xM2ZWXnGDKY
Content-Type: application/json
Body
{
  "policy": {
    "HelpdeskOptions": {
      "component_id": "HelpdeskOptions",
      "data": {
        "require_user_credentials": false
      }
    },
    "LoginOptions": {
      "component_id": "LoginOptions",
      "data": {
        "default_repos": [
          "LOCAL"
        ],
        "nondefault_repos": []
      }
    }
  }
}

Read effective policies of endpoint:
GET/api/v1/endpoints/{endpoint_id}/effective_policy

Retrieves the complete set of effective policies applied to a specific endpoint.

Note: return default policies (not effective)

URI Parameters
HideShow
endpoint_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the endpoint.


LEGACY - Read effective policies of endpoint:

GET /api/v1/endpoints/4f34e2882991440ddd0fd515e0d0236c/effective_policy?endpoint_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "policy": {
    "HelpdeskOptions": {
      "component_id": "HelpdeskOptions",
      "data": {
        "require_user_credentials": false
      }
    },
    "LoginOptions": {
      "component_id": "LoginOptions",
      "data": {
        "default_repos": [
          "LOCAL"
        ],
        "nondefault_repos": []
      }
    }
  }
}

LEGACY - Read effective policies of endpoint:
GET/api/v1/endpoints/{endpoint_id}/effective_policy?endpoint_session_id={endpoint_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Note: return default policies(not effective)

URI Parameters
HideShow
endpoint_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the endpoint

endpoint_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the endpoint session


Read info about specific component of endpoint effective policy

GET /api/v1/endpoints/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod
Responses200
Headers
Endpoint-Session-Id: eTvcpxC0bwnAKyxhiJERB3cQSobtMVcT
Content-Type: application/json
Body
{
  "policy": {
    "component_id": "TOTPMethod",
    "data": {
      "otp_format": "dec6",
      "otp_period": 30,
      "otp_window": 4,
      "use_key_uri_format_qr": false
    }
  }
}

Read info about specific component of endpoint effective policy
GET/api/v1/endpoints/{endpoint_id}/effective_policy/{component}

Retrieves detailed information about a specific component within an endpoint’s effective policy.

Note: return default policies (not effective)

URI Parameters
HideShow
endpoint_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the endpoint.

component
string (required) Example: TOTPMethod

The name of the component.


LEGACY - Read info about specific component of endpoint effective policy

GET /api/v1/endpoints/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod?endpoint_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "policy": {
    "component_id": "TOTPMethod",
    "data": {
      "otp_format": "dec6",
      "otp_period": 30,
      "otp_window": 4,
      "use_key_uri_format_qr": false
    }
  }
}

LEGACY - Read info about specific component of endpoint effective policy
GET/api/v1/endpoints/{endpoint_id}/effective_policy/{component}?endpoint_session_id={endpoint_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Note: return default policies(not effective)

URI Parameters
HideShow
endpoint_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the endpoint

endpoint_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the endpoint session

component
string (required) Example: TOTPMethod

Component name


Read info about field specific component for endpoint effective policy

GET /api/v1/endpoints/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod/data
Responses200
Headers
Endpoint-Session-Id: YiQ4rZugS9lYoiEVlzas9Ytdwe92o9pb
Content-Type: application/json
Body
{
  "policy": {
    "otp_format": "dec6",
    "otp_period": 30,
    "otp_window": 4,
    "use_key_uri_format_qr": false
  }
}

Read info about field specific component for endpoint effective policy
GET/api/v1/endpoints/{endpoint_id}/effective_policy/{component}/{field}

Retrieves the value and related details of a specific field within a component of an endpoint’s effective policy.

Note: return default policies (not effective)

URI Parameters
HideShow
endpoint_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the endpoint.

component
string (required) Example: TOTPMethod

The name of the component.

field
string (required) Example: data

The name of the field.


LEGACY - Read info about field specific component for endpoint effective policy

GET /api/v1/endpoints/4f34e2882991440ddd0fd515e0d0236c/effective_policy/TOTPMethod/data?endpoint_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "policy": {
    "otp_format": "dec6",
    "otp_period": 30,
    "otp_window": 4,
    "use_key_uri_format_qr": false
  }
}

LEGACY - Read info about field specific component for endpoint effective policy
GET/api/v1/endpoints/{endpoint_id}/effective_policy/{component}/{field}?endpoint_session_id={endpoint_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Note: return default policies(not effective)

URI Parameters
HideShow
endpoint_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the endpoint

endpoint_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the endpoint session

component
string (required) Example: TOTPMethod

Component name

field
string (required) Example: data

Field name


Repositories

Repository Operations

Get repositories list:

GET /api/v1/repositories
Responses200
Headers
Content-Type: application/json
Body
{
    [
        {
            'id': <repository id>,
            'name': <repository name>,
            'class_name': <repository class name>,
            'config': <repository config>
        }
    ]
}

Get repositories list:
GET/api/v1/repositories

Retrieves a list of all configured user repositories within the system.


SCIM

Advanced Authentication SCIM API

This is a limited implementation of System for Cross-domain Identity Management (SCIM). This SCIM Service Provider is intended to support just enough SCIM version 2.0 to allow external identity providers to provision or deprovision into an AA system.

For full information on SCIM 2.0 please refer to simplecloud.info

SCIM Resource Endpoints

SCIM User and Group endpoints are supported, however Self, Resource Types, Search or Query using HTTP POST are not supported.

Experimental support is present for Schema, and Service Provider Config.

Additional currently unsupported SCIM features:

  • meta.created and meta.version fields

  • meta.lastModified does not change on groups when group membership is modified.

  • meta.lastModified does not change when a PATCH is executed on a User.

  • Resource Versioning and ETags

  • primary, type, display, and $ref are not stored or modifiable on phone and email attributes.

  • Lists do not return totalResults, however startIndex and itemsPerPage are returned as part of pagination.

Authentication

When the SCIM repository is created a long term bearer token is issued, this bearer token is the preferred method for authenticating to the system. See SCIM Authentication and Authorization It is also possible to authenticate using standard Advanced Authentication mechanisms. The authentication must be to either the AdminUI event or the SCIM event and the authenticated user must be in the admin role. At the conclusion of the authentication a login session id is created. This session id may be passed to all SCIM calls using either the query parameter ‘login_session_id’ or adding the login_session_id directly to the JSON payload. Service accounts using client credential grant may pass their token with audience (resource) indicating which scim repo they are accessing. “https://{tenantname}.or.cyberresdev.com/scim/v2/repo/{repo_name}” There should never be multiple scim repos listed in the audiences for a given token. Alternatively service accounts can be granted the tenant admin role and pass a scope of aa:SCIM to be considered authenticated. See Service Accounts in the SaaS API doc for additional details.

Repositories

The SCIM API provides Create, Read, Update, and Delete for users and groups in SCIM repositories. The API only provides read access to non-SCIM external repositories.

AA SCIM developer notes:

  • On calls that accept an {id} the passed id must match the id returned from a get or create call. This is an system specific object id, and is neither the external id passed during create, nor correlated with any non SCIM ids.

  • If there is more than one tenant on the AA system the caller must either use the bearer token issued at repository creation time, or must use a tenant specific host name, or must pass the tenant_name parameter on all calls.

  • If there is more than one SCIM repository on the AA system the caller must either use the bearer token issued at repository creation time which identifies the repository, or must pass the repo_name query parameter on all calls, or must use the alternative path /scim/v2/repo/{repo_name}/{SCIM Resource}

  • The AA SCIM implementation supports the following non-stander parameters on all API calls:
    _session_id, repo_name, and tenant_name. These parameters are not part of the SCIM standard and may not be supported by any client libraries your application consumes.

  • Because pagination is not stateful, clients MUST be prepared to handle inconsistent results.

  • Requestors often fail to set Accept and Content-Type headers to application/scim+json.

  • Http codes 200-299 are all versions of success. Implementations only checking for status code 200 will not integrate properly. “The 2xx (Successful) class of status code indicates that the client’s request was successfully received, understood, and accepted” from RFC 9110

Currently Unsupported SCIM features:

  • meta.created, meta.location, or meta.version fields

  • meta.lastModified does not change on groups when group membership is modified.

  • meta.lastModified does not change when a PATCH is executed on a User.

  • Resource Versioning and ETags

  • [Modifying with Patch)(https://tools.ietf.org/html/rfc7644#section-3.5.2) does not support the “attributes” query parameter. The modified object is never returned. HTTP status code 204 (No Content) is the expected return value.

  • primary, type, display, and $ref are not stored or modifiable on phone and email attributes.

  • Lists do not return totalResults, however startIndex and itemsPerPage are returned as part of pagination.

Custom User attributes

To set custom attributes on a user use the following syntax:

POST https://aa.iam-saas.com/scim/v2/Users
Response:
{
   "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User", "urn:scim:schemas:extension:custom:1.0"],
   "userName": "sasopsadmin12", 
   "externalId": "sasopsadmin12", 
   "name": {
      "formatted": "SaaS OPS Bootstrap Administrator", 
      "familyName": "SaaS", 
      "middleName": "", 
      "givenName": "Operations Administrator"
   }, 
   "password": "1234567890abc", 
   "emails": [
      {"type": "other", "value": "sasopsadmin12@cloud-iga.com"}
   ], 
   "urn:scim:schemas:extension:custom:1.0": {
      "dn": "sasopsadmin12"
   }
}

To read custom attributes on a user the custom attribute name must be part of the attributes query parameter.

GET https://aa.iam-saas.com/scim/v2/Users/u:13efe47dee95f360133a9aa40abaad55?attributes=urn:scim:schemas:extension:custom:1.0:dn

Response:
{
   "id": "u:13efe47dee95f360133a9aa40abaad55", 
   "externalId": "saasopsadmin1", 
   "userName": "SAASOPSADMIN1@IAM-SAAS.COM", 
   "meta": {"resourceType": "User"}, 
   "active": false, 
   "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], 
   "emails": [{"type": "other", "value": "saasopsadmin1@iam-saas.com"}]
   "urn:scim:schemas:extension:custom:1.0": { 
      "dn": "saasopsadmin" 
   } 
}

Passwords and other Methods

Any method which requires enrollment doesn’t require the exchange of hardware or information like keys, nonces, timestamps, or questions may be set through SCIM. See the enroll section of the API docs for the format of the enroll.

{
   "schemas": ["urn:scim:schemas:extension:aa:1.0"],
   "PASSWORD:1": {
      "password_must_be_changed": true,
      "password": "Funky password value here"
   }
}

{
   "schemas": ["urn:scim:schemas:extension:aa:1.0"],
   "RADIUS:1": {
      "user_name": "my_radius_user_name"
   }
}

Password Must Be Changed

You can create a User and force them to change their password during login by combining the following with your User creation request:

{
   "schemas": ["urn:scim:schemas:extension:aa:1.0"],
   "urn:scim:schemas:extension:aa:1.0": {
      "password_must_be_changed": true
   }
}

Query users:

GET /scim/v2/Users?&startIndex=1&count=100&attributes=urn:scim:schemas:extension:custom:1.0:dn,externalId,name,emails&excludedAttributes=name.formatted&filter=emails eq "john@example.com" or email eq "john@example.org"
RequestsCreate User
Headers
Content-Type: application/scim+json
Body
{
  "externalId": "999999999",
  "active": true,
  "userName": "username4",
  "password": "electric horse battery staple",
  "emails": [
    {
      "primary": true,
      "type": "work",
      "value": "name4@frog.com"
    }
  ],
  "name": {
    "formatted": "Test User",
    "familyName": "User",
    "givenName": "Test"
  },
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User"
  ],
  "meta": {
    "resourceType": "User"
  },
  "roles": [
    {
      "display": "SERVICE ACCOUNTS"
    }
  ]
}
Responses200
Headers
Content-Type: application/scim+json
Body
{
        "id": "u:0be8eaca2b1f08b6d2b0403f06c29681",
        "schemas": [
            "urn:ietf:params:scim:schemas:core:2.0:User"
        ],
        "externalId": "999999999",
        "userName": "username4",
        "active": true,
        "emails": [
            {
            "value": "name4@frog.com",
            "primary": true,
            "type": "other"
            }
        ],
        "roles": [
            {
                "value": "r:65d3acd6c11e11eeb2920242ac110004",
                "display": "ALL USERS"
            },
            {
                "value": "r:65d366d6c11e11eeb2920242ac110004",
                "display": "SERVICE ACCOUNTS"
            }
        ],
       "name": {
            "formatted": "Test User",
            "familyName": "User",
            "givenName": "Test"
        },
        "meta": {
            "resourceType": "User",
            "lastModified": "2024-02-01T16:24:53.408835"
        },
        "urn:scim:schemas:extension:aa:1.0": {
            "PASSWORD:1": {
            "status": "OK",
            "msg": "",
            "reason": "",
            "method_id": "PASSWORD:1"
            }
        }
[PUT /scim/v2/Users/{id:[eu]{1}:[a-f0-9]{32}|.search}]

[DELETE /scim/v2/Users/{id:[eu]{1}:[a-f0-9]{32}|.search}]

[PATCH /scim/v2/Users/{id:[eu]{1}:[a-f0-9]{32}|.search}]

Query users:
GET/scim/v2/Users?&startIndex={startIndex}&count={count}&attributes={attributes}&excludedAttributes={excludedAttributes}&filter={filter}

Requires authentication. Supports pagination, and attributes control.

See the SCIM documentation for details on the Query Resource protocol, User schema, Minimal User representation, and Full User representation.

Supports filtering of userName, externalId, and email.

Filtering examples:
- Users?filter=emails[value eq "john@example.com"]
- Users?filter=emails[value eq "john@example.com" or value eq "john@example.org"]
- Users?filter=userName eq “john” or (externalId eq “123” and userName eq “steve”)

Does not support sorting.

URI Parameters
HideShow
startIndex
integer (optional) Example: 1

The 1-based index of the first query result. See pagination.

count
integer (optional) Example: 100

Specifies the desired maximum number of query results per page. See pagination.

attributes
string (optional) Example: urn:scim:schemas:extension:custom:1.0:dn,externalId,name,emails

Attributes to return instead of the default return set. See attributes control.

excludedAttributes
string (optional) Example: name.formatted

Attributes to exclude from the return. See attributes control.

filter
string (required) Example: emails eq "john@example.com" or email eq "john@example.org"

Limited filter expression. See filtering.


Query a known user:

GET /scim/v2/Users/u:13efe47dee95f360133a9aa40abaad55?attributes=urn:scim:schemas:extension:custom:1.0:dn,externalId,name,emails&excludedAttributes=name.formatted

Query a known user:
GET/scim/v2/Users/{id}?attributes={attributes}&excludedAttributes={excludedAttributes}

Requires authentication. Supports attributes control](https://tools.ietf.org/html/rfc7644#section-3.4.2.5).

See the SCIM documentation for details on the Retrieving a Known Resource protocol, User schema, Minimal User representation, and Full User representation.

URI Parameters
HideShow
id
string (required) Example: u:13efe47dee95f360133a9aa40abaad55

ID of the user.

attributes
string (optional) Example: urn:scim:schemas:extension:custom:1.0:dn,externalId,name,emails
excludedAttributes
string (optional) Example: name.formatted

Replace user:

PUT /scim/v2/Users/u:13efe47dee95f360133a9aa40abaad55

Replace user:
PUT/scim/v2/Users/{id}

Replaces all attributes of a User. It is recommended to GET a user, make your changes, then submit that user object to this API.

See the SCIM documentation for details on the Replace with PUT protocol and user schema.

URI Parameters
HideShow
id
string (required) Example: u:13efe47dee95f360133a9aa40abaad55

ID of the user.


Delete user:

DELETE /scim/v2/Users/u:13efe47dee95f360133a9aa40abaad55
Responses204
This response has no content.

Delete user:
DELETE/scim/v2/Users/{id}

This implementation does permanently delete the resource. See the SCIM documentation for details on the delete resource protocol.

URI Parameters
HideShow
id
string (required) Example: u:13efe47dee95f360133a9aa40abaad55

ID of the user.


Update user:

PATCH /scim/v2/Users/u:13efe47dee95f360133a9aa40abaad55?attributes=urn:scim:schemas:extension:custom:1.0:dn,externalId,name,emails&excludedAttributes=name.formatted
RequestsChange PasswordAlternative format for Change Password
Headers
Content-Type: application/scim+json
Body
{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "replace",
      "value": {
        "password": "new password string"
      }
    }
  ]
}
Responses204
This response has no content.
Headers
Content-Type: application/scim+json
Body
{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:User"
  ],
  "Operations": [
    {
      "op": "replace",
      "path": "password",
      "value": "new password string"
    }
  ]
}
Responses204
This response has no content.

Update user:
PATCH/scim/v2/Users/{id}?attributes={attributes}&excludedAttributes={excludedAttributes}

Returns 204 and no body unless the attributes parameter is passed, see attributes control.

URI Parameters
HideShow
id
string (required) Example: u:13efe47dee95f360133a9aa40abaad55

ID of the user.

attributes
string (optional) Example: urn:scim:schemas:extension:custom:1.0:dn,externalId,name,emails

Attributes to return instead of the default return set. See attributes control.

excludedAttributes
string (optional) Example: name.formatted

Attributes to exclude from the return. See attributes control.


Query all groups:

GET /scim/v2/Groups?&startIndex=1&count=100&filter=externalId eq "123"

Query all groups:
GET/scim/v2/Groups?&startIndex={startIndex}&count={count}&filter={filter}

Supports pagination. See the SCIM documentation for details on the [query protocol] (https://tools.ietf.org/html/rfc7644#section-3.4.1) and group schema.

Supports filtering of displayName and externalId filtering.

Filtering examples: - /Groups?filter=displayName eq “ALL”
- /Groups?filter=externalId eq “123”
- /Groups?filter=externalId eq “123” and displayName eq “ALL”

URI Parameters
HideShow
startIndex
integer (optional) Example: 1

The 1-based index of the first query result. See pagination.

count
integer (optional) Example: 100

Specifies the desired maximum number of query results per page. See pagination.

filter
string (required) Example: externalId eq "123"

Limited filter expression. See filtering.


Create group:

POST /scim/v2/Groups
Requestsexample 1
Headers
Content-Type: application/scim+json
Body
{
  "schemas": [
    "urn:ietf:params:scim:schemas:core:2.0:group"
  ],
  "displayName": "toadsOfTheWorld",
  "externalId": "1234567891212"
}
Responses200
Headers
Content-Type: application/scim+json
Body
{
        "id": "g:3b9992aa7b126f16f0c7d6df72147b19",
        "externalId": "1234567891212",
        "displayName": "toadsOfTheWorld",
        "meta": {
            "resourceType": "Group",
            "lastModified": "2024-02-01T16:10:10.094888"
        },
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"]
    }
[PUT /scim/v2/Groups/{id:[egr]{1}:[a-f0-9]{32}|.search}]

[DELETE /scim/v2/Groups/{id:[egr]{1}:[a-f0-9]{32}|.search}]

[PATCH /scim/v2/Groups/{id:[egr]{1}:[a-f0-9]{32}|.search}]

Create group:
POST/scim/v2/Groups

See the SCIM documentation for details on the create protocol and group schema.


Query known group:

GET /scim/v2/Groups/g:13efe47dee95f360133a9aa40abaad55

Query known group:
GET/scim/v2/Groups/{id}

See the SCIM documentation for details on the query protocol and group schema.

URI Parameters
HideShow
id
string (required) Example: g:13efe47dee95f360133a9aa40abaad55

ID of the group.


Update group:

PUT /scim/v2/Groups/g:13efe47dee95f360133a9aa40abaad55

Update group:
PUT/scim/v2/Groups/{id}

Not supported, will return HTTP status code 501, Not Implemented. Use patch to modify group and role membership. See the SCIM documentation for details on the protocol and schema.

URI Parameters
HideShow
id
string (required) Example: g:13efe47dee95f360133a9aa40abaad55

ID of the group.


Delete group:

DELETE /scim/v2/Groups/g:13efe47dee95f360133a9aa40abaad55

Delete group:
DELETE/scim/v2/Groups/{id}

Delete a group. Role deletion is not supported. See the SCIM documentation for details on the protocol and schema.

URI Parameters
HideShow
id
string (required) Example: g:13efe47dee95f360133a9aa40abaad55

ID of the group.


Update group:

PATCH /scim/v2/Groups/g:13efe47dee95f360133a9aa40abaad55
Responses204
Body
[GET /scim/v2/Bulk]

Update group:
PATCH/scim/v2/Groups/{id}

Currently only Group/Role membership may be modified.

See the SCIM documentation for details on the update protocol and group schema.

URI Parameters
HideShow
id
string (required) Example: g:13efe47dee95f360133a9aa40abaad55

ID of the group.


SCIM Bulk Operations:

POST /scim/v2/Bulk

SCIM Bulk Operations:
POST/scim/v2/Bulk

Perform batch SCIM operations See the SCIM documentation for details on the protocol.

When using bulkIds there is no attempt to resolve circular cross-reference between resources.

[PUT /scim/v2/Bulk]

[DELETE /scim/v2/Bulk]

[PATCH /scim/v2/Bulk]


Server Status

Read server status and version. Requires endpoint_session_id to read version.

Get server status and version:

GET /api/v1/status
Responses200
Headers
Content-Type: application/json
Body
{
  "status": "OK",
  "multitenancy_mode": false,
  "hosted_saas_mode": false
}

Get server status and version:
GET/api/v1/status

External monitors may check this URL as health indicator. Does not check that database is up and status of the license. Checks that the server is reachable and the web service is running.


Read exact server version, check license, FIPS mode state:

POST /api/v1/status
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "endpoint_session_id": "PefYcnXk8QnqtYxXoaZjKES4pVrLaKzI",
  "login_session_id": "IxJq1C5Gt6VxGeF65YjKl5R99Q70Lf9H",
  "tenant_name": "TOP"
}
Responses200555
Headers
Content-Type: application/json
Body
{
        "status": "OK",
        "multitenancy_mode": false,
        "fips_mode": false,
        "version": "6.5.0-1",
    }
Headers
Content-Type: application/json
Body
{
        "status": "NO_LICENSE",
        "multitenancy_mode": false,
        "fips_mode": false,
        "version": "6.5.0-1",
    }

Read exact server version, check license, FIPS mode state:
POST/api/v1/status

  • Returns HTTP code 200 only in case everything is OK.

  • Checks the license of tenant_name (“TOP”, by default).

  • Returns HTTP code 555 if NO_LICENSE.

  • Returns exact version number.

  • External monitors may check this URL as health indicator.

  • No endpoint session in the request - no exact version, still check the license.


Template Categories

Read authenticator categories. Requires login_session_id of any user authenticated to any event.

Read categories:

GET /api/v1/categories
Responses200
Headers
Login-Session-Id: 9s2MJbrhxYQa7VAutxpFR3OqBT1hHVAX
Content-Type: application/json
Body
{
  "categories": [
    {
      "desc": "category one",
      "id": "d3ad2dd0dca211e68604000c29ecee77",
      "name": "CAT1"
    },
    {
      "desc": "bar",
      "id": "d3ad3528dca211e68604000c29ecee77",
      "name": "VAR"
    }
  ]
}

Read categories:
GET/api/v1/categories

Retrieves a list of available authenticator template categories used to organize and manage authentication templates.


LEGACY - Read categories:

GET /api/v1/categories?login_session_id=B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o
Responses200
Headers
Content-Type: application/json
Body
{
  "categories": [
    {
      "desc": "category one",
      "id": "d3ad2dd0dca211e68604000c29ecee77",
      "name": "CAT1"
    },
    {
      "desc": "bar",
      "id": "d3ad3528dca211e68604000c29ecee77",
      "name": "VAR"
    }
  ]
}

LEGACY - Read categories:
GET/api/v1/categories?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
login_session_id
string (required) Example: B3XBHzwAHuPfHwMHfSjf3eVdV3glCa0o

Users

User lookup by name, list of users.

Requires login_session_id. Logged user must be member of FULL ADMINS or ENROLL ADMINS.

User lookup by given username:

GET /api/v1/users?user_name=LOCAL\ADMIN&attributes=repo_name&attributes=tenant_name&event_name=AdminUI
Responses200
Headers
Login-Session-Id: pbXWA5q2FIHPbJt2iHsWBiU8L4KtCqV1
Endpoint-Session-Id: B703n6Pe37aFuYAExxdZ309bbL9OyDBd
Content-Type: application/json
Body
{
  "id": "4f34e2882991440ddd0fd515e0d0236c",
  "last_fail_at": null,
  "loginame": "ADMIN",
  "obj_id": "3caa08a0061e11e6b224080027983191",
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_name": "LOCAL",
  "user_name": "LOCAL\ADMIN"
}

User lookup by given username:
GET/api/v1/users?user_name={user_name}&attributes={attributes}&event_name={event_name}

Retrieves user information based on the provided username.

URI Parameters
HideShow
user_name
string (required) Example: LOCAL\ADMIN

The name of the user.

event_name
string (optional) Example: AdminUI

The name of the event used during authentication, may be used to filter groups.

attributes
list (optional) Example: repo_name&attributes=tenant_name

user. Possible values: [repo_id, repo_obj_id, tenant_name, user_email, user_id, user_mobile_phone, user_name, user_name_netbios, user_pki_attr, user_repository_alias, user_role_assignments, user_templates]


LEGACY - User lookup by given username:

GET /api/v1/users?user_name=LOCAL\ADMIN&login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&endpint_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX&attributes=attributes=repo_name&attributes=tenant_name&event_name=AdminUI
Responses200
Headers
Content-Type: application/json
Body
{
  "id": "4f34e2882991440ddd0fd515e0d0236c",
  "last_fail_at": null,
  "loginame": "ADMIN",
  "obj_id": "3caa08a0061e11e6b224080027983191",
  "repo_id": "3c9c1fd8061e11e6b224080027983191",
  "repo_name": "LOCAL",
  "user_name": "LOCAL\ADMIN"
}

LEGACY - User lookup by given username:
GET/api/v1/users?user_name={user_name}&login_session_id={login_session_id}&endpint_session_id={endpoint_session_id}&attributes={attributes}&event_name={event_name}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_name
string (required) Example: LOCAL\ADMIN

Username

login_session_id
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session, if not passed then endpoint_session_id is required.

endpoint_session_id
string (optional) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the trusted endpoint session, if not passed then login_session_id is required.

event_name
string (optional) Example: AdminUI

name of the event used during authentication, may be used to filter groups.

attributes
list (optional) Example: attributes=repo_name&attributes=tenant_name

user. Possible values: repo_id, repo_obj_id, tenant_name, user_email, user_id, user_mobile_phone, user_name, user_name_netbios, user_pki_attr, user_repository_alias, user_role_assignments, user_templates


List of users:

GET /api/v1/users?repo_id=fc73edbbc04048b79edc68521485c518&repo_name=BAZZ&page=0
Responses200
Headers
Login-Session-Id: eRkOzECe25pPJz0wuxN7Zs5mkznIWd8S
Content-Type: application/json
Body
{
  "repo": {
    "id": "18cfb964dc2111e69288000c29ecee77",
    "name": "FOO"
  },
  "tenant": "TOP",
  "users": [
    {
      "id": "1897e91881407b0183bb2e6870d117ba",
      "name": "admin",
      "sid": "S-1-5-21-3303523795-413055529-2892985274-1104"
    },
    {
      "id": "221bbf7ac0dab7ccd25821f53f4276e0",
      "name": "Administrator",
      "sid": "S-1-5-21-3303523795-413055529-2892985274-500"
    }
  ]
}

List of users:
GET/api/v1/users?repo_id={repo_id}&repo_name={repo_name}&page={page}

Retrieves list of users from the repository.

Note: LOCAL repo - all local users.

LDAP & SQL & External & SCIM users repo - users listed in server database - those who tried to authenticate at least once.

URI Parameters
HideShow
repo_id
string (required) Example: fc73edbbc04048b79edc68521485c518

The ID of the repo. Either repo id or repo name required.

repo_name
string (optional) Example: BAZZ

The name of the repo. Either repo id or repo name required.

page
int (optional) Example: 0

The page number. Starts with 0. The page size is 50000. Result is unsorted.


LEGACY - List of users:

GET /api/v1/users?repo_id=fc73edbbc04048b79edc68521485c518&repo_name=BAZZ&page=0&login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "repo": {
    "id": "18cfb964dc2111e69288000c29ecee77",
    "name": "FOO"
  },
  "tenant": "TOP",
  "users": [
    {
      "id": "1897e91881407b0183bb2e6870d117ba",
      "name": "admin",
      "sid": "S-1-5-21-3303523795-413055529-2892985274-1104"
    },
    {
      "id": "221bbf7ac0dab7ccd25821f53f4276e0",
      "name": "Administrator",
      "sid": "S-1-5-21-3303523795-413055529-2892985274-500"
    }
  ]
}

LEGACY - List of users:
GET/api/v1/users?repo_id={repo_id}&repo_name={repo_name}&page={page}&login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

LOCAL repo - all local users. LDAP & SQL & External & SCIM users repo - users listed in server database - those who tried to authenticate at least once.

URI Parameters
HideShow
repo_name
string (optional) Example: BAZZ
repo_id
hex (required) Example: fc73edbbc04048b79edc68521485c518

Either repo id or name required

page
int (optional) Example: 0

Page number starts with 0. Page size is 50000. Result is unsorted

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


User data

Access to data of the user.

Requires login_session_id of user or admin.

Data is defined for events. You may access data only of the event you are logged in. The event defines accessible data_id. Several events may share data_id. By default data_id = Event.name.upper().

Data permissions

  1. Restricted records - admin and user can read, but only admin can write (restricted write)

  2. Sensitive records - admin and user can write, but only user can read (restricted read)

Read all records of OSLogon data:

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon
Responses200
Headers
Login-Session-Id: niuoDE2sklSEjnorJEbROyX6FdeE12nR
Content-Type: application/json
Body
{
  "data": {
    "field1": "new_value",
    "field3": {
      "inner": "dict",
      "is": {
        "any": "level",
        "possible": "at"
      }
    }
  }
}

Read all records of OSLogon data:
GET/api/v1/users/{user_id}/data/OSLogon

Retrieve all records associated with a user’s OSLogon data. Data consists of records. You may read all records or specific one.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - Read all records of OSLogon data:

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon?login_session_id=rBT79CAz8AWh1o920OrHumx32iaToCU9
Responses200
Headers
Content-Type: application/json
Body
{
  "data": {
    "field1": "new_value",
    "field3": {
      "inner": "dict",
      "is": {
        "any": "level",
        "possible": "at"
      }
    }
  }
}

LEGACY - Read all records of OSLogon data:
GET/api/v1/users/{user_id}/data/OSLogon?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

Read data. Data consists of records. You may read all records or specific one.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: rBT79CAz8AWh1o920OrHumx32iaToCU9

ID of the login session id


Read record password of OSLogon data:

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon/password
Responses200
Headers
Login-Session-Id: duepEwOc1Do2kvXu5I1eBLUZ9B1KCcrd
Content-Type: application/json
Body
{
  "data": {
    "password": "value"
  }
}

Read record password of OSLogon data:
GET/api/v1/users/{user_id}/data/OSLogon/password

Retrieve the recorded password associated with a user’s OSLogon data.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - Read record password of OSLogon data:

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon/password?login_session_id=rBT79CAz8AWh1o920OrHumx32iaToCU9
Responses200
Headers
Content-Type: application/json
Body
{
  "data": {"password": "value"}
}

[PUT /api/v1/users/{user_id:[0-9a-fA-F]{32}}/data/{data_id}*record_id]

LEGACY - Read record password of OSLogon data:
GET/api/v1/users/{user_id}/data/OSLogon/password?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: rBT79CAz8AWh1o920OrHumx32iaToCU9

ID of the login session id


Delete all records of OSLogon data:

DELETE /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon
Responses200
Headers
Login-Session-Id: hhlA3C7TaC6W30EPMur79qjJ73YMNUdi
Content-Type: application/json
Body
null

Delete all records of OSLogon data:
DELETE/api/v1/users/{user_id}/data/OSLogon

Delete all records date accociated with a user’s OSLogon data.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - Delete all records of OSLogon data:

DELETE /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon?login_session_id=rBT79CAz8AWh1o920OrHumx32iaToCU9
Responses200
Headers
Content-Type: application/json
Body
null

LEGACY - Delete all records of OSLogon data:
DELETE/api/v1/users/{user_id}/data/OSLogon?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: rBT79CAz8AWh1o920OrHumx32iaToCU9

ID of the login session id


Delete password record only:

DELETE /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon/password
Responses200
Headers
Login-Session-Id: 911E41HTiR6xCRCQlIzcPQVwQTheZ4Nv
Content-Type: application/json
Body
null

Delete password record only:
DELETE/api/v1/users/{user_id}/data/OSLogon/password

Delete only recorded password associated with a user’s OSLogon data.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - Delete password record only:

DELETE /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon/password?login_session_id=rBT79CAz8AWh1o920OrHumx32iaToCU9
Responses200
Headers
Content-Type: application/json
Body
null

LEGACY - Delete password record only:
DELETE/api/v1/users/{user_id}/data/OSLogon/password?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: rBT79CAz8AWh1o920OrHumx32iaToCU9

ID of the login session id


Modify data:

PATCH /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/data/OSLogon
RequestsUpdate fieldUpdate many fieldsModifications/additions are recursive and process sub-records
Headers
Content-Type: application/json
Body
{
  "data": {
    "field1": "a value"
  },
  "login_session_id": "LRvql8GD946V7ryN8fesWBLhN1I7dpEe"
}
Responses200
Headers
Content-Type: application/json
Body
null
Headers
Content-Type: application/json
Body
{
  "data": {
    "field1": "new_value",
    "field2": null,
    "field3": {
      "inner": "dict",
      "is": {
        "any": "level",
        "possible": "at"
      }
    }
  },
  "login_session_id": "LRvql8GD946V7ryN8fesWBLhN1I7dpEe"
}
Responses200
Headers
Content-Type: application/json
Body
null
Headers
Content-Type: application/json
Body
{
  "data": {
    "field3": {
      "sub-record": "is added"
    }
  },
  "login_session_id": "LRvql8GD946V7ryN8fesWBLhN1I7dpEe"
}
Responses200
Headers
Content-Type: application/json
Body
null

Modify data:
PATCH/api/v1/users/{user_id}/data/OSLogon

Create/modify record field1 for OSLogon data

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user


Delete user:

POST /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/delete
Responses200
Headers
Login-Session-Id: 5e9X0ID8Sh3WhFUgMyciwmFLCPKUFvAg
Content-Type: application/json
Body
null

Delete user:
POST/api/v1/users/{user_id}/delete

This API call performs the following actions:

  • clear all templates

  • clear any stored passwords

  • clear any other user specific data

  • member of ‘Full Admins’, ‘Enroll Admins’, ‘Tenant Admins’ can remove any user

  • normal user can delete itself only when ‘Delete Me’ policy is enabled

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - Delete user:

POST /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/delete?login_session_id=rBT79CAz8AWh1o920OrHumx32iaToCU9
Responses200
Headers
Content-Type: application/json
Body
null

LEGACY - Delete user:
POST/api/v1/users/{user_id}/delete?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

  • clear all templates

  • clear any stored passwords

  • clear any other user specific data

  • member of ‘Full Admins’, ‘Enroll Admins’, ‘Tenant Admins’ can remove any user

  • normal user can delete itself only when ‘Delete Me’ policy is enabled

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: rBT79CAz8AWh1o920OrHumx32iaToCU9

ID of the login session id


User Reports:

POST /api/v1/reports/user
Requestsexample 1
Headers
Content-Type: application/json
Body
{
        "login_session_id" : "CRk60KeB2t6rzwCLmtxHqPxSdBOinvYw",
        "user_id" : "f372e2c6850c8b703302d9fb60f7bed5"
        "sort_field" : "timestamp",
        "sort_order" : "desc",
        "size" : 10,
        "offset" : 0,
        "type" : "LOGON_ALL",
        "start_timestamp": 0,
        "end_timestamp" : 1607425005
    }
Responses200
Headers
Content-Type: application/json
Body
{
        "total": 1,
        "data": [
            {
                "type": "logon_succeeded",
                "tenant": "TOP",
                "tenant_id": "def0def0def0def0def0def0def0def0",
                "event": {
                    "id": "3f1d6cfe394411ebb6960242ac110002",
                    "name": "AdminUI"
                },
                "chain": {
                    "id": "3f1da796394411ebb6960242ac110002",
                    "name": "Password Only"
                },
                "user": {
                    "id": "a57d06bfca7de86bee0668cd430244ac",
                    "loginame": "ADMIN",
                    "user_name": "LOCAL\ADMIN",
                    "repo_name": "LOCAL",
                    "tenant_repo_user": "TOP\LOCAL\ADMIN"
                },
                "endpoint": {
                    "name": "dev-comp",
                    "type": "WebUI"
                },
                "timestamp": "2020-12-08T10:59:33.307477",
                "server": "dev-comp",
                "result": true
            }
        ],
        "warnings": []
    }

User Reports:
POST/api/v1/reports/user

This API call performs the following actions:

  • get all user logon details

  • only member of ‘Full Admins’, ‘Enroll Admins’, ‘Tenant Admins’ can access

  • type can be ‘LOGON_ALL’, ‘LOGON_SUCCEEDED’, ‘LOGON_FAILED’, ‘ENROLL_ALL’

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • type: string (required*)

    • The type of the report.
  • start_timestamp: string (required*)

    • The start time of the report.
  • end_timestamp: string (required*)

    • The end time of the report.
  • user_id: string (optional)

    • The ID of the user.
  • user_name: string (optional)

    • The name of the user.
  • sort_field: string (optional)

    • The field that you want to sort by.
  • sort_order: string (optional)

    • The order that you want to sort by.
  • size: string (optional)

    • The size of the data that you want to return.
  • offset: string (optional)

    • The location where iteration starts.

User templates

Access to user’s authentication templates. Requires login_session_id of user or admin.

List of user's linked templates:

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates
Responses200
Headers
Login-Session-Id: ydNFWX9hSynR2orWRMlESDlKb2LMDOU9
Content-Type: application/json
Body
{
  "templates": [
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "3cb97b50061e11e6b224080027983191",
      "is_enrolled": true,
      "method_id": "PASSWORD:1",
      "method_title": "Password"
    },
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "83523194b70919672b1157bc929ed67a",
      "is_enrolled": true,
      "method_id": "CARD:1",
      "method_title": "Card"
    },
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "ff3f4e84203e6d7f56a0013074237071",
      "is_enrolled": true,
      "method_id": "SECQUEST:1",
      "method_title": "Security Questions"
    },
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "5194c010d968811da4ff47f843a3245e",
      "is_enrolled": true,
      "method_id": "HOTP:1",
      "method_title": "HOTP"
    }
  ]
}

List of user's linked templates:
GET/api/v1/users/{user_id}/templates

Retrieves a list of authentication templates that are linked to a specific user.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


LEGACY - List of user's linked templates:

GET /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Headers
Content-Type: application/json
Body
{
  "templates": [
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "3cb97b50061e11e6b224080027983191",
      "is_enrolled": true,
      "method_id": "PASSWORD:1",
      "method_title": "Password"
    },
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "83523194b70919672b1157bc929ed67a",
      "is_enrolled": true,
      "method_id": "CARD:1",
      "method_title": "Card"
    },
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "ff3f4e84203e6d7f56a0013074237071",
      "is_enrolled": true,
      "method_id": "SECQUEST:1",
      "method_title": "Security Questions"
    },
    {
      "category_id": "",
      "comment": "",
      "data": {},
      "id": "5194c010d968811da4ff47f843a3245e",
      "is_enrolled": true,
      "method_id": "HOTP:1",
      "method_title": "HOTP"
    }
  ]
}

LEGACY - List of user's linked templates:
GET/api/v1/users/{user_id}/templates?login_session_id={login_session_id}

DEPRECATED: This endpoint will be deprecated, use the above endpoint instead.

URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

ID of the user

login_session_id
string (required) Example: JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX

ID of the login session


POST /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "login_session_id": "LRvql8GD946V7ryN8fesWBLhN1I7dpEe",
  "enroll_process_id": "rlV6pSKXT4e0Ueq9hEXreL1ubkAdNYz2",
  "category_id": "hex or empty",
  "comment": "this is my comment"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "auth_t_id": "3978beae0a3f11e68f20080027983191"
}

Create template, fill it from enroll session and link to user:
POST/api/v1/users/{user_id}/templates

User becomes owner of created template. Existing enrolled session is destroyed (no way to create 2 templates from same enroll session).

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • endpoint_session_id: string (required*)

    • The ID of the endpoint session.
  • category_id: string (optional)

    • The ID of the category.
  • comment: string (optional)

    • The comment of the template.
URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


POST /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "login_session_id": "LRvql8GD946V7ryN8fesWBLhN1I7dpEe",
  "method_id": "EMAIL_OTP:1",
  "category_id": "hex or empty",
  "comment": "this is my comment",
  "unit_id ": "xxx"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "auth_t_id": "b94292c20a3f11e68f20080027983191"
}

Create template without data and link to the user:
POST/api/v1/users/{user_id}/templates

Template should not be enrolled template and should be filled later by PUT

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • method_id: string (required*)

    • The ID of the method.
  • category_id: string (optional)

    • The ID of the category.
  • comment: string (optional)

    • The comment of the template.
  • **unit_id **: string (optional)

    • The ID of the unit.
URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


POST /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  "auth_t_id": "3cb97b50061e11e6b224080027983191",
  "login_session_id": "LRvql8GD946V7ryN8fesWBLhN1I7dpEe"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "auth_t_id": "3cb97b50061e11e6b224080027983191"
}

Link existing template to user.
POST/api/v1/users/{user_id}/templates

Passed logged_session_id must be of Share Authenticator admin After that operation, user may login by ‘xxx’ template owned by some other user, but user can’t change it.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • auth_t_id: dict (required*)

    • The ID of the authentication template.
URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.


Fill auth template from enroll session and/or change comment:

PUT /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates/83523194b70919672b1157bc929ed67a
RequestsChange commentFill auth template
Headers
Content-Type: application/json
Body
{
  "comment": "my new comment",
  "login_session_id": "JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX"
}
Responses200
Body
null
Headers
Content-Type: application/json
Body
{
  "comment": "12345",
  "enroll_process_id": "hex",
  "login_session_id": "JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX"
}
Responses200
Body
null

Fill auth template from enroll session and/or change comment:
PUT/api/v1/users/{user_id}/templates/{auth_t_id}

Update an authentication template using data from an enrollment session and optionally updates the template’s comment.

Request Body Parameters

  • login_session_id: string (required*)

    • The ID of the login session.
  • comment: string (optional)

    • The comment of the template.
URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.

auth_t_id
string (required) Example: 83523194b70919672b1157bc929ed67a

The ID of the authentication template.


DELETE /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates/83523194b70919672b1157bc929ed67a
Responses200
Headers
Login-Session-Id: jJOvzXX60WWQUksgxcGoeOsraenArVhU
Body
null

DELETE /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/templates/83523194b70919672b1157bc929ed67a?login_session_id=JHAHdZiRKdaYcPhQUHcPYgYSElFcMBVX
Responses200
Body
null

Returns user's OTP method recipient:

POST /api/v1/users/4f34e2882991440ddd0fd515e0d0236c/method/EMAIL_OTP:1/get_recipient
Requestsexample 1
Headers
Content-Type: application/json
Body
{
  login_session_id: 'DjCTzG4tuJdwTmdWhtkbUggbertp2d6E'
}
Responses200
Headers
Content-Type: application/json
Body
{
  "default_recipient": "test@test.com"
}

Returns user's OTP method recipient:
POST/api/v1/users/{user_id}/method/{method}/get_recipient

Retrieve the recipient information used for delivering one-time passwords (OTP) to a specific user.

Request Body Parameters

  • login_session_id: string (required*)
    • The ID of the login session.
URI Parameters
HideShow
user_id
string (required) Example: 4f34e2882991440ddd0fd515e0d0236c

The ID of the user.

method
string (required) Example: EMAIL_OTP:1

The ID of the method.


Generated by aglio on 29 Oct 2025