首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

keycloak从一个新的域和一些客户端配置开始

基础概念

Keycloak是一个开源的身份和访问管理解决方案,它提供了单点登录(SSO)、身份代理、LDAP和Active Directory集成、OAuth 2.0和OpenID Connect支持等功能。Keycloak的核心组件包括领域(Realm)、客户端(Client)、用户(User)、组和角色(Role)等。

相关优势

  1. 开源与社区支持:Keycloak是一个活跃的开源项目,拥有强大的社区支持和频繁的更新。
  2. 易于集成:Keycloak可以轻松地与现有的应用程序和基础设施集成。
  3. 灵活的认证和授权:支持多种认证和授权机制,包括OAuth 2.0、OpenID Connect、SAML 2.0等。
  4. 可扩展性:可以通过插件和自定义服务来扩展Keycloak的功能。

类型

Keycloak的配置主要包括领域(Realm)和客户端(Client)的配置。

应用场景

Keycloak广泛应用于需要身份验证和授权的Web应用程序、移动应用程序和微服务架构中。

配置新的域和客户端

创建新的域

  1. 打开Keycloak管理控制台。
  2. 点击“添加领域”按钮。
  3. 输入领域的名称和其他必要信息,然后点击“创建”。

配置客户端

  1. 在Keycloak管理控制台中,选择刚刚创建的领域。
  2. 点击“客户端”选项卡。
  3. 点击“创建”按钮来添加一个新的客户端。
  4. 填写客户端的名称、客户端协议(如openid-connect)和其他必要信息。
  5. 配置客户端的设置,如访问类型(confidential/public)、服务URLs、重定向URIs等。
  6. 点击“保存”来完成客户端的配置。

可能遇到的问题及解决方法

问题:无法创建新的领域或客户端

原因:可能是由于权限不足或网络问题。

解决方法

  • 确保你有足够的权限来创建领域和客户端。
  • 检查网络连接是否正常。
  • 查看Keycloak的日志文件以获取更多错误信息。

问题:客户端无法正常工作

原因:可能是由于配置错误或证书问题。

解决方法

  • 仔细检查客户端的配置,确保所有必要的设置都已正确配置。
  • 确保客户端使用的证书是有效的,并且与Keycloak服务器上的证书匹配。
  • 查看Keycloak和客户端的日志文件以获取更多错误信息。

示例代码

以下是一个简单的示例,展示如何在Java应用程序中使用Keycloak进行身份验证:

代码语言:txt
复制
import org.keycloak.KeycloakSecurityContext;
import org.keycloak.adapters.KeycloakDeployment;
import org.keycloak.adapters.spi.HttpFacade;
import org.keycloak.adapters.springsecurity.KeycloakConfiguration;
import org.keycloak.adapters.springsecurity.authentication.KeycloakAuthenticationProvider;
import org.keycloak.adapters.springsecurity.config.KeycloakWebSecurityConfigurerAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.authority.mapping.SimpleAuthorityMapper;
import org.springframework.security.core.session.SessionRegistryImpl;
import org.springframework.security.web.authentication.session.RegisterSessionAuthenticationStrategy;
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy;

@KeycloakConfiguration
public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider();
        keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper());
        auth.authenticationProvider(keycloakAuthenticationProvider);
    }

    @Bean
    public KeycloakSpringBootConfigResolver KeycloakConfigResolver() {
        return new KeycloakSpringBootConfigResolver();
    }

    @Bean
    @Override
    protected SessionAuthenticationStrategy sessionAuthenticationStrategy() {
        return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl());
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
        http.authorizeRequests()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .antMatchers("/user/**").hasRole("USER")
            .anyRequest().authenticated();
    }
}

参考链接

通过以上信息,你应该能够了解Keycloak的基本概念、优势、类型、应用场景以及如何配置新的域和客户端。如果在配置过程中遇到问题,可以参考上述解决方法进行排查和解决。

相关搜索:是否可以基于Keycloak SPI创建一个Keycloak侦听器,以便将配置从一个领域复制到新创建的领域?我可以结束一个活动,然后从一个片段切换案例开始一个新的活动吗?为什么在pdfkit中,字符串开始一个新的段落和一个新的页面从一个表中的2列开始计数,该表具有来自另一个表的范围(开始和结束)Mendeley和Citavi忽略之前的引用,并将其作为普通文本,并从一个开始重新开始从一个具有不同值和类型的列创建新的数据框列当Keycloak broker被配置为另一个Keycloak实例的客户端时,出现“使用身份提供者进行身份验证时出现意外错误”错误从一个文件中获取值,经过一些计算和一些更改后,需要打印到python中的另一个文件中如何将一个数据库的所有内容从一个域复制到另一个域中的新数据库?Outlook客户端外接程序:链接和JS重定向到其他域,请打开新的浏览器选项卡将rails模式和迁移从一个rails应用程序转移到新的rails应用程序有一个包含开始日期和持续时间分钟的表。尝试让它在SQL中提供新的结束日期Unix域套接字:使用一个服务器进程和多个客户端进程之间的数据报通信计算星期的开始日期和结束日期,在新的月份的第一天会产生一个奇怪的结果我正在尝试开始一个新的react项目,但我得到了这个错误和应用程序没有创建。我已经全局安装了react使用boto3,将整个文件夹或文件从一个s3存储桶复制到同一地域的另一个存储桶时,如何提供访问密钥和秘密访问密钥?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

terraform简单的开始-安装和一些配置

图片图片but 要配置系统变量....我个人是很嫌弃麻烦。这里参考了ucloud在知乎上面的Chocolate的安装方式:ChocolateTerraform初体验(一) windows安装。...之前,请前往 云 API 密钥页面 申请安全凭证 SecretId 和 SecretKey。...vscode 打开文件夹,以windows为例:图片从main.tf开始,创建一个main.tf文件图片参照官方文档:terraform { required_providers { tencentcloud...version = "1.81.25" } }}provider "tencentcloud" { # Configuration options}现在要在provider中引入腾讯云的配置...询问了一下cluda:图片图片总结一下:直接在provider模块中指定,这种应该是最直接的环境变量创建一个tfvar的文件写入使用命令行参数我个人这里下使用第三种了创建一个tfvar的文件...毕竟展示过程的时候可以不显示我的密钥哈哈哈哈

77420

Keycloak Spring Security适配器的常用配置

Keycloak适配器的常用属性 在Spring Security集成Keycloak 适配器时需要引入一些额外的配置属性。一般我们会把它配置到Spring Boot的配置文件中。...realm Keycloak领域名称,这是一个必须项。 resource 应用的client_id,Keycloak服务器上注册的每个客户端都有一个独一无二的标识。这是一个必须项。...enable-cors 开启跨域(cors)支持。可选项,默认false。如果设置为true就激活了cors-开头的配置项,这些配置项都不啰嗦了,都是常见的跨域配置项。...credentials 当客户端的访问类型(access type)为Confidential时,需要配置客户端令牌,目前支持secret和jwt类型。参考public-client中的描述。...总结 上面列举了大部分我们常用的属性,后面的属性和定制Keycloak服务器相关暂时不介绍了。Keycloak剩下的配置项可以到Keycloak Java适配器配置项[1]查看。

2.6K51
  • 基于Keycloak的Grafana SSO身份认证过程剖析

    ,其实都是Keycloak(或者其他IAM)里的一个Client,所以需要去Keycloak创建出这个client,并且拿到对应的信息; 2.2 Keycloak配置 访问 上述步骤安装后的Keycloak...创建新域Test (Master是顶级域,一般不建议使用) image.png 3.在Test域创建Client,命名为grafana image.png 补充其他必须信息,保存 image.png...Grafana SSO登录过程分析 按照上述的步骤,你的grafana配置好后,已经能够使用keycloak进行登录了(需要在Keycloak创建用户): 当然你需要在Keycloak的Test域下创建一个用户...,或者直接使用企业微信扫码登录(这里需要企业应用的一些信息) image.png 一般情况下,第三方软件以oauth2接入keycloak时,都需要提供三个url auth_url = http://localhost...token_url以及code,和keycloak通信交换出这个用户的access_token。

    7.4K111

    aspnetcore 应用 接入Keycloak快速上手指南

    这里先只介绍4个最常用的核心概念: Users: 用户,使用并需要登录系统的对象 Roles: 角色,用来对用户的权限进行管理 Clients: 客户端,需要接入Keycloak并被Keycloak...保护的应用和服务 Realms: 领域,领域管理着一批用户、证书、角色、组等,一个用户只能属于并且能登陆到一个域,域之间是互相独立隔离的, 一个域只能管理它下面所属的用户 Keycloak服务安装及配置...创建Realm 创建一个新的realm: demo,后续所有的客户端、用户、角色等都在此realm中创建 ? ? ?...创建客户端 创建前端应用客户端 创建一个新的客户端:KeycloakAuthaspnet,Access Type选择confidential ?...关于客户端的访问类型(Access Type) 上面创建的客户端的访问类型分别是confidential,那么为什么分别选择这种类型,实际不同的访问类型有什么区别呢?

    2.5K30

    (译)Kubernetes 单点登录详解

    为了进行一些基础配置,我们需要配置 Ingress,并启用 Postgres 存储数据。 这里假设你的集群中包含了 Ingress 和存储支持。...设置 Keycloak 首先我们要在 Keycloak 中创建一个新客户端,其 ID 为 kube-oidc-proxy,协议为 openid-connect,并且设置该客户端的参数: Access Type...保存新应用,就会出现一个新的 Credentials 标签,需要在这个标签里生成客户端 Secret,这个 Secret 将会在后续步骤中和 Client ID 一起使用。...配置 OAuth2 Proxy 首先我们要在 Keycloak 创建一个客户端应用,创建一个新的 OpenID 连接应用,并作出如下设置: Client ID:oauth2-proxy Access Type...创建 Keycloak 客户端应用 在 Keycloak 中创建一个新的客户端应用,ID 为 harbor,客户端协议为 openid-connect,并进行如下配置: Access Type:confidential

    6K50

    开源认证授权管理平台Keycloak初体验

    上一篇文章简单介绍了Keycloak,反响不错。看来大家都对这个东西感兴趣,今天就来进一步的体验Keycloak,让我们对它有一个直观的认识,然后逐步深入,把它的设计理念和概念各个击破。...Master域的管理职能示意图 登入Master的realm创建一个自定义域felord.cn。 ? 创建自定义域 User User是能够登录到应用系统的实体,其实可以理解为账户。...Keycloak的核心概念 接下来是我们在使用Keycloak时需要掌握的一些概念,上面已经提到了realm和user,这里就不再赘述了 authentication 识别和验证用户的过程。...通常指一些需要向Keycloack请求以认证一个用户的应用或者服务,甚至可以说寻求Keycloack保护并在Keycloack上注册的请求实体都是客户端。...❝还有一些概念等遇到了会再补充,有点多,先消化消化。 总结 今天这一篇主要对Keycloack进行一个初步的体验,搭建了一个开发环境供后续的学习,同时对Keycloack的一些核心概念进行了汇总。

    4.8K30

    通过管理API管理OAuth2 认证授权服务器Keycloak

    它是 JAX-RS(Java API for RESTful Web Services) 的一个实现,它的一些亮点: 不需要配置文件,基于注解和Java POJO就可以实现RESTful客户端。...这些只作为扩展知识,除非你深入定制,否则不需要学习它,因为 Keycloak Admin Client已经屏蔽了其陡峭的学习成本,接下来让我们开始使用它。...根据我们的配置声明一个Keyclock实例: Keycloak adminCli = KeycloakBuilder.builder() // 服务器地址...Setting选项下打开Direct Access Grants Enabled,这意味着admin-cli客户端能够访问用户的用户名和密码,并以此从Keycloak服务器获取访问令牌,继而能够进行进一步的访问授权操作...总结 创建用户和前面两种方法相同,你可以创建一个用户试试,还有其它的API都可以用这种方式实现。

    2.9K60

    Spring Boot+Keycloak从零到壹

    Keycloak提供了单点登录(SSO)、Identity Brokering和社交账号登录、User Federation、客户端适配器、管理控制台和帐户管理控制台等特性。.../standalone.sh后,Keycloak将开始提供服务。...创建一个客户端 现在我们将导航到Clients页面。正如我们在下图中所看到的,Keycloak已经整合了已经内置的客户端: 我们需要在应用程序中添加一个客户端,所以我们点击“Create”。...我们配置新的Client ID为“login-app“: 在下一个页面中,对于本教程而言,除了“Valid Redirect URIs 字段”之外,我们将保留所有缺省值。...配置完成后,将被重定向到端口8081: 3.4. 创建一个角色和用户 Keycloak使用Role-Based Access。因此,每个用户都必须有一个角色。

    4.3K20

    开源认证和访问控制的利器keycloak使用简介

    简介 keycloak是一个开源的进行身份认证和访问控制的软件。是由Red Hat基金会开发的,我们可以使用keycloak方便的向应用程序和安全服务添加身份认证,非常的方便。...keycloak还支持一些高级的特性,比如身份代理,社交登录等等。 本文将会带领大家进入keycloak的神秘世界。...创建realm和普通用户 realm翻译成中文就是域,我们可以将它看做是一个隔离的空间,在realm中我们可以创建users和applications。...我们使用之前创建的用户名和密码登录看看。 ? 登录成功。 总结 上面的例子我们演示了如何配置keycloak,并且创建一个realm供第三方程序使用。还举了一个无侵入的例子来和keycloak对接。...当然,有朋友会问了,vanilla程序是怎么和keycloak对接的呢?如果我们要写一个自己的程序,应该怎么做呢? 别急,细节我会在后面的文章进行分享,敬请期待。

    6.6K22

    这个安全平台结合Spring Security逆天了,我准备研究一下

    最近想要打通几个应用程序的用户关系,搞一个集中式的用户管理系统来统一管理应用的用户体系。经过一番调研选中了红帽开源的Keycloak,这是一款非常强大的统一认证授权管理平台。...并且Keycloak为登录、注册、用户管理提供了可视化管理界面,你可以借助于该界面来配置符合你需要的安全策略和进行用户管理。...用于集中管理用户、角色、角色映射、客户端和配置的管理控制台。 用户账户集中管理的管理控制台。 自定义主题。 两段身份认证。...如果你对Keycloak进行了详细的研究和实践,基本上能够搞定一些大中型的应用安全体系构建,既有诱惑也有挑战。...另外这个程序适合做统一认证授权门户构建,不太适合一些小应用,相对比较重,不过微服务用这个应该非常棒。在目前新的Spring认证服务器还没有达到生产可用时是一个不错的选择。

    1.7K10

    Spring Security 中使用Keycloak作为认证授权服务器

    Keycloak支持的每个Java适配器都可以通过一个简单的JSON文件进行配置,我们缺失的就是这个文件。....*)$" : "/api/$1"    } } 上面包含的客户端配置属性都可以在Keycloak控制台进行配置,见下图: 配置Keycloak客户端属性 也就是说我们需要的json文件和图中的配置项是对应的...比较人性化的是我们不需要自行编写这个json文件,Keycloak提供了下载客户端配置的方法,这里我只使用了必要的配置项: 你可以下载客户端json配置 引入客户端配置 虽然顺利拿到json文件,但是加载这个...在原生情况下,客户端的配置、用户的信息、角色信息都由Keycloak负责;客户端只负责角色和资源的映射关系。后续会深入并定制Keycloak和Spring Security以满足实际场景需要。...往期推荐 腾讯员工吐槽:团队来了个阿里高p,瞬间会议变多,群多了 程序员加入新团队必问的20道问题 只是想虐下春丽,一不小心撸了台游戏机...

    2.4K20

    OAuth2 服务器Keycloak中的Realm

    前几篇我和大家一起对Keycloak进行了粗略的了解。...所以今天我要弄明白的是Keycloak中的Realm。 Realm Realm翻译成中文为领域。用来逻辑隔离一些特定空间,有点多租户的感觉,不同的Realm之间互相隔离,有各自的特色配置,互不影响。...我们可以这么定义一个名称为felord.cn的Realm,来管理该应用的角色、资源、和客户端,客户端开发可以专注于业务。...创建成功会有一些选项可供配置,但是一般情况下使用默认配置即可。 设置Realm管理账户 为前面我初始化的Realmfelord.cn创建独立的管理员账户有两种方式。...扩展 Keycloak Admin Client是通过API操作管理Realm的一个客户端工具,我在上一篇已经介绍过了。结合本篇的一些概念可能你会更加深刻的理解如果操作管理Realm。

    1.8K60

    吊炸天的可视化安全框架,轻松搭建自己的认证授权平台!

    在我们开始使用Keycloak保护应用安全之前,我们得先创建一个领域(realm),领域相当于租户的概念,不同租户之间数据相互隔离,这里我们创建一个macrozheng的领域; ?...创建完用户之后,就可以登录了,用户和管理员的登录地址并不相同,我们可以在客户端页面中查看到地址; ?...(A)客户端从用户获取用户名和密码; (B)客户端通过用户的用户名和密码访问认证服务器; (C)认证服务器返回访问令牌(有需要带上刷新令牌)。...由于我们的SpringBoot应用将运行在localhost:8088上面,我们需要对Keycloak的客户端的有效的重定向URI进行配置; ?...登录成功后,即可访问被保护的Swagger页面和API接口,一个很标准的Oauth2的授权码模式,流程参考授权码模式的说明即可。 ?

    2.6K21

    深度解读-如何用keycloak管理external auth

    setup Sign in with Google using Keycloak[3] 如下图,一般授权流程(standard flow)中客户端和auth server主要是两个阶段 生成auth...IDP keycloak 配置 上边流程怎么让 keycloak 这个身份和访问管理系统接管呢,答案是使用keycloak IDP (Identity provider) 我们先看下需要如何配置相应配置...创建一个realm(领域),并启用, 类似命名空间,代表一个安全的独立区域 resource "keycloak_realm" "realm_axum_koans" { realm = "axum-koans...的代理设置就完成了,不信我们继续往下看怎么代码接入 keycloak auth 接入 上边keycloak配置了realm,后边授权和token获取都会和这个realm下的issueUrl打交道,这里...好了,keycloak如何管理external auth到这里就结束了。以上是我在使用keycloak的一些摸索和思考,欢迎大家一起探讨。

    70130

    Keycloak vs MaxKey,开源单点登录框架如何选择?

    主要功能: 所有应用系统共享一个身份认证系统 所有应用系统能够识别和提取ticket信息 协议 用户中心系统作为服务端,肯定是要跟客户端进行对接来授权&获取用户信息的。...,一切配置均采用 Java 的 yml 格式文件。...就在写这段的时候,Keycloak 官网发布了一条消息,迎来的新的 maintainer: Tomas Darimont,主要负责 keycloak.X 的开发。...相对于 CAS,Keycloak 没有那么多的协议的支持,认证协议支持 OIDC 和 SAML,将 LDAP 和 Kerberos 作为用户存储协议集成。.../其他 2.8 扫码登录 企业微信/钉钉/飞书扫码登录 登录界面 主界面 总结: 以上谈到的都是开源社区的项目,CAS则重点在用户登录和相关协议的实现,Keycloak和MaxKey除了用户登录和相关协议的实现

    5.4K51

    基于 LDAP 的统一认证服务 Keycloak

    要知道,随着智能手机的发展,移动客户端已经成为了一个非常大的市场,甚至每日访问量要远高于桌面浏览器端。   ...另外在填写完配置后可以用右侧的测试连接和测试验证按钮来测试该配置是否可行。如下图所示,顶部出成功验证提示。点击保存完成 LDAP 配置。   ...当保存 LDAP 配置之后刷新页面,在下面会出现四个新的按钮。点击同步所有用户即可将用户同步到 Keycloak。   ...为了保证用户修改的密码具有一定的安全性,我们需要设置一些新密码的复杂规则。切换左边导航栏到验证选项卡,再选择密码策略选项卡,使用右上角的添加策略添加不同的策略要求,完成后点击保存按钮。   ...有了统一认证服务就可以很好的将 LDAP 安安全全地保护在内网中,而统一认证服务则作为一个网页应用与其他网页应用或客户端应用进行交互。这样的方式或许显得更加优雅、放心。

    10.7K71

    Keycloak简单几步实现对Spring Boot应用的权限控制

    首先我们需要在这些开放平台上注册一个客户端以获取一套类似用户名和密码的凭证。有的叫appid和secret;有的叫clientid和secret,都是一个意思。...其实keycloak也差不多,也需要在对应的realm中注册一个客户端。...下图不仅仅清晰地说明了keycloak中Masterrealm和自定义realm的关系,还说明了在一个realm中用户和客户端的关系。 ?...: true # 这里就是配置客户端的安全约束,就是那些角色映射那些资源 security-constraints: # 角色和资源的映射关系。...总结 ❝请注意:这是系列文章,请点击文章开头的#keycloak查看已有章节。 我们仅仅进行了一些配置就实现了OIDC认证授权,保护了Spring Boot中的接口,这真是太简单了。

    2.2K50

    keycloak集群化的思考

    作为硬核工业代表的wildfly也不例外,最近研究了一下keycloak的集群,发现它的底层服务器用的也是wildfly,本文将会和大家探讨一下keycloak的集群的架构思路。...看完keycloak的基本集群搭建之后,我们来讲一下keycloak集群中一些比较关键的概念和使用。...这种模式一般都要配置一个强力的客户端API,通过这个客户端API来进行路由功能,比如说Memcached。 Memcached的神奇来自两阶段哈希(two-stagehash)。...第二种,就是代理服务负载均衡,这种模式下,会有一个代理服务器和后端的多个服务进行连接,客户端是和这个代理服务器进行交互,由代理服务器来代替客户端选择到底要路由到哪个服务。...所以需要我们配置反向代理服务器,保证X-Forwarded-For和X-Forwarded-Proto这两个HTTP header的值是有效的。

    1.3K30

    Kubernetes 中用 Sidecar 为应用添加 Oauth 功能

    在 Kubernetes 上部署 Keycloak 服务,对其进行初始化,建立用户和认证系统,然后将 Keycloak-Proxy 和 Httpbin 集成在同一个 Pod 中进行部署运行,测试集成效果...创建登录域 鼠标在左上角的Master字样上悬停,在弹出的菜单中选择Add Realm。...这样我们就完成了登录域的创建,并为后面将要启动的 httpbin 应用创建了相关的角色和用户。...部署应用 根据前面的流程图,我们需要把 keycloak-proxy 组件用 sidecar 的方式和 httpbin 集成在一起,用反向代理的形式拦截请求,完成登录任务。...创建 proxy 配置 Proxy 配置文件内容可以参考官方文档(链接 2) keycloak-proxy 需要一个配置文件/opt/jboss/conf,这里我们使用 configmap 的形式将其加载进来

    1.9K30

    在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证

    keycloak 1 是一个开源的、面向现代应用和服务的 IAM(身份认证和访问控制)解决方案。...6 配置 Keycloak 6.1 创建 Realm 首先,创建一个名称为 project-1 的 Realm(领域)。 6.2 创建 User 接下来手动创建一个用户。...6.3 创建 Client Client (客户端)是请求 Keycloak 对用户进行身份验证的客户端,在本示例场景中,API Server 相当于一个客户端,负责向 Keycloak 发起身份认证请求...服务器将会返回一个新的 access_token,id_token 和 refresh_token。...kubectl get namespace --user tom --token= 9.3 方式三:使用 Kubelogin 前面介绍的方式一和方式二有一个缺点,那就是在令牌过期后需要手动获取新的令牌

    6.8K20
    领券