Keycloak 提供方在 Users & Permissions 中的设置
页面摘要: 通过在 Keycloak 中配置一个客户端,然后在 Strapi 的管理设置中启用并填写 Keycloak 提供方详细信息,将 Keycloak 设置为 Strapi Users & Permissions 功能的身份提供者。
本页介绍如何为 Users & Permissions 功能 设置 Keycloak 提供方。
WARNING
Keycloak 配置
NOTE
Keycloak 接受 localhost URL。
无需使用 ngrok。
- 访问你的 Keycloak 管理仪表板
- 如果你还没有 realm,需要先创建一个
- 在你的 realm 的 Clients(客户端)部分,创建一个新的客户端
- 在 capability config(能力配置)下,确保将
Client Authentication(客户端身份验证)设置为开启,以便能够创建私钥 - 在 access settings(访问设置)下,确保设置以下值:
- Valid redirect URIs(有效的重定向 URI):
http://localhost:1337/api/connect/keycloak/callback和http://localhost:1337/api/connect/keycloak - Allowed Web Origins(允许的 Web 来源):
http://localhost:3000和http://localhost:1337
- Valid redirect URIs(有效的重定向 URI):
- 在 Client Scopes(客户端范围)部分,确保将
email和profile范围设置为默认 - 在 Client Scopes(客户端范围)部分,确保将
openid范围设置为默认;如果没有,你需要在全局 Client Scopes(客户端范围)中手动创建它
Strapi 配置
- 访问 User & Permissions 提供方设置页面,地址为 http://localhost:1337/admin/settings/users-permissions/providers
- 点击 Keycloak 提供方
- 填写以下信息:
- Enable:
ON - Client ID:
<Your Keycloak Client ID> - Client Secret:
<Your Keycloak Client Secret> - Subdomain:
<Your Keycloak realm url>,例如keycloak.example.com/realms/strapitest或keycloak.example.com/auth/realms/strapitest前面不带协议 - 指向你前端应用的重定向 URL:
http://localhost:3000/connect/keycloak/redirect - (可选)如果你有自定义的 JWKS URL,请设置 JWKS URL,例如
https://keycloak.example.com/auth/realms/strapitest/protocol/openid-connect/certs
- Enable:
你的配置已完成。启动后端和 react 登录示例应用,访问 http://localhost:3000 并尝试连接到你所配置的提供方。
从 Strapi v4 迁移
Strapi v4 的扩展通常通过 providersRegistry.register() 注册 Keycloak。该方法在 Strapi 5 中已不再可用。
在 Strapi 5 中,请从 /src/index.js|ts 中的 register() 函数 调用 providers-registry 服务的 add() 方法。
详情请参阅自定义提供方指南。
如果你仍然在 registry 对象上调用 register(),Strapi 会抛出 TypeError: providersRegistry.register is not a function。