keycloak~对框架中提供的Provider总结
提供者目录
- Provider
- Authenticator
- BaseDirectGrantAuthenticator
- AbstractFormAuthenticator
- AbstractUsernameFormAuthenticator
- RequiredActionProvider
- FormAction
- ProtocolMapper
- AbstractOIDCProtocolMapper
- RealmResourceProvider
具体provider的作用
-
Provider(提供者):
- 作用:表示Keycloak中的各种扩展点,用于自定义和扩展Keycloak的功能。
- 使用方法:开发者可以创建自定义的Provider,以实现对Keycloak的功能进行扩展,比如添加新的认证方式、存储方式等。
-
Authenticator(认证器):
- 作用:用于处理用户认证的组件,可以自定义不同类型的认证流程。
- 使用方法:开发者可以基于BaseDirectGrantAuthenticator、AbstractFormAuthenticator等提供的基类,编写自定义的认证器,实现特定的认证逻辑。
- BaseDirectGrantAuthenticator:用于直接授予访问令牌的认证器。
- AbstractFormAuthenticator:用于处理表单认证的认证器基类。
- AbstractUsernameFormAuthenticator:处理用户名密码表单认证的认证器基类。
在brower,directgrant等认证流程中,添加自定义的Authenticator
- RequiredActionProvider(必需操作提供者):
- 作用:定义了用户在登录后需要执行的操作,比如修改密码、接受条款等。
- 使用方法:开发者可以创建自定义的RequiredActionProvider,以实现对用户的必需操作进行管理和触发。
对于某些用户添加
某些标识
,有这个标识的用户,会进行这个RequiredActionProvider的执行,例如:临时密码(第一次登录需要修改密码)
- FormAction(表单操作):
- 作用:用于处理用户在登录过程中需要填写的表单信息,比如验证码、安全问题等。
- 使用方法:开发者可以编写自定义的FormAction,以实现对用户登录过程中表单信息的处理和验证。
在用户注册页面,可以添加FormAction,在注册过程中添加自己的业务逻辑
- ProtocolMapper(协议映射器):
-
作用:用于将Keycloak中的属性映射到OAuth或OpenID Connect(OIDC)协议中。
-
使用方法:开发者可以基于AbstractOIDCProtocolMapper提供的基类,编写自定义的协议映射器,实现将用户属性映射到OAuth或OIDC协议中。
-
AbstractOIDCProtocolMapper:用于实现将用户属性映射到OIDC协议中的协议映射器基类。
-
这块主要用在自定义jwt token,当用户认证成功后,在构建token时,配置keycloak中的
客户端模板
中的Mappers来添加自己的个性信息在token中
- RealmResourceProvider(http普通接口与响应):
- 作用:RealmResourceProvider是Keycloak中的一个接口,用于管理特定Realm下的资源(如Clients、Users等)。通过实现RealmResourceProvider接口,可以对Realm内的资源进行增删改查等操作,实现对Realm级别资源的管理。
- 使用方法:
- 创建自定义RealmResourceProvider实现类:首先,需要创建一个自定义的RealmResourceProvider实现类,该类需要实现RealmResourceProvider接口,并实现其中定义的方法,包括对Realm资源的增删改查等操作。
- 注册自定义RealmResourceProvider:将自定义的RealmResourceProvider实现类注册到Keycloak中,以便Keycloak能够识别并使用该Provider来管理特定Realm下的资源。
- 使用RealmResourceProvider:在需要对特定Realm下的资源进行管理时,通过调用RealmResourceProvider提供的方法来执行相应的操作,比如创建新的Client、添加用户等。
- 处理Realm级别操作:利用RealmResourceProvider可以处理一些Realm级别的操作,例如管理Realm下的所有Clients、Roles等资源,实现更灵活和个性化的Realm管理功能。