通过 CLI 为 Keycloak 配置 reCAPTCHA
Configuration of reCAPTCHA for Keycloak via CLI
有没有办法通过 CLI 为 Keycloak 独立安装配置 reCAPTCHA?更准确地说,是否可以在 kcadm.sh
的帮助下执行 here in the Keycloak docs 描述的所有步骤?
您可以使用 Keycloak Admin REST API 来实现。
第一步是获取管理员令牌,这样就可以调用 Rest API:
curl -d "client_id=admin-cli" \
-d "username=$ADMIN_NAME" \
-d "password=$ADMIN_PASSWORD" \
-d "grant_type=password" \
https://$KEYCLOAK_IP/auth/realms/master/protocol/openid-connect/token
您将获得带有管理员令牌的 json response
。从该响应中提取 访问令牌 (我们称为 $ACCESS_TOKEN
)。
现在,我们需要获取链接到注册流程的所有执行的列表:
curl -X GET https://$KEYCLOAK_IP/auth/admin/realms/$REALM_NAME/authentication/flows/registration/executions \
-H "Content-Type: application/json" \
-H "Authorization: bearer $ACCESS_TOKEN"
从 json response
中提取 "providerId=registration-recaptcha-action"
的 id
。让我们称之为 id
、$ID_RECAPTCHA
.
接下来进行注册时需要的验证码:
CAPTCHA_DATA='{"id":"$ID_RECAPTCHA","requirement":"REQUIRED","providerId":"registration-recaptcha-action"}'
curl -X PUT https://$KEYCLOAK_IP/auth/admin/realms/$REALM_NAME/authentication/flows/registration/executions \
-H "Content-Type: application/json" \
-H "Authorization: bearer $ACCESS_TOKEN"\
-d "$JSON_DATA"
最后,配置你自己的验证码:
CONFIG_DATA='{"config":{"site.key":"<YOUR SITE KEY>","secret":"<YOUR SECRET>","useRecaptchaNet":"<True or False>"},"alias":"<The CAPTCHA ALIAS>"}'
curl -X POST https://$KEYCLOAK_IP/auth/admin/realms/$REALM_NAME/authentication/executions/$ID_RECAPTCHA/config \
-H "Content-Type: application/json" \
-H "Authorization: bearer $ACCESS_TOKEN"\
接下来,最好的办法是使用一些 bash 脚本自动执行此过程。
有没有办法通过 CLI 为 Keycloak 独立安装配置 reCAPTCHA?更准确地说,是否可以在 kcadm.sh
的帮助下执行 here in the Keycloak docs 描述的所有步骤?
您可以使用 Keycloak Admin REST API 来实现。
第一步是获取管理员令牌,这样就可以调用 Rest API:
curl -d "client_id=admin-cli" \
-d "username=$ADMIN_NAME" \
-d "password=$ADMIN_PASSWORD" \
-d "grant_type=password" \
https://$KEYCLOAK_IP/auth/realms/master/protocol/openid-connect/token
您将获得带有管理员令牌的 json response
。从该响应中提取 访问令牌 (我们称为 $ACCESS_TOKEN
)。
现在,我们需要获取链接到注册流程的所有执行的列表:
curl -X GET https://$KEYCLOAK_IP/auth/admin/realms/$REALM_NAME/authentication/flows/registration/executions \
-H "Content-Type: application/json" \
-H "Authorization: bearer $ACCESS_TOKEN"
从 json response
中提取 "providerId=registration-recaptcha-action"
的 id
。让我们称之为 id
、$ID_RECAPTCHA
.
接下来进行注册时需要的验证码:
CAPTCHA_DATA='{"id":"$ID_RECAPTCHA","requirement":"REQUIRED","providerId":"registration-recaptcha-action"}'
curl -X PUT https://$KEYCLOAK_IP/auth/admin/realms/$REALM_NAME/authentication/flows/registration/executions \
-H "Content-Type: application/json" \
-H "Authorization: bearer $ACCESS_TOKEN"\
-d "$JSON_DATA"
最后,配置你自己的验证码:
CONFIG_DATA='{"config":{"site.key":"<YOUR SITE KEY>","secret":"<YOUR SECRET>","useRecaptchaNet":"<True or False>"},"alias":"<The CAPTCHA ALIAS>"}'
curl -X POST https://$KEYCLOAK_IP/auth/admin/realms/$REALM_NAME/authentication/executions/$ID_RECAPTCHA/config \
-H "Content-Type: application/json" \
-H "Authorization: bearer $ACCESS_TOKEN"\
接下来,最好的办法是使用一些 bash 脚本自动执行此过程。