Jushita-related API list

Updated at:

IDaaS provides several data synchronization API operations, all of which comply with the SCIM protocol. An SP can call these API operations to synchronize data to IDaaS. When an SP calls an IDaaS API operation, it must pass access_token. The commonly used API operations are categorized by organization, account, and group.

Prerequisites

  1. Obtain the IDaaS-Base-URL

    Replace "IDaaS-Base-URL" in this document with the primary domain of the current access address. Also replace the primary domain at the beginning of every API operation address in this document. The primary domain is the SSO address of the portal that users access in the IDaaS console.

  2. Obtain the client-id and client-secret

    You need client-id and client-secret to obtain access_token. You can get both from the administrator console.

    Add an application in the administrator console. On the application details page, you can enable the API. The two API values correspond to client-id and client-secret.

API operation list

  • Obtain access_token

The following API operations are related to organization operations:

  • Push an organization

  • Modify or move an organization

  • Delete an organization

  • Query an organization

  • Obtain the organization list

  • Obtain root node organization information

  • Obtain the direct children of an organization

The following API operations are related to account operations:

  • Push an account

  • Modify or move an account

  • Delete an account

  • Obtain account information

  • Query the account list

The following API operations are related to group operations:

  • Push an account group

  • Update an account group

  • Delete an account group

Others:

  • Obtain the list of organizations and accounts authorized for the application

API operation details

Obtain access_token

Before you call the following API operations, obtain access_token. You can pass access_token in two ways when you call an API operation:

  • After the URL value: URL?access_token={access_token}

  • In the header: Authorization bearer {access_token} (note the space between bearer and access_token)

How to obtain access_token: Send a POST request to the following URL. The request returns JSON that contains access_token.

{IDaaS-Base-URL}/oauth/token?client_id={client-id}&client_secret={client-secret}&scope=read&grant_type=client_credentials

Note

client_id and client_secret are the API Key and API Secret of the application that you created.

Push an organization

After you add an organization in the SP, call this API operation to synchronize the information of the new organization to IDaaS.

Note

When you synchronize data, follow the hierarchy. Synchronize the parent first, and then synchronize the children.

Request URI: /api/bff/v1.2/developer/scim/organization/createPOSTREST

Content-Type: application/json

Request Body:

{
    "organizationName": "Chengdu R&D Department",
    "externalId": "123456",
    "parentExternalId": "test3",
    "type": "DEPARTMENT",
    "sortNumber": "3",
    "enabled":true,
    "description": "Responsible for product R&D",
    "extendFields":{
         "test1":"123"
    }
}

The following table describes the request parameters:

Parameter

Value

Type

Remarks

organizationName

{organizationName}

String

The organization name. Required.

externalId

{externalId}

String

The unique ID of the organization. This ID is synchronized from the SP and is called the external ID in IDaaS. If you do not specify it, the IDP generates a random external ID. Optional.

parentExternalId

{parentExternalId}

String

The unique ID of the parent organization. This ID is synchronized from the SP and is called the parent external ID in IDaaS. Find the external ID in the organization properties under "Organizations and Groups". Required.

type

{type}

String

Self-built organizational unit: SELF_OU

Self-built department: DEPARTMENT

Externally synchronized organization: EXTERNAL_OU

Default value: DEPARTMENT. Optional.

rootNode

{rootNode}

boolean

If you set this parameter to true, the original root node in the IDP is updated. Optional.

enabled

{enabled}

boolean

The organization status. true: enabled. false: disabled. Default value: true. Optional.

sortNumber

{sortNumber}

int

The display order. Optional.

description

{description}

String

The description of the current OU. The value cannot exceed 500 characters. Optional.

extendFields

{extendFields}

Map<String,String>

The custom extended fields, which are defined in the IDP data dictionary. If a custom extended field is required, this parameter is required.

Response Body:

{
"success": true,
"code": "200",
"message": null,
"requestId": "974CA7CA-1C98-4557-AC90-9425B2ED4719",
"data": {
    "externalId": "123456",
        "id": "123456"
        }
}

The following table describes the response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message of the API operation.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Parameter

Description

externalId

The unique ID of the organization. This ID is synchronized from the SP and is called the external ID in IDaaS. If you do not specify it, the IDP generates a random external ID.

id

The UUID of the organization on the IDaaS platform.

The following table describes the error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded.

400

InvalidParameter

Example: The parent organization 123456 does not exist.

Invalid request parameter.

400

InvalidParameter.ExternalId.Exist

Example: Duplicate external ID, externalId: 123456.

Duplicate external ID.

400

InvalidParameter.Name.Exist

Example: Duplicate OU name, OrganizationName: R&D Department.

The organization name already exists.

403

Forbidden

You are not authorized to operate on this parent OU.

You are not authorized to perform the operation.

Modify or move an organization

After you modify an organization in the SP, call this API operation to synchronize the modified organization information to IDaaS.

Request URI: /api/bff/v1.2/developer/scim/organization/updatePUTREST

Content-Type: application/json

Request Body:

{
    "description": "",
    "organizationName": "Chengdu R&D Department",
    "externalId": "123456",
    "parentExternalId": "test3",
    "enabled":false,
    "type": null,
    "sortNumber": "5",
    "extendFields":{
       "test1":"1235123"
    }
}

The following table describes the request parameters:

Parameter

Value

Type

Remarks

externalId

{externalId}

String

The unique ID of the organization. This ID is synchronized from the SP and is called the external ID in IDaaS. Required.

organizationName

{organizationName}

String

The organization name. Optional.

parentExternalId

{parentExternalId}

String

The unique ID of the parent organization. This ID is synchronized from the SP and is called the parent external ID in IDaaS. Find the external ID in the organization properties under "Organizations and Groups". Optional.

type

{type}

String

Self-built organizational unit: SELF_OU

Self-built department: DEPARTMENT

Externally synchronized organization: EXTERNAL_OU

Default value: DEPARTMENT. Optional.

enabled

{enabled}

boolean

The organization status. true: enabled. false: disabled. Optional. If you specify this parameter, this information is updated.

sortNumber

{sortNumber}

int

The display order. Optional. If you specify this parameter, this information is updated.

description

{description}

String

The description of the current OU. The value cannot exceed 500 characters. Optional. If you specify this parameter, this information is updated.

extendFields

{extendFields}

Map<String,String>

Defined in the IDaaS data dictionary. If a custom extended field is required, this parameter is required.

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "C98418A3-63B5-49CA-9C85-A820A65D3247",
        "data": {
            "externalId": "123456",
            "id": "123456"
        }
}

The following table describes the response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message of the API operation.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

The following table describes the response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message of the API operation.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Parameter

Description

externalId

The unique ID of the organization. This ID is synchronized from the SP and is called the external ID in IDaaS. If you do not specify it, the IDP generates a random external ID.

id

The UUID of the organization on the IDaaS platform.

The following table describes the error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded.

400

InvalidParameter

Example: The description cannot exceed 500 characters.

Invalid request parameter.

400

EntityNotFound

The organization does not exist.

The OU to update is not found.

400

InvalidParameter.Name.Exist

Example: Duplicate OU name, OrganizationName: R&D Department.

The organization name already exists.

400

OperationDenied

An OU cannot be moved under its own child.

The operation is not allowed.

403

Forbidden

You are not authorized to operate on this parent OU.

You are not authorized to perform the operation.

Delete an organization

After you delete an organization in the SP, call this API operation to also delete the organization in IDaaS.

Request URI: /api/bff/v1.2/developer/scim/organization/deleteDELETEREST

Content-Type: application/json

Request example:

/api/bff/v1.2/developer/scim/organization/delete?externalId=1694618271068407094

The following table describes the request parameters:

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the organization in the IDaaS system.

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "30A38CA4-D640-4CBA-B85F-A0234D0181F1"
}

The following table describes the response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message of the API operation.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

The following table describes the error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded.

400

InvalidParameter

Example: The external ID (externalId) cannot be empty.

Invalid request parameter.

400

EntityNotFound

The organization does not exist.

The OU to update is not found.

400

OperationDenied.OUContainsChildren

The OU has associations and cannot be deleted.

The organization has child organizations or accounts, so deletion is not allowed.

403

Forbidden

You are not authorized to operate on this OU.

You are not authorized to perform the operation.

Query an organization

Query a single organization

Request URI: /api/bff/v1.2/developer/scim/organization/detailGETREST

Request example:

/api/bff/v1.2/developer/scim/organization/detail?externalId=1694618271068407094

The following table describes the request parameters:

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the organization in the IDaaS system.

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "B5D4A6D1-9C51-4AC3-A413-4A27EE1C1474",
    "data": {
        "organizationName": "ceshiimport0009",
        "externalId": "9999",
        "parentExternalId": "764712910283009725",
        "type": "SELF_OU",
        "rootNode": false,
        "sortNumber": 0,
        "enabled": true,
        "description": null,
        "extendFields": {
            "4": "asd"
        }
    }
}

Response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist

Parameter

Description

externalId

The external ID of the organization

organizationName

The organization name

parentExternalId

The external ID of the parent organization

type

The type

enabled

The organization status

description

The description

extendFields

The extended fields

sortNumber

The display order of the organization

rootNode

Indicates whether the organization is a root node

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded

400

InvalidParameter

For example: The external ID (externalId) cannot be empty

A request parameter is invalid

400

EntityNotFound

The organization does not exist

The OU to update was not found

403

Forbidden

You do not have permission to operate on this parent OU

You do not have permission to perform this operation

Query the organization list

The SP can call this API operation to query the list of all OUs, or the list of a specific OU and all of its child OUs.

Request URI: /api/bff/v1.2/developer/scim/organization/listGET

Request example:

Query all organizations of the company: /api/bff/v1.2/developer/scim/organization/list

Query the information about all organizations under a specific OU: /api/bff/v1.2/developer/scim/organization/list?id=5986176890912195413

Request parameters:

Parameter

Value

Type

Remarks

externalId

{externalId}

String

The external ID of the organization in the IDaaS system. Optional

Note

If you do not specify a value, all organizations of the company are returned. If the ID is not empty, the information about the organizations under the corresponding OU is returned.

Response Body:

{
            "success": true,
            "code": "200",
            "message": null,
            "requestId": "3CCA4939-170C-46AA-BE11-F3DE924FC0E9",
            "data": {"organizations": [
                    {
                        "organizationName": "Chengdu R&D Department",
                        "externalId": "2858068028015036528",
                        "parentExternalId": "129733886490329012",
                        "type": "DEPARTMENT",
                        "rootNode": false,
                        "sortNumber": 0,
                        "enabled": true,
                        "description": "",
                        "extendFields": {}
                    },
                    {
                        "organizationName": "Chengdu Branch",
                        "externalId": "129733886490329012",
                        "parentExternalId": "6721629573848908864",
                        "type": "SELF_OU",
                        "rootNode": false,
                        "sortNumber": 0,
                        "enabled": true,
                        "description": "",
                        "extendFields": {}
                    },
                    {
                        "organizationName": "Testing R&D Department3-3",
                        "externalId": "test3-3",
                        "parentExternalId": "test3",
                        "type": "DEPARTMENT",
                        "rootNode": false,
                        "sortNumber": 3,
                        "enabled": true,
                        "description": "Organizations synchronized through SCIM",
                        "extendFields": {
                            "test1": "1235123"
                        }
                    },
                    {
                        "organizationName": "R&D Department3-4",
                        "externalId": "test3-4",
                        "parentExternalId": "test3",
                        "type": "DEPARTMENT",
                        "rootNode": false,
                        "sortNumber": 3,
                        "enabled": true,
                        "description": "R&D sub-department",
                        "extendFields": {
                            "test1": "123"
                        }
                    }
                    ]
            }
        }

Response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist

Parameter

Description

organizations

The organization information returned

├ externalId

The external ID of the organization

├ organizationName

The organization name

├ parentExternalId

The external ID of the parent organization

├ type

The type

├ rootNode

Indicates whether the organization is a root node

├ sortNumber

The display order of the organization

├ enabled

The organization status

├ description

The description

└ extendFields

The extended fields

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded

400

EntityNotFound

For example: Organization 123456 does not exist

The OU that corresponds to the externalId was not found

403

Forbidden

You do not have permission to operate on this parent OU

You do not have permission to perform this operation

Query the root node organization information

Queries the information about the root node organization of the current tenant.

Request URI: /api/bff/v1.2/developer/scim/organization/rootGETREST

Request example:

/api/bff/v1.2/developer/scim/organization/root

Response Body:

{
        "success": true,
        "code": "200",
        "message": null,
        "requestId": "C757F8D6-E96A-4399-823C-E55AED4D59C3",
        "data": {
            "organizationName": "XXX Technology Co., Ltd.",
            "externalId": "6721629573848908864",
            "parentExternalId": null,
            "type": "SELF_OU",
            "rootNode": true,
            "sortNumber": 0,
            "enabled": true,
            "description": "",
            "extendFields": {}
        }
}

Response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist

Parameter

Description

externalId

The external ID of the organization

organizationName

The organization name

parentExternalId

The external ID of the parent organization

type

The type

enabled

The organization status

description

The description

extendFields

The extended fields

sortNumber

The display order of the organization

rootNode

Indicates whether the organization is a root node

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded

400

InvalidParameter

cannot get current enterpriseUuid (The information about the current tenant cannot be retrieved)

A request parameter is invalid

400

EntityNotFound

cannot get rootOU

The root OU was not found

403

Forbidden

You do not have permission to operate on this parent OU

You do not have permission to perform this operation

Query the direct children of an organization

The SP can call this API operation to query all direct child OUs of a specified OU.

Request URI: /api/bff/v1.2/developer/scim/organization/childrenGET

Request parameters:

Parameter

Value

Type

Remarks

externalId

{externalId}

String

The external ID of the organization in the IDaaS system. Required

Note

If you do not specify a value, all organizations of the company are returned. If the ID is not empty, the information about the organizations under the corresponding OU is returned.

Request example:

/api/bff/v1.2/developer/scim/organization/children?externalId=1

Response Body:

{
"success": true,
"code": "200",
"message": null,
"requestId": "26AD790D-FB7D-4ED9-B07E-82448C929F88",
"data": {
    "organizations": [
        {
            "organizationName": "Sales Department",
            "externalId": "130015784",
            "parentExternalId": "1",
            "type": "DEPARTMENT",
            "rootNode": false,
            "sortNumber": 130015784,
            "enabled": true,
            "description": null,
            "extendFields": {
            }
        },
        {
            "organizationName": "R&D Department",
            "externalId": "129387071",
            "parentExternalId": "1",
            "type": "DEPARTMENT",
            "rootNode": false,
            "sortNumber": 129387071,
            "enabled": true,
            "description": null,
            "extendFields": {
            }
        },
        {
            "organizationName": "Testing Department",
            "externalId": "129083981",
            "parentExternalId": "1",
            "type": "DEPARTMENT",
            "rootNode": false,
            "sortNumber": 129083981,
            "enabled": true,
            "description": null,
            "extendFields": {
            }
        }
    ]
}
}

Response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist

Parameter

Description

organizations

The organization information returned

├ externalId

The external ID of the organization

├ organizationName

The organization name

├ parentExternalId

The external ID of the parent organization

├ type

The type

├ rootNode

Indicates whether the organization is a root node

├ sortNumber

The display order of the organization

├ enabled

The organization status

└ description

The description

└ extendFields

The extended fields

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded

400

InvalidParameter

For example: The external ID (externalId) cannot be empty

A request parameter is invalid

400

EntityNotFound

The organization does not exist

The OU that corresponds to the externalId was not found

403

Forbidden

You do not have permission to operate on this parent OU

You do not have permission to perform this operation

Push an account

After you add an account in the SP, call this API operation to synchronize the information about the new account to IDaaS.

Request URI: /api/bff/v1.2/developer/scim/account/createPOSTREST

Content-Type: application/json

Request Body:

{
    "externalId": "123456",
    "userName": "developer2",
    "displayName": "Developer3",
    "password": "Jdev@12345",
    "email": "test2@****.com",
    "phoneNumber": "",
    "description": "",
    "belongs": [
        "test1","test2"
        ],
    "extendFields": {
        "test":"123456",
        "test1":"woman"
    }
}

Request parameters:

Parameter

Value

Type

Remarks

Required

userName

{userName}

String

The primary account of the Alibaba Cloud IDaaS platform

Required

password

{password}

String

The password of the primary account of the Alibaba Cloud IDaaS platform

Optional. If this parameter is left empty, a random system-generated password is used.

displayName

{displayName}

String

The display name of the user

Required

externalId

{externalId}

String

The unique ID of the account

Optional. If you do not specify this parameter, an ID is randomly generated and returned in the result.

email

{email}

String

The email address

Optional.

phoneNumber

{phoneNumber}

String

The mobile phone number. Only one phone number is allowed, and it must be unique.

Optional.

phoneRegion

{phoneRegion}

String

The area code of the mobile phone number. If you do not specify this parameter, the default value 86 is used.

Optional

belongs

{belongs}

Array

The collection of external IDs of the OUs to which the account belongs

Required. For details, see the request parameter example.

locked

{locked}

boolean

Specifies whether to lock the account. Valid values: true (locks the account) and false (does not lock the account). A locked account cannot log on to IDaaS.

Optional. If you specify this parameter, the corresponding information is updated.

enabled

{enabled}

boolean

The enabled status of the user. Valid values: true (enabled) and false (disabled). A disabled account cannot log on to IDaaS.

Optional. If you do not specify this parameter, the account is enabled by default.

description

{description}

String

The description

Optional

expireTime

{expireTime}

String

The expiration time. Format: yyyy-MM-dd. Example: 2020-01-12.

Optional

extendFields

{extendFields}

Map<String,String>

The custom extended fields, which are defined in the data dictionary of the IDP.

Optional. If you specify this parameter, the corresponding information is updated. During an update, this parameter is required if the custom extended field is a required option.

Response Body:

Failure example:

{
        "success": false,
        "code": "InvalidParameter",
        "message": "The password does not comply with the password policy / The email address (email): test@****.com already exists / The organization (belongs): 123456 does not exist",
        "requestId": "7BA02087-4789-4FA6-A414-45BAC671945E",
        "data": null
}

Success example:

{
        "success": true,
        "code": "200",
        "message": null,
        "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
        "data": {
            "externalId": "123456"
        "id":"e717a0cd5b1059bda8a6dd35cfce8e48DxlBg123456"
        }
}

Response parameters:

success indicates whether the request succeeded, code is the error code, and message is the error message.

When success is true, the request succeeded. In this case, code is 200 and data returns the data. When the request fails, success is false and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist

Parameter

Description

externalId

The unique ID of the account. This ID is synchronized from the SP, so it is called the external ID in IDaaS. If you do not specify this parameter, the IDP randomly generates an external ID.

id

The UUID of the account on the IDaaS platform

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request succeeded

400

InvalidParameter

For example: The account name cannot be empty

A request parameter is invalid

400

InvalidParameter.ExternalId.Exist

The externalId (external ID) is duplicated

The external ID is duplicated

400

InvalidParameter.Name.Exist

The account name (username) already exists

The account name already exists

400

InvalidParameter.DisplayName.Exist

The display name already exists

The display name already exists

400

InvalidParameter.Email.Exist

The email address (email) is already bound to another account

The email address (email) is already bound to another account

400

InvalidParameter.PhoneNumber.Exist

The mobile phone number (phoneNumber) is already bound to another account

The mobile phone number (phoneNumber) is already bound to another account

400

EntityNotFound

For example: The organization (belongs): 123456 does not exist

The OU that corresponds to the externalId was not found

Modify or move an account

After you modify an account in the SP, call this API operation to synchronize the modified account information to IDaaS.

Request URI: /api/bff/v1.2/developer/scim/account/update PUTREST

Content-Type:application/json

Request Body:

{
    "externalId": "test-2",
    "userName": "test-2",
    "displayName": "test-3",
     "password": "Jzyt@123456",
     "email": "test2@****.com",
    "phoneNumber": "188****0900",
     "expireTime": "2117-01-01",
     "description": "123ttt",
     "locked":false,
    "belongs": [
        "test2"
        ],
    "extendFields": {
        "test":"t",
        "test1":"woman123"
    }
}

Request parameters:

Parameter

Value

Type

Remarks

Required

userName

{userName}

String

The primary account of the Alibaba Cloud IDaaS platform

Optional. Specify either userName or externalId.

password

{password}

String

The password of the primary account of the Alibaba Cloud IDaaS platform

Optional. If you specify this parameter, the corresponding information is updated.

displayName

{displayName}

String

The display name of the user

Optional. If you specify this parameter, the corresponding information is updated.

externalId

{externalId}

String

The unique ID of the account

Optional. Specify either userName or externalId.

email

{email}

String

The email address

Optional. If you specify this parameter, the corresponding information is updated.

phoneNumber

{phoneNumber}

String

The mobile phone number. Only one phone number is allowed, and it must be unique.

Optional. If you specify this parameter, the corresponding information is updated.

belongs

{belongs}

String

The collection of external IDs of the OUs to which the account belongs. The OUs must exist.

Optional. If you specify this parameter, the corresponding information is updated. For details, see the request parameter example.

locked

{locked}

boolean

Specifies whether to lock the account. Valid values: true (locks the account) and false (does not lock the account). A locked account cannot log on to IDaaS.

Optional. If you specify this parameter, the corresponding information is updated.

enabled

{enabled}

boolean

The enabled status of the user. Valid values: true (enabled) and false (disabled). A disabled account cannot log on to IDaaS.

Optional. If you do not specify this parameter, the account is enabled by default.

description

{description}

String

The description

Optional. If you specify this parameter, the corresponding information is updated.

expireTime

{expireTime}

String

The expiration time. Format: yyyy-MM-dd. Example: 2020-01-12.

Optional. If you specify this parameter, the corresponding information is updated.

extendFields

{extendFields}

Map<String,String>

The custom extended fields, which are defined in the data dictionary of the IDP.

Optional. If you specify this parameter, the corresponding information is updated. During an update, this parameter is required if the custom extended field is a required option.

Response Body:

Failure example:

{
        "success": false,
        "code": "InvalidParameter",
        "message": "The password does not comply with the password policy / The email address (email): test@****.com already exists / The organization (belongs): 123456 does not exist",
        "requestId": "7BA02087-4789-4FA6-A414-45BAC671945E",
        "data": null
}

Success example:

{
        "success": true,
        "code": "200",
        "message": null,
        "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
        "data": {
        "externalId": "123456"
        "id":"e717a0cd5b1059bda8a6dd35cfce8e48DxlBg123456"
    }
}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Parameter

Description

externalId

The unique ID of the organization. This ID is synchronized from the SP, so it is called the external ID in IDaaS. If you do not specify this parameter, the IDP randomly generates an external ID.

id

The UUID of the organization on the IDaaS platform.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The account name cannot be empty.

A request parameter is invalid.

400

InvalidParameter.ExternalId.Exist

The external ID in externalId is duplicated.

The external ID is duplicated.

400

InvalidParameter.Name.Exist

The account name (username) already exists.

The account name already exists.

400

InvalidParameter.DisplayName.Exist

The display name already exists.

The display name already exists.

400

InvalidParameter.Email.Exist

The email address (email) is already bound to another account.

The email address (email) is already bound to another account.

400

InvalidParameter.PhoneNumber.Exist

The mobile phone number (phoneNumber) is already bound to another account.

The mobile phone number (phoneNumber) is already bound to another account.

400

InvalidParameter.ExternalId.NotExist

The account cannot be found by externalId.

The account with the specified externalId is not found.

400

EntityNotFound

Example: The organization in belongs, 123456, does not exist.

The OU with the specified externalId is not found.

Delete an account

When you delete an account in the SP, call this API operation to delete the account information in IDaaS.

Request URI: /api/bff/v1.2/developer/scim/account/delete DELETEREST

Request parameters:

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the account in the IDaaS system.

Request example:

/api/bff/v1.2/developer/scim/account/delete?externalId=4544581305390943066

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
    "data": null
}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The external ID (externalId) cannot be empty.

A request parameter is invalid.

400

EntityNotFound

The account does not exist.

The account to delete is not found.

403

OperationDenied

Example: The administrator admin cannot be deleted.

The delete operation is not allowed.

Get account information

In the SP, call this API operation to get the account information in IDaaS.

Request URI:/api/bff/v1.2/developer/scim/account/detailGETREST

Content-Type:application/json

Request parameters:

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the account in the IDaaS system. Required.

Request example:

/api/bff/v1.2/developer/scim/account/detail?externalId=123456&access_token=bcab-ae1.2123456461626-590-496789-73082615978

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "278D7B88-6C26-4C7F-90A7-F126CF52F3E1",
    "data": {
        "externalId": "123456",
        "username": "test-2",
        "displayName": "test-3",
        "phoneNumber": "188****0900",
        "email": "test2@****.com",
        "enabled": true,
        "locked": false,
        "description": "123ttt",
        "extendFields": {
            "test": "t",
            "test1": "woman123"
        },
        "belongs": [
            "test2"
        ]
    }
}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the account in the IDaaS system.

username

{username}

The username.

displayName

{displayName}

The display name.

phoneNumber

{phoneNumber}

The mobile phone number.

email

{email}

The email address.

locked

{locked}

Indicates whether the account is locked. Valid values: true (locked) and false (not locked).

enabled

{enabled}

Indicates whether the account is available. Valid values: true (enabled) and false (disabled).

belongs

{belongs}

The list of organizations to which the account belongs.

extendFields

{extendFields}

The extended fields, which are the custom fields saved for the account.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The external ID (externalId) cannot be empty.

A request parameter is invalid.

400

InvalidParameter.ExternalId.NotExist

The externalId does not exist.

The account is not found.

Query the account list

In the SP, call this API operation to get the list of accounts in IDaaS.

Request URI: /api/bff/v1.2/developer/scim/account/listGETREST

Content-Type:application/json

Request parameters:

Parameter

Value

Remarks

ouExternalId

{ouExternalId}

The ID of a specific organization. Optional.

createStartDate

{createStartDate}

The start date of account creation. Format: yyyy-MM-dd. Example: 2018-01-01. Optional.

createEndDate

{createEndDate}

The end date of account creation. Format: yyyy-MM-dd. Example: 2018-01-30. Optional.

start

{start}

Optional. The start position for pagination. Default value: 0.

limit

{limit}

Optional. The number of entries to return per page. Default value: 10. Maximum value: 100.

Request example:

/api/bff/v1.2/developer/scim/account/list?ouExternalId=test&access_token=bcab-ae1.22461626-590-496789-73082615978

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "5709C39A-D53A-4D74-8765-7D763907877B",
    "data": {
        "total": 3,
        "accounts": [
            {
                "externalId": "3543180585310896590",
                "username": "developer2",
                "displayName": "Developer3",
                "phoneNumber": "",
                "email": "test2@****.com",
                "enabled": true,
                "locked": false,
                "description": "Synchronized from application {test-developer}",
                "extendFields": {
                    "test": "123456",
                    "test1": "woman"
                },
                "belongs": [
                    "test2",
                    "test1"
                ]
            },
            {
                "externalId": "test-2",
                "username": "test-2",
                "displayName": "test-3",
                "phoneNumber": "188****0900",
                "email": "test2@****.com",
                "enabled": false,
                "locked": false,
                "description": "123ttt",
                "extendFields": {
                    "test": "t",
                    "test1": "woman123"
                },
                "belongs": [
                    "test2"
                ]
            },
            {
                "externalId": "test-1",
                "username": "test-1",
                "displayName": "test-1",
                "phoneNumber": "",
                "email": "tangyuehan@idsmanager.com",
                "enabled": false,
                "locked": false,
                "description": "Synchronized from application {test-developer}",
                "extendFields": {},
                "belongs": [
                    "test2",
                    "test1"
                ]
            }
        ]
    }
}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the account in the IDaaS system.

username

{username}

The username.

phoneNumber

{phoneNumber}

The mobile phone number.

email

{email}

The email address.

locked

{locked}

Indicates whether the account is locked. Valid values: true (locked) and false (not locked).

enabled

{enabled}

Indicates whether the account is available. Valid values: true (enabled) and false (disabled).

belongs

{belongs}

The list of organizations to which the account belongs.

extendFields

{extendFields}

The extended fields, which are the custom fields saved for the account.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: Invalid createStartDate

A request parameter is invalid.

Push an account group

When you add a group in the SP, call this API operation to push the group information to IDaaS.

Request URI: /api/bff/v1.2/developer/scim/group/createPOSTREST

Content-Type: application/json

Request Body:

{
    "externalId": "121-11",
    "displayName": "Test synchronization group11",
    "ouExternalId": "605016592710192945",
    "members": [
        {
            "accountExternalId":"",
            "username":"test1"
        }
    ],
    "extendFields": {
        "test":"123456"
    }
}

Request parameters:

Parameter

Value

Type

Remarks

externalId

{externalId}

String

The external ID of the account group in the IDaaS system. The value must be unique. Optional. If you do not specify this parameter, the system randomly generates a value and returns it in the result.

displayName

{displayName}

String

The display name of the group. Required.

ouExternalId

{ouExternalId}

String

The external ID of the organizational unit (OU) to which the group belongs. Required.

description

{description}

String

The description. Optional.

members

{members}

String

The group members, which are the external IDs and usernames of existing accounts. accountExternalId is the external ID of the account, and username is the account name.

extendFields

{extendFields}

Map

The custom extended fields. Optional.

Response Body:

{"success": true,
        "code": "200",
        "message": null,
        "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
        "data": {
        "externalId":"123456"
        }
}

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The group name cannot be empty.

A request parameter is invalid.

400

InvalidParameter.DisplayName.Exist

The group name already exists in the current OU.

The display name already exists.

400

InvalidParameter.ExternalId.Exist

The externalId already exists.

The externalId already exists.

400

EntityNotFound

The OU does not exist.

The OU to which the group belongs does not exist.

403

Forbidden

You are not authorized to perform operations on this group.

You are not authorized to perform operations on this group.

Update an account group

When you update a group in the SP, call this API operation to push the group information to IDaaS.

Request URI: /api/bff/v1.2/developer/scim/group/updatePUTREST

Content-Type: application/json

Request Body:

{
    "externalId": "121",
    "description": "tttttest",
    "displayName": "testt121",
    "extendFields": {
        "test":"ttttest"
    }
}

Request parameters:

Parameter

Value

Type

Remarks

externalId

{externalId}

String

The external ID of the account group in the IDaaS system. The value must be unique. Required.

displayName

{displayName}

String

The display name of the group. Optional. If you specify this parameter, the value is updated.

description

{description}

String

The description. Optional. If you specify this parameter, the value is updated.

extendFields

{extendFields}

Map

The custom extended fields. Optional. If you specify this parameter, the value is updated.

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
    "data": null
}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The externalId parameter of the group cannot be empty.

A request parameter is invalid.

400

InvalidParameter.DisplayName.Exist

The group name already exists in the current OU.

The display name already exists.

400

InvalidParameter.ExternalId.NotExist

The externalId does not exist.

The externalId does not exist.

403

Forbidden

You are not authorized to perform operations on this group.

You are not authorized to perform operations on this group.

Delete an account group

When you delete a group in the SP, call this API operation to delete the group in IDaaS.

Request URI: /api/bff/v1.2/developer/scim/group/deleteDELETEREST

Content-Type:application/json

Request parameters:

Parameter

Value

Remarks

externalId

{externalId}

The external ID of the account group in the IDaaS system.

Response Body:

{
    "success": true,
    "code": "200",
    "message": null,
    "requestId": "BF66FA08-E57B-4387-90C0-A72E41307239",
    "data": null
}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The externalId parameter of the group cannot be empty.

A request parameter is invalid.

400

EntityNotFound

Example: The group information cannot be found.

The group information is not found.

400

OperationDenied.GroupContainsChildren

Example: The group has associated members, such as sub-members, and cannot be deleted.

The group has associated members, such as sub-members, and cannot be deleted.

403

Forbidden

You are not authorized to perform operations on this group.

You are not authorized to perform operations on this group.

Get the list of organizations and accounts authorized for an application

Get the external IDs of the organizations and accounts that are directly authorized for an application based on the UUID of the application.

Request URI: /api/bff/v1.2/developer/scim/application/authorized/listGETREST

Request example:

/api/bff/v1.2/developer/scim/application/authorized/list?applicationUuid=1694618271068407094

Request parameters:

Parameter

Value

Remarks

applicationUuid

{applicationUuid}

The unique identifier of the application in IDaaS.

Response Body:

{
"success": true,
"code": "200",
"message": null,
"requestId": "2230CE9E-4674-407C-A006-D29ACD9DADDB",
"data": {
    "ouExternalIds": [
        "1",
        "129387071",
        "4122068885249961546"
    ],
    "accountExternalIds": [
        "4484474128951618300",
        "5812895747601718104"
    ]
}
}}

Response parameters:

The success field indicates whether the request was successful. The code field is the error code, and the message field is the error message.

When success is true, the request was successful, code is 200, and the data field returns the data. When the request fails, success is false, and code is a semantic error code, such as InvalidParameter.ParentOUUuid.NotExist.

Parameter

Description

ouExternalIds

The list of external IDs of the authorized organizations.

accountExternalIds

The list of external IDs of the authorized accounts.

Error codes:

HttpCode (request status code)

code (error code)

message (error message)

Remarks

200

200

null

The request was successful.

400

InvalidParameter

Example: The applicationUuid cannot be empty.

A request parameter is invalid.

400

EntityNotFound

Example: The applicationUuid is invalid.

The application with the specified applicationUuid is not found.

403

Forbidden

Example: You are not authorized to perform operations on the parent OU.

You are not authorized to perform the operation.