从 curl 命令在 Keycloak 上创建用户
Create user on Keycloack from curl command
目前我尝试通过 Keycloak 的 Admin REST API 从 curl 命令创建用户。
我可以以管理员身份验证自己,我有一个很好的答案,但是当我想创建一个用户时,我有一个错误,如:“404 - 未找到”。
这是我的 curl 命令:
#!/bin/bash
echo "* Request for authorization"
RESULT=`curl --data "username=pierre&password=pierre&grant_type=password&client_id=admin-cli" http://localhost:8080/auth/realms/master/protocol/openid-connect/token`
echo "\n"
echo "* Recovery of the token"
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
echo "\n"
echo "* Display token"
echo $TOKEN
echo "\n"
echo " * user creation\n"
curl http://localhost:8080/apiv2/users -H "Authorization: bearer $TOKEN" --data '{"firstName":"xyz","lastName":"xyz", "email":"demo2@gmail.com", "enabled":"true"}'
我使用了官方 API 文档,位于这个地址:https://www.keycloak.org/docs-api/4.4/rest-api/index.html
我有这个错误:
我的境界不错
我该如何解决?
提前致谢。
根据 Keycloak 的文档 (Server Admin > The Admin CLI > Basic operations and resource URIs),users
端点应该是:
http://localhost:8080/auth/admin/realms/apiv2/users
所以请相应地修正你的最后一个URL。
您还可以在 Keycloak's JIRA issue #5383 上找到完整示例。请注意,它也明确添加了 content-type header:
Content-Type: application/json
试试这个,我添加了内容类型 header 并修改了 url :
#!/bin/bash
echo "* Request for authorization"
RESULT=`curl --data "username=admin&password=Pa55w0rd&grant_type=password&client_id=admin-cli" http://localhost:8080/auth/realms/master/protocol/openid-connect/token`
echo "\n"
echo "* Recovery of the token"
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
echo "\n"
echo "* Display token"
echo $TOKEN
echo "\n"
echo " * user creation\n"
curl -v http://localhost:8080/auth/admin/realms/apiv2/users -H "Content-Type: application/json" -H "Authorization: bearer $TOKEN" --data '{"firstName":"xyz","lastName":"xyz", "email":"demo2@gmail.com", "enabled":"true"}'
目前我尝试通过 Keycloak 的 Admin REST API 从 curl 命令创建用户。 我可以以管理员身份验证自己,我有一个很好的答案,但是当我想创建一个用户时,我有一个错误,如:“404 - 未找到”。
这是我的 curl 命令:
#!/bin/bash
echo "* Request for authorization"
RESULT=`curl --data "username=pierre&password=pierre&grant_type=password&client_id=admin-cli" http://localhost:8080/auth/realms/master/protocol/openid-connect/token`
echo "\n"
echo "* Recovery of the token"
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
echo "\n"
echo "* Display token"
echo $TOKEN
echo "\n"
echo " * user creation\n"
curl http://localhost:8080/apiv2/users -H "Authorization: bearer $TOKEN" --data '{"firstName":"xyz","lastName":"xyz", "email":"demo2@gmail.com", "enabled":"true"}'
我使用了官方 API 文档,位于这个地址:https://www.keycloak.org/docs-api/4.4/rest-api/index.html
我有这个错误:
我的境界不错
我该如何解决? 提前致谢。
根据 Keycloak 的文档 (Server Admin > The Admin CLI > Basic operations and resource URIs),users
端点应该是:
http://localhost:8080/auth/admin/realms/apiv2/users
所以请相应地修正你的最后一个URL。
您还可以在 Keycloak's JIRA issue #5383 上找到完整示例。请注意,它也明确添加了 content-type header:
Content-Type: application/json
试试这个,我添加了内容类型 header 并修改了 url :
#!/bin/bash
echo "* Request for authorization"
RESULT=`curl --data "username=admin&password=Pa55w0rd&grant_type=password&client_id=admin-cli" http://localhost:8080/auth/realms/master/protocol/openid-connect/token`
echo "\n"
echo "* Recovery of the token"
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
echo "\n"
echo "* Display token"
echo $TOKEN
echo "\n"
echo " * user creation\n"
curl -v http://localhost:8080/auth/admin/realms/apiv2/users -H "Content-Type: application/json" -H "Authorization: bearer $TOKEN" --data '{"firstName":"xyz","lastName":"xyz", "email":"demo2@gmail.com", "enabled":"true"}'