部署Keycloak
使用dev模式启动,自定义配置可以放到conf下
1 | version: '3.9' |
认证/Authentication
Authentication 是确认身份的过程。在计算机安全领域,它通常涉及到确保用户或其他实体是他们自称的那个人,
这通常通过用户名和密码、生物识别方法或其他形式的身份凭证来完成。
在Keycloak中,认证过程涉及到创建一个realm和client,并配置身份验证流。以下是详细步骤:
1. 创建Realm
登录到Keycloak的Admin Console:
- 打开浏览器,访问Keycloak的管理控制台,通常是
http://<your-domain>:8080/auth/admin/
。 - 使用管理员账户登录(在docker-compose文件中设置的用户名和密码)。
- 打开浏览器,访问Keycloak的管理控制台,通常是
添加新的Realm:
- 登录后,点击左上角的下拉菜单,选择”Add Realm”。
- 输入Realm名称(例如
my-realm
),可以添加描述,点击创建。
2. 创建Client
导航到Clients:
- 在新创建的Realm中,点击左侧菜单中的”Clients”。
创建新的Client:
- 点击右上角的”Create”按钮。
- 输入Client ID(例如
my-client
),选择Client Protocol(例如openid-connect
)。 - 点击保存。
配置Client:
- 在创建后的Client页面,配置Client的详细信息:
- Redirect URI: 设置允许的重定向URI(例如
http://localhost:8080/*
)。 - Web Origins: 设置允许的Web Origins(例如
http://localhost:8080
)。 - Access Type: 选择
confidential
(机密)或者public
(公共),根据应用需求。
- Redirect URI: 设置允许的重定向URI(例如
- 在创建后的Client页面,配置Client的详细信息:
3. 配置身份验证流
导航到Authentication:
- 在Realm设置中,点击左侧菜单中的”Authentication”。
配置浏览器认证流:
- 在”Flows”标签下,找到”Browser”流。
- 可以根据需求自定义各个步骤,如添加多因素认证(MFA),修改表单验证等。
配置注册流:
- 在”Flows”标签下,找到”Registration”流。
- 可以自定义用户注册过程,如添加验证码验证,邮箱验证等。
4. 配置用户和角色
创建用户:
- 在Realm设置中,点击左侧菜单中的”Users”。
- 点击右上角的”Add user”按钮。
- 输入用户名和其他必要信息,点击保存。
- 在用户详情页面,导航到”Credentials”标签,设置用户密码。
创建角色:
- 在Realm设置中,点击左侧菜单中的”Roles”。
- 点击右上角的”Add Role”按钮。
- 输入角色名称(例如
user
),点击保存。
分配角色给用户:
- 在用户详情页面,导航到”Role Mappings”标签。
- 在”Available Roles”中选择要分配的角色并添加。
5. 测试认证
访问Client应用:
- 打开浏览器,访问Client应用的登录页面(例如
http://localhost:8080
)。 - 应该会被重定向到Keycloak的登录页面。
- 打开浏览器,访问Client应用的登录页面(例如
登录测试:
- 使用之前创建的用户账户登录。
- 如果配置正确,登录成功后会被重定向回Client应用。
结论
通过以上步骤,您已经在Keycloak中完成了基本的认证配置。Keycloak提供了强大的身份验证功能,可以根据需要进行高度定制。通过创建Realm、Client、用户和角色,并配置身份验证流,您可以确保用户身份的安全验证。如果需要更高级的功能,如多因素认证(MFA)或外部身份提供者集成(如LDAP、社交登录),Keycloak也提供了相应的支持。
授权/Authorization
Authorization 是确定一个已经过认证的用户或实体是否有权执行特定操作的过程。通常涉及到检查一个用户的权限,
以确定他们是否有权访问系统中的资源或执行请求的操作。Keycloak中支持多种授权策略,包括RBAC,ABAC,GBAC等等