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, что приводит к этой проблеме.

Нам нужно будет дополнительно проверить это поведение, чтобы подтвердить вышеизложенное. Если причиной является вышеупомянутое, возможно, нам следует добавить подходящее исправление. Мы будем держать вас в курсе этой темы.

Другие вопросы по тегам