keycloak中文使用文档_doc/keycloak-learn/Spring Cloud Keycloak搭建手把手操作指南.md · 周立/spring-cloud-yes - 码云 Gitee...

Keycloak

安装&初始化

下载

笔者下载的是“Standalone server distribution” 。

安装&启动

安装Keycloak非常简单,步骤如下: 解压下载下来的安装包

将目录切换到 KEYCLOAK_PATH/bin,其中KEYCLOAK_PATH是您Keycloak的根目录

执行 ./standalone.sh,即可启动Keycloak,如需后台运行,则执行 ./standalone.sh &。

初始化

该界面让我们创建一个初始化的admin账户。那么我们不妨填写一下,为了测试方便,我们将账号/密码分别设为 admin/admin,然后点击create按钮,将会跳转到如下界面:

由图可知,管理员账户已创建成功,Keycloak初始化也已完成。

管理控制台

点击上图的 Administration Console按钮,将会弹出登录页面:

输入我们之前初始化设置的账号、密码,并点击 Login in按钮,即可登录管理控制台,如下图所示:

由图可知,管理控制台的菜单挺多的,功能也比较丰富,不禁让人有点恐惧——这么多菜单,这么多子功能项,得花多少时间研究啊!没有关系,可以随着笔者的节奏,逐步深入。

与Spring Boot整合

纳尼?上一篇才讲了个初始化,这一篇就与Spring Boot整合啦?这是什么节奏?按照套路,不应该先介绍下这个术语,那个概念吗?

没有关系,Keycloak非常简单,我们可以在实战中了解各种概念。

整合Keycloak非常简单,因为Keycloak为我们提供了各种语言、各种框架的 Adapter,基于OpenID/SAML协议的Adapter,大概二十多个,有兴趣的可前往: http://www.keycloak.org/docs/latest/securing_apps/index.html#openid-connect-3阅读。后面等笔者有空了,也会将这些文章翻译出来,敬请期待。

微服务

假设有一个Spring Boot微服务: 名为: ms-content-sample

它有个路径 http://localhost:8081/articles,只有 user-role角色的用户才能访问, test-role角色的用户不允许访问。

下面我们来为该服务整合Keycloak,并逐步实现基于Keycloak的单点认证及授权。

准备工作

创建Realm 首先,我们需要创建一个Realm。Realm是一个隔离的概念,Realm A中的用户与Realm B中的用户完全隔离。当然,也可以不创建Realm,直接用 Master这个Realm,不过一般来说,为了资源的隔离,以及更好的安全性不太建议与管理员共用Realm。如下图所示:

输入Realm名称,这里,如图所示,我们创建了一个名为 realm的Realm。

创建Client 创建完realm后,我们来为 ms-content-sample创建 Client,点击下图的Create按钮。

填写Client信息,这边我们创建一个名为 ms-content-sample的Client。

设置Client 下面我们来配置Client,点击途中的Edit按钮:

设置Client

如图,我们配置了Access Type为public,当然还有其他选项,例如bearer-only,我们先选public,bearer-only我们后面会细讲;配置了Valid Redirect URLS,这是认证成功后跳转到的页面地址,其中我们使用了通配符;配置了Base URL,一般配置成微服务首页即可。

创建角色

比较简单,如图,我们创建了两个角色, user-role以及 test-role。

创建用户并分配角色 创建用户

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在Spring Boot应用中集成Keycloak作认证和鉴权,你可以按照以下步骤进行操作: 1. 在src目录下新建一个plugin目录,并在该目录下创建一个KeycloakIdentityProvider.java文件。代码如下: ``` package com.roy.camunda.plugin; import org.camunda.bpm.extension.keycloak.plugin.KeycloakIdentityProviderPlugin; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix="plugin.identity.keycloak") public class KeycloakIdentityProvider extends KeycloakIdentityProviderPlugin { } ``` 这个文件是用来自定义Keycloak的身份验证提供者。 2. 引入Spring Security、Keycloak和Thymeleaf的相关依赖。 3. 安装Keycloak并在其上进行配置。你可以参考Keycloak的官方文档来了解如何安装和配置Keycloak。 4. 配置Spring Boot应用的Keycloak属性。可以在application.properties或application.yml文件中添加以下内容: ``` # Keycloak 配置 keycloak.realm=your_realm keycloak.auth-server-url=http://localhost:8080/auth keycloak.ssl-required=external keycloak.resource=your_client_id keycloak.credentials.secret=your_client_secret keycloak.use-resource-role-mappings=true keycloak.bearer-only=true ``` 你需要根据你自己的Keycloak实例来修改这些属性的值。 5. 在Web层配置Keycloak的安全性。可以创建一个SecurityConfig.java文件,并添加以下内容: ``` @Configuration @EnableWebSecurity public class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) { KeycloakAuthenticationProvider keycloakAuthenticationProvider = keycloakAuthenticationProvider(); keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(new SimpleAuthorityMapper()); auth.authenticationProvider(keycloakAuthenticationProvider); } @Bean @Override protected SessionAuthenticationStrategy sessionAuthenticationStrategy() { return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl()); } @Override protected void configure(HttpSecurity http) throws Exception { super.configure(http); http.authorizeRequests() .antMatchers("/api/**").authenticated() .anyRequest().permitAll(); } } ``` 这个配置类用于指定Keycloak的身份验证提供者,并配置应用的访问权限。 6. 创建一个Keycloak工具类,用于在后端调用Keycloak的API进行用户认证和授权操作。 7. 进行测试,访问相关页面,确保集成后的Keycloak认证和鉴权功能正常运行。 这些步骤可以帮助你在Spring Boot应用中实现Keycloak的集成。你可以参考Keycloak的官方文档和相关示例代码来获取更详细的信息和示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Camunda工作流平台与Keycloak的集成](https://blog.csdn.net/gzroy/article/details/127088810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [在Spring Boot应用中集成Keycloak作认证和鉴权](https://blog.csdn.net/nklinsirui/article/details/118821925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值