rbac

授权权限服务设计解析

会有一股神秘感。 提交于 2020-10-17 07:22:32
设计思想 接上篇设计一个授权服务 来聊聊 他是怎么被设计出来的 https://www.cnblogs.com/alangur/p/13187053.html#4628838 设计说明   权限服务作为微服务中其实也可以认为只一个授权中心。在这个授权中心下,他主要提供其他服务的需要的用户的业务逻辑的验证。比如你审核的时候需要验证当前的这个用户是否拥有操作这个动作的权限。再比如账务的操作也需要判断当前的用户是否拥有这些 权限去完成这些动作。更多的是业务内部的数据操作,故而逐渐形成一个授权中心,负责给各个 系统,各个业务分发权限。   在网关中,他也是存在一个对外的授权验证。这个验证时验证当前的用户是否有权限对接这个对外的接口,但是验证的数据支持仍然时从权限这个服务中提供的。   故而我们的授权中心权限其实就分成了三种:   第一:就是我们的业务权限。经过权限服务的验证   第二:就是我们的对外的接口请求的权限。   第三:内部接口的权限验证   对于第三种权限是否需要,我觉得是可有可无的。因公司业务而定。为什么这样讲,我觉得一些公司的服务都是在内网内,相对来说是没有外在风险 存在的,并且因为少一些业务逻辑的占用,效率上可能 还高效一点。但是还有一些企业可能 他们内部制度的原因,部门太多的原因。导致他们也需要权限去做这些事情。当然这对于这个授权中心来说,都是可行的。  

10k+点赞的Spring Boot权限管理系统竟然出了详细教程!爱了!

北战南征 提交于 2020-10-12 13:54:29
eladmin 是一款基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue 的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由。 这个开源项目基本稳定,并且后续作者还会继续优化。完全开源!这个真的要为原作者点个赞,如果大家觉得这个项目有用的话,建议可以稍微捐赠一下原作者支持一下。后端整理代码质量、表设计等各个方面来说都是很不错的。前后端分离,前端使用的是国内常用的 vue 框架,也比较容易上手。 后台首页 角色管理页面 另外,作者最近还提供了一份详细的文档帮助小伙伴们学习这个项目。 文档从环境搭建到后端每一块的详细设计都有涵盖,非常适合拿来学习! 如何获取项目地址和文档地址? 扫描关注我朋友的公众号后回复“ 004 ”即可! 来源: oschina 链接: https://my.oschina.net/u/4364002/blog/4669964

阿里朋友推荐的两个Github标星25k的后端快速开发脚手架!

本秂侑毒 提交于 2020-10-08 15:52:17
01 eladmin eladmin 是一款基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue 的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由。 如何获取项目地址和配套VIP文档地址? 扫码关注下面的公众号后回复“004”即可! 这个开源项目基本稳定,并且后续作者还会继续优化。完全开源!这个真的要为原作者点个赞,如果大家觉得这个项目有用的话,建议可以稍微捐赠一下原作者支持一下。后端整理代码质量、表设计等各个方面来说都是很不错的。前后端分离,前端使用的是国内常用的 vue 框架,也比较容易上手。 后台首页 02 pig 这个项目因为其方便易用、功能齐全,社区活跃,受到了很多Java开发者的喜爱,很多企业都采用 pig 搭建了自己的网站。 pig 提供了开源版和付费的商业版,商业版功能更加齐全一点。 另外,还提供了详细的技术文档。 如何获取项目地址和配套VIP文档地址? 扫码关注下面的公众号后回复“005”即可! 根据项目官网,简单介绍一下这个项目: 基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 element-ui,即使没有 vue

K8s数据持久化之Storage Class自动创建PV

♀尐吖头ヾ 提交于 2020-10-08 02:26:52
在前两篇实现k8s的数据持久化的流程为:搭建nfs底层存储===》创建PV====》创建PVC===》创建pod。最终pod中的container实现数据的持久化。 上述流程中,看似没什么问题,但细想一下,PVC在向PV申请存储空间的时候,是根据指定的pv名称、访问模式、容量大小来决定具体向哪个PV来申请空间的,如果PV的容量为20G,定义的访问模式是WRO(只允许以读写的方式挂载到单个节点),而PVC申请的存储空间为10G,那么一旦这个PVC是向上面的PV申请的空间,也就是说,那个PV有10个G的空间被浪费了,因为其只允许被单个节点挂载。就算不考虑这个问题,我们每次手动去创建PV也就比较麻烦的事情,这时,我们就需要一个自动化的工具来替我们创建PV。 这个东西就是阿里提供的一个开源镜像“nfs-client-provisioner”,这个东西是通过k8s内置的NFS驱动挂载远端的NFS服务器到本地目录,然后自身作为storage(存储)。 当然,PVC是无法直接去向nfs-client-provisioner申请使用的存储空间的,这时,就需要通过SC(storageClass)这个资源对象去申请了,SC的根本作用就是根据PVC定义的值去自动创建PV。 下面是一个Nginx基于自动创建PV实现数据持久化的示例: 1、搭建nfs服务 为了方便,我这里直接在master上做nfs。

CRD实现自动化容器安全方法

喜你入骨 提交于 2020-10-04 02:00:57
长久以来,安全一直是困扰着许多DevOps团队(包括我自己供职的加拿大保险和金融服务合作社)的症结所在。尽管在各种工具的帮助下,我们的CI/CD管道的绝大部分都已经实现了自动化,而且基于容器的自动化应用部署也是我们的常态,但是在安全方面的自动化程度仍然比较落后。与大多数DevOps团队一样,我们实施了自动化的漏洞扫描,但是在手动构建安全策略,以保护生产环境中的应用程序、及其工作负载方面仍存在着一定的问题。 可喜的是,如今Kubernetes的自定义资源类型(custom resource definitions,CRDs),却能够使我们的团队通过自己的管道,尽早地将应用程序的安全策略声明融入代码,并将此类安全策略自动化地部署到生产环境中。 目前,我们通过CRD引入了各种全局安全策略。这些策略预定义了应用程序的允许行为,并在多个Kubernetes集群之间实施了不同的防护措施。通过使用CRD来自动化且集中化地管理安全策略即代码(security policy as code),我们既可以加强与简化策略的执行,又能够以高效、容错且安全的方式部署和更新各种应用程序。 下面,我们将分享本企业是如何实现应用安全策略的自动化: CRD的优势 为了利用容器工具所提供的各项优势,我们的团队使用了NeuVector CRD,并在NeuVector容器安全平台内定义了各种安全策略。 首先通过CRD

Jenkins集成k8s报错:Error testing connection https://kubernetes.default.svc.cluster.local: Failure

為{幸葍}努か 提交于 2020-10-03 21:44:49
背景:jenkins部署在k8s中的命名空间infra中 Jenkins集成k8s报错 连接测试报错: Error testing connection https://kubernetes.default.svc.cluster.local: Failure executing: GET at: https://kubernetes.default.svc.cluster.local/api/v1/namespaces/defualt/pods. Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. pods is forbidden: User "system:serviceaccount:infra:default" cannot list resource "pods" in API group "" in the namespace "defualt". 意思:serviceaccount中 infra:default 没有权限“GET”这个命名空间的 "pods"。权限是“get”对象是“pods”。 出处: https://www.cnblogs.com/liucx/ 解决办法是:需要给infra

OAuth2 Token 一定要放在请求头中吗?

╄→尐↘猪︶ㄣ 提交于 2020-10-02 12:21:13
Token 一定要放在请求头中吗? 答案肯定是否定的,本文将从源码的角度来分享一下 spring security oauth2 的解析过程,及其扩展点的应用场景。 Token 解析过程说明 当我们使用 spring security oauth2 时, 一般情况下需要把认证中心申请的 token 放在请求头中请求目标接口,如下图 ① spring security oauth2 通过拦截器获取此 token 完成令牌到当前用户信息(UserDetails)的转换。 OAuth2AuthenticationProcessingFilter.doFilter public class OAuth2AuthenticationProcessingFilter{ public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { try { // 1. 根据用户请求解析令牌,组装预登陆对象 Authentication authentication = tokenExtractor.extract(request); if (authentication == null) { // 若是预登陆状态为空,把无状态登录清空