gpt4 book ai didi

java - 在 Okta 中创建新用户时遇到 API 验证失败错误

转载 作者:行者123 更新时间:2023-12-02 02:44:14 27 4
gpt4 key购买 nike

我在应用程序中使用 okta-sdk-java 来实现基于 okta 的登录身份验证。我能够使用 Okta 开发者控制台 中创建的用户成功登录应用。但是在尝试通过代码为我的 okta 应用程序组创建新用户时,我收到 API 验证失败错误

我已尝试,如 Git 中心文章中所述,我已在 Okta 开发者控制台 中创建了一个新 token 。我已复制创建的 super api token 并在应用程序中使用它,如下所示

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)

最佳答案

出现此错误的原因有多种,错误代码为 E0000001 API 验证失败

最重要的原因之一是密码模式或序列。为 Okta 集成定义了密码规则。

基本规则:密码“逻辑上不包含用户名/电子邮件的任何部分”

示例:

用户名mike.ross@business.com包含以下部分:mike、ross和business。 如果用户尝试将密码设置为mike123456。不接受密码,因为 mike 被视为用户名/电子邮件“部分”。

希望这会有所帮助。

关于java - 在 Okta 中创建新用户时遇到 API 验证失败错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57157703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com