Ошибка проверки API при создании нового пользователя в Okta

Я использую okta-sdk-java в своем приложении для реализации аутентификации входа на основе okta. Я могу успешно войти в приложение с пользователем, созданным в Okta developer console. но при попытке создать нового пользователя для моей группы приложений okta с помощью кода я получаю сообщение Ошибка проверки API

Я пробовал, как упоминалось в статье о Git-хабе, я создал новый токен в Okta developer console. Я скопировал созданный токен super api и использовал его в приложении, как показано ниже.

private String oktaBaseUri;
private String oktaDomain;
private AuthenticationClient oktaAuthClient;
private String relayState;
private Client oktaClient;
private String apiToken;

@PostConstruct
private void init() {
        oktaBaseUri = System.getProperty("okta.base.uri", "http://localhost:8080");
        oktaDomain = System.getProperty("okta.domain", "https://XXXXXXXXXXXXXXXXXXXX.com");
        relayState = System.getProperty("relay.state", "/app.menu/");
        apiToken = System.getProperty("okta.api.token", "00XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXeg");
        buildOktaClient();
}

private void buildOktaClient() {
        oktaAuthClient = AuthenticationClients.builder().setOrgUrl(oktaDomain).build();
        oktaClient = Clients.builder().setClientCredentials(new TokenClientCredentials(apiToken)).setOrgUrl(oktaDomain).build();
}

public User createOktaUser(ObjectVO objectVO) {
        User user = null;
        UserBuilder userBuilder = UserBuilder.instance().setEmail(objectVO.getUpn()).setFirstName(objectVO.getFirstNm()).setLastName(objectVO.getLastNm()).setPassword(objectVO.getPassword().toCharArray());
        userBuilder.setActive(true);
        user = userBuilder.buildAndCreate(oktaClient);
        user.addToGroup("my-group");
        return user;
}

Ожидаемый результат состоит в том, что новый пользователь должен быть создан в группе "my-group", но при этом будет выдана ошибка, указанная ниже.

Caused by: com.okta.sdk.resource.ResourceException: HTTP 400, Okta E0000001 (Api validation failed: login - '3 causes'), ErrorId oaevTzn-FnlTVGpgmb32W9K4A
        at com.okta.sdk.impl.ds.DefaultDataStore.execute(DefaultDataStore.java:453)
        at com.okta.sdk.impl.ds.DefaultDataStore.lambda$save$1(DefaultDataStore.java:314)
        at com.okta.sdk.impl.ds.DefaultFilterChain.filter(DefaultFilterChain.java:47)
        at com.okta.sdk.impl.ds.cache.WriteCacheFilter.filter(WriteCacheFilter.java:34)
        at com.okta.sdk.impl.ds.DefaultFilterChain.filter(DefaultFilterChain.java:52)

person Heisenberg    schedule 23.07.2019    source источник
comment
В сообщении об ошибке упоминается 3 causes. Документация Okta (на developer.okta.com/docs/reference/api / users / # get-user) заставляет меня поверить, что где-то в HTTP-ответе должен быть массив JSON с тремя причинами в нем.   -  person Lars Christian Jensen    schedule 23.07.2019


Ответы (1)


Есть несколько причин получить эту ошибку с кодом ошибки E0000001 API validation failed.

Одной из важных причин может быть шаблон или последовательность пароля. Для интеграции Okta определены правила паролей.

Основное правило: пароль логически "не содержит никакой части имени пользователя / адреса электронной почты"

Примеры:

Имя пользователя [email protected] состоит из следующих частей: mike, ross и business. Если пользователь пытается установить пароль на mike123456. Пароль не принимается, потому что микрофон считается "частью" имени пользователя / электронной почты.

Может это поможет.

person Prat    schedule 12.04.2020