• 2024-10-29.NET云原生应用实践(四):基于Keycloak的认证与授权AL
    合集-.NET云原生应用实践(4)1..NET云原生应用实践(二):Sticker微服务RESTfulAPI的实现10-132..NET云原生应用实践(一):从搭建项目框架结构开始10-093..NET云原生应用实践(三):连接到PostgreSQL数据库10-224..NET云原生应用实践(四):基于Keycloak的认证与授权10-28收起本章目标完成Keyclo
  • 2024-10-28.NET云原生应用实践(四):基于Keycloak的认证与授权
    本章目标完成Keycloak的本地部署与配置在StickersRESTfulAPI层面完成与Keycloak的集成在StickersRESTfulAPI上实现认证与授权Keycloak的本地部署Keycloak的本地部署最简单的方式就是使用Docker。可以根据官方文档构建Dockerfile,然后使用DockerCompose直接运行。由于Ke
  • 2024-10-23keycloak~token配置相关说明
    会话有效期在Keycloak中,"SSOSessionIdle"和"SSOSessionMax"是用于配置单点登录(SSO)会话的两个参数。这两个参数影响用户在系统中的会话过期和最大有效时间。SSOSessionIdle(单点登录会话空闲时间):定义:表示用户在系统中没有活动的时间阈值。如果用户在这段时间内没
  • 2024-10-21keycloak~Consent Required的使用
    ConsentRequired在keycloak中是“授权所需”,或者是“同意必需“的意思,它类似于oauth2授权时的“确认”,当你在第三方认证后,通过oauth2协议,你可以把用户相关信息返回给应用程序,而这时,用户自己需要确认一下,自己的这些信息是否可以给应用程序。为客户端配置ConsentRequired选项可
  • 2024-09-29O365和Keycloak结合SSO实现
    背景内部用keycloak实现SSO,近期引入了Office365,需要接入keycloak(saml协议),实现SSO。遇到的问题Office365按照官方文档配置后,负责keycloak的同学帮着调试好后,sso总是提示失败。总是提示找不到用户。按照官方文档https://learn.microsoft.com/en-us/entra/identity/hybrid/con
  • 2024-09-25keycloak~关于授权码认证中的scope的实践
    前言1.scope参数的作用定义权限:scope用于声明请求访问的资源和权限。常见的值包括openid、profile、email等。影响返回的数据:如果你在授权请求中指定了某些scope,在后续的token请求中,Keycloak会根据这些scope返回相应的信息。openid用于指示请求者希望使用Open
  • 2024-09-08Keycloak 报 failed to initialize keycloak
    在访问Keycloak的Account页面时,提示下列信息:在浏览器开发者工具的Network中看到下列403请求错误:报错解法经过查找(关键词failedtoinitializekeycloak403),在此帖子中找到了答案,需要在Client>AccountConsole中修改下列配置:在WebOrigins中设置“*”,默认此处为空。
  • 2024-09-03keycloak~Refresh_token阶段不走RequiredAction
    Refresh_token是在access_token过期之后,用来换新的access_token的,有了Refresh_token之后,用户可以在很长一段时间不需要重新登录,这对于用户体验是有好处的;RequiredAction是一种登录阶段的必选行为,当一个用户被某个RequiredAction标记之后,用户必须完成RequiredAction,才算完成本次登
  • 2024-09-03keycloak~scope客户端模板的使用
    scope为何物?scope在oauth2中表示授权的范围,另外也可以理解为,根据认证时scope的参数,在构建jwt时,返回更多的信息;比如在keycloak中,你的可选scope(optionalscope)中添加了address这个模板,当你通过/auth/realms/{realmId}/protocol/openid-connect/token进行认证时,你的参数scope中出
  • 2024-08-19OpenID Connect(OIDC)认证--keycloak与springboot项目的整合
    OpenIDConnect认证–keycloak与springboot项目的整合文章目录OpenIDConnect认证--keycloak与springboot项目的整合前言什么是Keycloak?项目配置1.创建SpringBoot项目2.设置Keycloak服务器3.在Keycloak中创建Realm和Client4.配置SpringB
  • 2024-08-08keycloak~关于社区登录的过程说明
    keycloak将第三方登录(社区登录)进行了封装,大体主要会经历以下三个过程:打开社区认证页面,输入账号密码或者扫码,完成社区上的认证由社区进行302重定向,回到keycloak页面keycloak与社区完成一次oauth2授权码认证,通过社区返回的code来获取token,再通过token来获取社区上的用户信息,在这
  • 2024-07-29keycloak~为微信二维码添加动态kc认可的动态state
    本实例将通过keycloak社区登录实现微信二维码的登录,并且二微码不是keycloak动态生成,而是通过微信提供的js生成的,在页面上直接输出的方式实现的。动态state在Keycloak中使用微信二维码登录时,state参数确实是由后端生成的,并且用于确保登录过程的安全性,防止CSRF攻击等。如果你尝试
  • 2024-07-12keycloak~使用自定义的注册页
    添加FormAction的实现packageorg.keycloak.phone.authentication.forms;importorg.keycloak.Config;importorg.keycloak.authentication.FormAction;importorg.keycloak.authentication.FormActionFactory;importorg.keycloak.authentication.FormContext;importorg.
  • 2024-05-24keycloak~登出的回调接口
    对于用户的登出/注销操作,都可以设置一个回调接口,这个接口是作用到client上面的,并且必须是POST接口,相关回调方法的调用,可以参考keycloak14.0.0的这个方法:org.keycloak.services.managers.sendBackChannelLogoutRequestToClientUri核心代码段LogoutTokenlogoutToken=sessio
  • 2024-05-23keycloak~正确让api接口支持跨域
    相关参考https://leejjon.medium.com/how-to-allow-cross-origin-requests-in-a-jax-rs-microservice-d2a6aa2df484https://stackoverflow.com/questions/28065963/how-to-handle-cors-using-jax-rs-with-jerseyhttps://keycloak.discourse.group/t/cors-problem-in-custom-re
  • 2024-05-22keycloak~自定义认证流设置固定redirect_uri
    redirect_uri在keycloak进行认证成功之后,会重定向到这个目标页面,一般为用户的来源页,即你在登录之前访问的页面;自定义认证流是指对keycloak中的brower和directgrant两个认证方式的过程添加自定义策略,如在用户登录成功时,检查它的密码强度,如果不符合要求,就跳到一个说明页面,告诉用户,
  • 2024-05-20keycloak~作为第三方登录的对接标准
    当某些合作商希望把你的keycloak作为他们的一种第三方登录方式时,就像微信,google,github,使用你的keycloak上的账户资源时,你就需要考虑如何做一个开放的,标准的文档了。一基本角色认证提供者:keycloak服务,https://kc.xxx.com第三方应用:先到keycloak上注册,由keycloak颁发client_id
  • 2024-05-16apisix~authz-keycloak插件介绍
    参考:https://apisix.apache.org/docs/apisix/plugins/authz-keycloak/kc插件源码梳理及原理说明如果只是进行keycloak颁发的token进行校验(签名校验和有效期校验),那么我们可以使用jwt-auth这个插件实现,并且已经对这个插件进行二次开发,支持jwt内容解析与向下请求头的传递。作用
  • 2024-05-10keycloak~登录皮肤动态切换的尝试
    keycloak的登录皮肤theme,可以设置领域全局的,或者每个客户端进行单独设置,这种设计是没有问题的,但有时,一个客户端可能有多种主题,这时,你只能再加个客户端,对应新的主题,但这样不方便日后的统计,因为很多统计维度都是以client为基础的,所以,我们需要在进入登录页时,让开发人员转具体的皮肤参
  • 2024-04-23keycloak~使用jwks验证token的合法性
    keycloak提供了jwks服务,其地址可以在/auth/realms/fabao/.well-known/openid-configuration的返回结果中找到,jwks_uri它表示了公钥的颁发者,可以使用颁发出来的公钥来验证token的签名,基地址也是固定的/auth/realms/fabao/protocol/openid-connect/certs。springboot构建keycloak的
  • 2024-04-18keycloak~jwt的rs256签名的验证方式
    接口地址keycloak开放接口地址:/auth/realms/fabao/.well-known/openid-configurationrsa算法相关术语RSA算法是一种非对称加密算法,其安全性基于大整数分解的困难性。在RSA算法中,有以下几个关键参数:n(模数):n是一个大整数,通常为两个大素数p和q的乘积,即n=p*q。n用
  • 2024-04-13Keycloak中授权的实现
    在Keycloak中实现授权,首先需要了解与授权相关的一些概念。授权,简单地说就是某个(些)用户或者某个(些)用户组(Policy),是否具有对某个资源(Resource)具有某种操作(Scope)的权限(Permission)。所以,授权是一种权限管理,它建立在认证的基础上:用户首先要完成认证(Authentication),才能谈授权(Authorizatio
  • 2024-04-11keycloak~RequiredActionProvider的使用
    使用场景RequiredActionProvider,它是在认证过程中,需要当前登录的用户执行个性化的动作;当用户符合条件,就被执行RequiredActionProvider对作,当RequiredActionProvider没有正常提交(context.success())之前,当前用户仍然是未登录状态,这在keycloak框架中,也有一些默认的个性化动作,它与
  • 2024-04-10keycloak~对框架中提供的Provider总结
    提供者目录ProviderAuthenticatorBaseDirectGrantAuthenticatorAbstractFormAuthenticatorAbstractUsernameFormAuthenticatorRequiredActionProviderFormActionProtocolMapperAbstractOIDCProtocolMapperRealmResourceProvider具体provider的作用Provid
  • 2024-04-08keycloak~网站对接到Keycloak的步骤
    新网站对接到KC的部署kc的环境向kc申请自己的客户端kc的登录接口通过code换token接口刷新token接口kc的用户信息接口kc的jwttoken说明1.kc的环境测试环境:https://test-kc.xxx.com预发布环境:https://pre-kc.xxx.com生产环境:https://kc.xxx.com2.向kc申请自己的客