# 修改用户 identity provider external ID

**URL:** https://meta.discourse.org/t/modify-identity-provider-external-id-for-a-user/264379
**Category:** SSO
**Tags:** rest-api
**Created:** [2023年五月9日 10:21 UTC](https://meta.discourse.org/t/modify-identity-provider-external-id-for-a-user/264379 "2023-05-09T10:21:43Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![SamSam](https://avatars.discourse-cdn.com/v4/letter/s/3ab097/32.png) [@SamSam](https://meta.discourse.org/u/SamSam)
#### Post date: [2023年五月9日 10:21 UTC](https://meta.discourse.org/t/modify-identity-provider-external-id-for-a-user/264379/1 "2023-05-09T10:21:43Z")

</div>

如果进行迁移，我将通过 API 创建用户。我们使用 Discourse-openid-connect 连接到我们的 SSO (Keycloak)。我想通过 API 将用户帐户与 Keycloak 的 ID 相关联。我该怎么做？

我看到了 API `/u/by-external/oidc/{ext_id].json` 以从外部 ID 获取用户信息。  
我还看到了 API `/u/{username}.json` 用于更新用户，以及一个名为 `external_ids` 的字段。但我不知道该放什么值……

---

<div class="post-metadata">

### Author: ![clayg](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clayg/32/181131_2.png) [@clayg](https://meta.discourse.org/u/clayg)
#### Post date: [2024年一月22日 13:34 UTC](https://meta.discourse.org/t/modify-identity-provider-external-id-for-a-user/264379/2 "2024-01-22T13:34:23Z")

</div>

我也有同样的问题，但还没有找到答案。我也通过 API 创建新用户，并通过 OpenID 登录。创建用户时，我无法设置他们的 external\_ids（它被忽略了），并且我尝试使用 external ID 更新用户也没有对用户记录进行任何更改。

不过，我想补充一点，我决定使用自定义用户字段（**user\_fields[1]**）来存储我的 external ID，而且它有效。
