zoukankan      html  css  js  c++  java
  • Keycloak 基本功能

    Keycloak是一个致力于解决应用和服务身份验证与访问管理的开源工具。可以通过简单的配置达到保护应用和服务的目的。

    用户管理

    你的应用不需要开发登录模块,验证用户和保存用户。Keycloak开发了用户管理,登录,注册,密码策略,安全问题,二步验证,密码重置等功能。登录,注册界面所需字段都是可配置,可自定义的。

    用户角色,权限管理功能,用户组功能。用户sessions管理。

    单点登录/登出(Single-Sign On/Out)

    用户通过Keycloak验证身份而非应用本身。当用户通过Keycloak的身份验证后,访问其他应用则不需要登录。

    登出同样适用。Keycloak也提供单点登出。

    Kerberos对接

    如果用户验证是通过Kerberos(LDAP或Active Directory)的方式,在登录工作站后,也能自动的通过Keycloak验证,而不需要再次提供用户名密码。

    身份代理和社交应用登录(Identity Brokering and Social Login)

    在后台管理配置社交应用可以实现第三方应用授权。

    Keycloak也能通过现成的OpenID Connect或SAML2.0 Identity Providers验证用户。只需要在后台配置即可。

    用户联盟(User Federation)

    Keycloak有内置的连接LDAP或AD的功能。你也可以实现自己的IdP,比如用户存储在关系型数据库。

    客户端适配器(Client Adapters)

    适配器让保护应用和服务变得很简单。已经有很多平台和编程语言的适配器。如果没有与你的平台相适应的适配器,别担心,Keycloak是建立在标准的协议之上,你可以使用任何OpenID Connect Resource Library或SAML 2.0 Service Provider library来实现。

    你可以使用代理服务器来保护你的应用,那就根本不需要修改应用了。

    后台管理(Admin Console)

    通过后台管理,管理员可以管理Keycloak所有方面的配置。可以开启关闭多种功能,配置身份代理和用户联盟。可以定义应用和服务,定义细粒的授权策略。管理用户,包括角色,权限,sessions等。

    账户管理界面(Account Management Console)

    用户可以通过账户管理界面管理自己的信息,更新,设定二次验证。用户也可以管理自己的sessions。

    标准协议(Standard Protocols)

    Keycloak是基于标准协议开发的,支持OpenID Connect, OAuth 2.0和SAML。

    授权服务(Authorization Services)

    如果基于role的授权无法满足需求,Keycloak提供细粒的授权服务。允许你通过后台管理所有的服务,可以定义满足你的需求的策略。

    Admin REST API

    Keycloak提供REST API用于后台管理,包括对Clients,Groups, Users, Roles等一系列资源的管理。这就为应用与Keycloak交互提供可能,应用可以在业务中实现对用户角色权限的增减。

    自定义主题

    Keycloak为web页面和email信息提供主题支持,更换符合公司产品风格的样式,可以自定义内容包括:

    • 账户管理界面
    • 后台管理界面
    • 邮件
    • 登录界面
    • 欢迎界面

    自定义用户字段(Custom User Attributes)

    我们可以在用户属性页添加自定义属性,并在注册界面或用户信息页展示。

    集群环境(Clustering)

    Keycloak支持集群环境,保障Keycloak的稳定运行,减小服务器压力。集群的搭建可以选择standalone模式或domain模式。domain模式经官方提供的文档使用软件负载均衡已经搭建成功。

    服务器缓存(Server Cache)

    Keycloak有两种缓存,一种缓存数据库内容到内存,用以减少获取数据的时间,包括realm, client, role和用户元数据。这种缓存是本地缓存,本地缓存是不会在集群环境中复制的。如果数据被更新了,一个失效消息会发送给剩下所有的节点服务器,用于更新缓存。当然有的缓存可以支持集群,需要告诉集群服务器,将特定的条目从本地缓存中移除。
    另一种缓存用于处理用户sessions,离线tokens以及跟踪登录失败次数,用于检测网络攻击。这种缓存是临时的,只在内存中保存,但是也可以复制到集群环境中。

    HTTPS/SSL

    Keycloak支持HTTPS协议传输,这也是官方推荐的方式。不过实际产品为了安全和负载均衡,可以考虑反响代理,对代理服务器做SSL,代理服务器与Keycloak交互仍使用HTTP协议。

    服务提供者接口(Service Provider Interfaces)

    Keycloak设计为包括大多数使用场景,但也支持定制化。Keycloak设计了SPI来允许开发者实现自己的服务提供者。Keycloak可用的SPI有Connections JPA,Email Sender,Email Listener,Login Protocol,Realm等。

    扩展服务器(Extending Server)

    Keycloak SPI框架提供实现或覆盖已有的providers。Keycloak也提供扩展核心功能的方式,包括:

    • 增加自定义REST服务
    • 增加自定义SPI
    • 增加自定义JPA实体到Keycloak数据模型中

    验证身份SPI(AUthentication SPI)

    Keycloak自带不同的验证机制:kerberos, 密码和一次性密码。这些机制可能无法满足你的需求,你可能会增加自己的验证机制。Keycloak提供一个验证身份SPI供创建新的插件时使用。

  • 相关阅读:
    sabaki and leelazero
    apply current folder view to all folders
    string operation in powershell
    wirte function in powershell
    add environment path to powershell
    Module in powershell
    sql prompt
    vmware中鼠标在部分区域不能使用
    调整多个控件的dock的顺序
    行为型模型 策略模式
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/12530394.html
Copyright © 2011-2022 走看看