1.3. 架构
本例演示了一个简单的微服务设置,它有两个受保护的端点:
-
/api/users/me
-
/api/admin
基于令牌的访问控制
使用 bearer 令牌控制对这些端点的访问。要获取访问权限,必须满足以下条件:
- 有效的令牌 :令牌必须具有正确的签名、有效的过期日期和相应的受众。
- 信任 :微服务必须信任发布 Keycloak 服务器。
Keycloak 服务器发布的 bearer 令牌充当:
- 用户标识符 :指示签发令牌的主题(用户)。
- 客户端引用 :根据 OAuth 2.0 授权服务器标准,标识代表用户的客户端应用程序。
端点和访问策略
对于 /api/users/me
:
-
访问策略 :打开具有有效 bearer 令牌和用户角色
的用户
。 响应 :以从令牌派生的 JSON 对象返回用户详情。
响应示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
对于 /api/admin
:
-
访问策略 :限制具有有效 bearer 令牌和
admin
角色的用户。
分离的授权
本例重点介绍了使用基于角色的访问控制(RBAC)策略来保护资源。关键点包括:
- 策略灵活性 : Keycloak 支持各种策略类型,如基于属性的和自定义策略,启用精细的控制。
- 分离的应用程序逻辑 :授权策略完全由 Keycloak 管理,使您的应用程序可以专注于其核心功能。