Asgardeo UserManagementAPI: несогласованная ошибка при создании пользователя Asgardeo/массовом создании пользователя
Мы пытались создать пользователя в Асгардео, используя UserManagementAPI.
POST массового запроса:
Тело ответа:
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:BulkResponse"
],
"Operations": [
{
"bulkId": "ezYkd",
"method": "POST",
"response": "{\"schemas\":[\"urn:ietf:params:scim:api:messages:2.0:Error\"],\"scimType\":\"invalidValue\",\"detail\":\"The minimum length of password should be 8.\",\"status\":\"400\"}",
"status": {
"code": 400
}
}
]
}
Однако, если вы попробуете тот же запрос на POST https://api.asgardeo.io/t/asgardeo/scim2/Users Request Body:
{
"userName": "DEFAULT/olie@rtzassociates.com",
"emails": [
{
"primary": true,
"value": "olie@rtzassociates.com"
}
],
"name": {
"familyName": "Olie",
"givenName": "Santos"
},
"urn:scim:wso2:schema": {
"askPassword": true
}
}
Тело ответа:
{
"emails": [
"olie@rtzassociates.com"
],
"meta": {
"created": "2023-03-21T00:46:31.404271Z",
"location": "https://api.asgardeo.io/t/ascension/scim2/Users/6f355967-706d-4b08-b1a0-633a8bccd151",
"lastModified": "2023-03-21T00:46:31.727462Z",
"resourceType": "User"
},
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:scim:wso2:schema"
],
"roles": [
{
"display": "everyone",
"value": "7e044e9c-7b9b-47bf-b542-098362f8ac86",
"$ref": "https://api.asgardeo.io/t/ascension/scim2/Roles/7e044e9c-7b9b-47bf-b542-098362f8ac86"
}
],
"name": {
"givenName": "Santos",
"familyName": "Olie"
},
"id": "6f355967-706d-4b08-b1a0-633a8bccd151",
"userName": "DEFAULT/olie@rtzassociates.com",
"urn:scim:wso2:schema": {
"accountLocked": "true",
"accountState": "PENDING_AP",
"lockedReason": "PENDING_ASK_PASSWORD",
"userSource": "DEFAULT",
"idpType": "Local",
"isReadOnlyUser": "false"
}
}
Что странно, когда мы успешно создаем пользователя с помощью Users Endpoint , мы теперь можем создать пользователя с помощью POST массовой конечной точки Request Body:
{
"failOnErrors": 0,
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:BulkRequest"
],
"Operations": [
{
"method": "POST",
"bulkId": "ezYkd",
"path": "/Users",
"data": {
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "DEFAULT/olie+1@rtzassociates.com",
"emails": [
{
"primary": true,
"value": "olie+1@rtzassociates.com"
}
],
"name": {
"familyName": "Olie+1",
"givenName": "Santos"
},
"urn:scim:wso2:schema": {
"askPassword": true
}
}
}
]
}
Тело ответа:
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:BulkResponse"
],
"Operations": [
{
"bulkId": "ezYkd",
"method": "POST",
"location": "https://api.asgardeo.io/t/ascension/scim2/Users/a13a6e05-ed92-4071-87a9-aeeaede4fd30",
"status": {
"code": 201
}
}
]
}
Мы ожидали, что при первоначальном вызове POST https://api.asgardeo.io/t/asgardeo/scim2/Телоhttps://api.asgardeo.io/t/asgardeo/scim2/Bulkhttps://api.asgardeo.io/t/asgardeo/scim2/Bulk уже будет успешно создан пользователь, вместо того, чтобы вызывать тело запроса конечной точки пользователей :
{
"failOnErrors": 0,
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:BulkRequest"
],
"Operations": [
{
"method": "POST",
"bulkId": "ezYkd",
"path": "/Users",
"data": {
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "DEFAULT/olie@rtzassociates.com",
"emails": [
{
"primary": true,
"value": "olie@rtzassociates.com"
}
],
"name": {
"familyName": "Olie",
"givenName": "Santos"
},
"urn:scim:wso2:schema": {
"askPassword": true
}
}
}
]
}
1 ответ
Эта проблема может быть вызвана тем, что мы генерируем случайный пароль для пользователя, если он/она создан с этой опцией. В основном происходит следующее:
- Запрос на создание пользователя инициируется с помощью этой опции.
- Поскольку
askPassword
доступна в запросе, Asgardeo генерирует случайный пароль для этого пользователя. - К сожалению, иногда случайно сгенерированный пароль может не соответствовать политике паролей, определенной на стороне Asgardeo, что приводит к этой проблеме.
Нам нужно будет дополнительно проверить это поведение, чтобы подтвердить вышеизложенное. Если причиной является вышеупомянутое, возможно, нам следует добавить подходящее исправление. Мы будем держать вас в курсе этой темы.