• keycloak~对框架中提供的Provider总结


    提供者目录

    • Provider
    • Authenticator
      • BaseDirectGrantAuthenticator
      • AbstractFormAuthenticator
        • AbstractUsernameFormAuthenticator
    • RequiredActionProvider
    • FormAction
    • ProtocolMapper
      • AbstractOIDCProtocolMapper
    • RealmResourceProvider

    具体provider的作用

    1. Provider(提供者)

      • 作用:表示Keycloak中的各种扩展点,用于自定义和扩展Keycloak的功能。
      • 使用方法:开发者可以创建自定义的Provider,以实现对Keycloak的功能进行扩展,比如添加新的认证方式、存储方式等。
    2. Authenticator(认证器)

      • 作用:用于处理用户认证的组件,可以自定义不同类型的认证流程。
      • 使用方法:开发者可以基于BaseDirectGrantAuthenticator、AbstractFormAuthenticator等提供的基类,编写自定义的认证器,实现特定的认证逻辑。
      • BaseDirectGrantAuthenticator:用于直接授予访问令牌的认证器。
      • AbstractFormAuthenticator:用于处理表单认证的认证器基类。
        • AbstractUsernameFormAuthenticator:处理用户名密码表单认证的认证器基类。

    在brower,directgrant等认证流程中,添加自定义的Authenticator

    1. RequiredActionProvider(必需操作提供者)
      • 作用:定义了用户在登录后需要执行的操作,比如修改密码、接受条款等。
      • 使用方法:开发者可以创建自定义的RequiredActionProvider,以实现对用户的必需操作进行管理和触发。

    对于某些用户添加某些标识,有这个标识的用户,会进行这个RequiredActionProvider的执行,例如:临时密码(第一次登录需要修改密码)

    1. FormAction(表单操作)
      • 作用:用于处理用户在登录过程中需要填写的表单信息,比如验证码、安全问题等。
      • 使用方法:开发者可以编写自定义的FormAction,以实现对用户登录过程中表单信息的处理和验证。

    在用户注册页面,可以添加FormAction,在注册过程中添加自己的业务逻辑

    1. ProtocolMapper(协议映射器)
      • 作用:用于将Keycloak中的属性映射到OAuth或OpenID Connect(OIDC)协议中。

      • 使用方法:开发者可以基于AbstractOIDCProtocolMapper提供的基类,编写自定义的协议映射器,实现将用户属性映射到OAuth或OIDC协议中。

      • AbstractOIDCProtocolMapper:用于实现将用户属性映射到OIDC协议中的协议映射器基类。

    这块主要用在自定义jwt token,当用户认证成功后,在构建token时,配置keycloak中的客户端模板中的Mappers来添加自己的个性信息在token中

    1. 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管理功能。

    浏览器认证流程扩展

  • 相关阅读:
    关于#后端#的问题,请各位专家解答!
    [ArcPy百科]第一节:何为arcpy
    洛谷刷题C语言:FAKTOR、BELA、PUTOVANJE、使用三个系统程度的能力、R.I.P.
    Cadence导入IBIS模型用于仿真
    RabbitMQ基础篇 笔记
    springboot logback 日志注入安全问题 统一处理
    go语言的基本数据类型
    FutureTask-详解(二)-ThreadPollExecutor-并发编程(Java)
    对数据“投入”却没有“产出”?听听 Gartner 的最新分析
    Springboot毕设项目共享单车管理系统93je9(java+VUE+Mybatis+Maven+Mysql)
  • 原文地址:https://www.cnblogs.com/lori/p/18126512