多云系统的授权

这是我目前正在致力于消耗SPIFFE(
安全生产身份框架 (Every Production Identity Framework For Everyone )在WSO2的Prabath Siriwardena先生的启发下,在Moratuwa大学的Gihan Dias教授的指导下,通过信任和身份验证在动态扩展的异构系统中提供授权。 像在混合云中一样,跨多个云运行的企业系统就是一个明显的例子,将从中受益。 目的是为基于SPIFFE标准的系统打开大门,使其以最小的努力与其余系统共存,而不会损害安全性,同时拥有基于SPIFFE的授权解决方案。

简而言之,它是一个信任引导和识别框架,已作为标准提交并被CNCF(Cloud Native Computing Foundation)[1]接受。 到目前为止,该标准有两个主要实现,分别是SPIRE和Istio [2],该平台支持使用SPIFFE进行识别方面的服务网格体系结构。 此实现解决了跨异构系统的信任引导和标识所涉及的许多复杂问题。 更多细节可以在
spiffe.io网站。

OAuth 2.0当前是API安全领域中使用最广泛的标准,在工作负载领域中也用于访问委派和授权。 尽管SPIFFE是目前新兴的标准,但是OAuth 2.0已经存在了一段时间,可以说大多数企业系统都采用了它。 因此,如果我们可以将这两个标准融合在一起,则可以兼具两全其美的优势,并具有OAuth 2.0提供的互操作性以及SPIFFE的动态信任引导和识别功能。

请注意,下图中的SPIRE服务器可以是任何支持SPIFFE标准的实现。

多云系统


–我们假设一个企业系统由两个云中的工作负载组成,此处我们假设是AWS和GCP。 如果我们将其想象为GCP中当前正在运行的系统,且其工作负载基于OAuth 2.0范围而受到保护,则要消耗这些工作负载的其他工作负载应带有有效的访问令牌和相关范围。

–可以想象在AWS云中运行的系统部分是新设计的,可以作为多云系统的一部分运行。 它利用SPIFFE标准来唯一地识别跨多个云的工作负载。 –作为此基于SPIFFE的信任引导和标识的一部分,每个工作负载都会接收由SPIRE服务器签名的X.509证书,并带有其标识符,称为SPIFFE ID。 例如。 spiffe:// localdomain / us-west / data(包含在SAN中)[3] –这是OAuth 2.0的图片。 我们依赖于授权服务器在客户端凭据授予类型下发出OAuth 2访问令牌的能力。 这将处于草拟阶段[4]的MTLS OAuth2.0规范之下。

这里很少发生什么特别的事情,

  • 基于工作负载的SPIRE服务器签名密钥对创建MTLS连接。 因此,假定授权服务器和SPIRE服务器具有预先建立的信任。
  • 当工作负载创建与授权服务器的MTLS连接时,它会动态地动态创建OAuth 2客户端,生成OAuth2机密并颁发令牌。 此时,授权服务器应在发出验证之前进行几次验证。
  • 首先需要验证证书,然后需要读取证书的内容以及SAN中的SPIFFE ID。
  • 仅查看SPIFFE ID并颁发令牌不足以满足企业用例。
  • 因此,我们将提供基于使用OPA在授权服务器中定义的策略将范围附加到这些令牌的功能。 (OPA代表开放策略代理,它非常灵活,可以像复杂策略一样提供RBAC,ABAC或XACML。)此策略可以使用其他可用数据并做出决策。
  • 验证完成后,授权服务器将发出一个自包含的访问令牌,包括范围,到期时间等,这些令牌将发送到AWS工作负载,以便在调用GCP工作负载时提交。
  • 除了使用其现有机制来验证OAuth 2.0令牌并获取其附带的任何有用信息外,GCP工作负载此处不需要任何其他功能。


希望这能很好地解释这种情况。 我将这个解决方案命名为Dvaara,表示要打开更多的门并控制进出。 :)
我们欢迎任何反馈,建议。
[1] – https://www.cncf.io/blog/2018/03/29/cncf-to-host-the-spiffe-project/ [2] – https://istio.io/docs/concepts/security/#istio-security-vs-spiffe [3] –样本SVID https://gist.github.com/Pushpalanka/b70d5057154eb3c34d651e6a4d8f46ee#file-svid-cert [4] – https://tools.ietf.org/html/draft-ietf-oauth-mtls-12 [5] – https://www.openpolicyagent.org/docs/comparison-to-other-systems.html

干杯!

翻译自: https://www.javacodegeeks.com/2019/01/authorization-multi-cloud-system.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

级联选择组件_如何开发一个 Antd 级联多选控件

本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器。先看效果: Github,Sandbox 阅读完这篇文章,不仅可以学会如何实现级联多选的功能,还可以顺便学会: 如何发布一个 Typescript 编写…

node mysql安装目录_nodejs 指定全局安装路径和缓存路径

1、前提:已安装 nodejs(nodejs官网 https://nodejs.org), 并且已将其添加到了环境变量 path 中;2、进入cmd命令行,然后输入 node -v ,测试是否安装成功,出现版本号就表示安装成功3、进入cmd命令行,然后输入…

mysql的sql执行原理图_性能测试MySQL之SQL运行原理

一,MySQL运行原理两个一样的图1,SQL语句执行的过程详细说明如上图所示,当向MySQL发送一个请求的时候,MySQL到底做了什么:a, 客户端发送一条查询给服务器。b, 服务器先检查查询缓存,如果命中了缓存&#xff…

mysql宽字节注入_转宽字节注入详解

在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性。首先,宽字节注入与HTML页面编码是无关的&#xf…

mysql集群软件有哪些_浅谈数据库集群软件优缺点有哪些

满心狼藉回答时间:2019-12-05向TA提问集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合,为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图,同时提供接近容错机的故障恢复能力。集群…

错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1

1、在控制节点安装rabbitmq、memcached组件apt-get -y install rabbitmq-server memcached python-pymysql # 设置openstack用户 rabbitmqctl add_user openstack password #后一个password是密码,需要特别注意,要与后面组件访问时的密码一致 #设置ope…

ubuntu加了张固态_将ubuntu系统迁移到ssd固态

朋友送了一个固态硬盘给我,因此将原机械硬盘上的系统迁移到固态硬盘上。原机械硬盘(dev/sdb)装有win10和ubuntu双系统。分区情况如下:sda1:ESP分区sda2:资料sda3:资料sda4:swap分区,被我干掉了&…

centos编译mysql5.6_centos7上编译安装mysql5.6

注意,在做实验室统一关闭防火墙做的,在生产环境需要做防火墙规则的,大家要注意,做的时候尽量都是模仿生产环境的,比如服务一般都在/data/soft下面,尽量避免在/usr/local/下面。安装编译mysql所需要的软件[r…

使用ELK堆栈进行日志聚合

1.简介 随着微服务的使用,创建稳定的分布式应用程序和摆脱许多遗留问题变得很容易。 但是微服务的使用也带来了一些挑战, 分布式日志管理就是其中之一。 由于微服务是隔离的,因此它们不共享数据库和日志文件,因此实时搜索&#xf…

mysql主从延时这么长_MySQL主从延迟问题解决

今天我们就来看看为什么会产生主从延迟以及主从延迟如何处理等相关问题。坐好了,准备发车!主从常见架构随着日益增长的访问量,单台数据库的应接能力已经捉襟见肘。因此采用主库写数据,从库读数据这种将读写分离开的主从架构便随之…

生成器作为(快速失败)状态机

这个想法是几周前在设计“ Generator”类时想到的,该类必须将输入发送给封装的Writer 。 实际上,它是Builder模式。 但是,规则有些复杂,用户必须以某种方式调用add...()方法,才能正确生成输出。 不用说,我…

源码包编译安装python_Python3.7源码包编译安装-Go语言中文社区

环境:[rootlocalhost python3]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)[rootlocalhost python3]#1、下载Python方式一:方式二:进入https://www.python.org/ftp/python/ 这里存放着所有版本的Python源码。往下拉看到最…

java criteria and_criteria用法

Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如:Java代码Criteria criteria session.createCriteria(User.class);criteria.add(Expression.eq(&q…

java jdt_在JDT中使用Java 8 Lambda

java jdt旧 Curmudgeon 认识Smalltalk的Dude 在修改Eclipse Java开发工具 (JDT)项目正在开发的Java 8支持时,我一直在使用这种语言。 我承认我对Java 8中的lambda有点不满意。 当然,这来自于知道Smalltalk (和LISP…

java 1.8签名apk_给Android的APK程序签名和重新签名的方法

签名工具的使用Android源码编译出来的signapk.jar既可给apk签名,也可给rom签名的。使用格式:java –jar signapk.jar [-w] publickey.x509[.pem] privatekey.pk8 input.jar output.jar-w 是指对ROM签名时需使用的参数publickey.x509[.pem] 是公钥文件pri…

使用Oracle验证外部数据

我经常在Corda Slack频道中闲逛,并尽可能回答问题。 我尝试回答的合理数量的问题与Oracle有关。 更具体地说,何时使用一个。 我觉得我可以回答,“当您需要验证可能经常更改的外部数据时使用Oracle”。 我可能在某个时候写了一个类似的答案。 …

java 2d 教程_Java 2D开发技巧之“灯光与阴影”

Java 2D开发技巧之“灯光与阴影”(2016-12-14 02:12:25)标签:杂谈一、 引言在本文中,我们将向你展示如何为扁平形状添加一种灯光效果以实现一种类3D外观。也许你比较满意于自己的文字表达能力,但一幅图片往往能够产生更好的效果。对于图形处理…

java连接到mysql_[操作系统]Java如何连接到MySQL数据库的

[操作系统]Java如何连接到MySQL数据库的0 2016-05-01 15:00:15下载:mysql-connector-java-5.1.38.tar.gzhttp://dev.mysql.com/downloads/connector/j/tar zxvfmysql-connector-java-5.1.38.tar.gz解压后zhouspubuntu:~/Downloads$cd ./mysql-connector-java-5.1.38…

Spark Run本地设计模式

现在,许多Spark应用程序已成为遗留应用程序,很难在本地进行增强,测试和运行。 Spark具有很好的测试支持,但仍有许多Spark应用程序不可测试。 当您尝试运行一些旧的Spark应用程序时,我将分享一个常见错误。 Exceptio…

mysql导入创建表空间_oracle创建表空间 导入数据库

oracle2 然后是创建表空间创建表空间需要创建两个一个临时表空间 一个表空间--创建表空间create tablespace abc datafile ‘D:\tablespce\LANDHIGH_SFTMS.dbf‘ size 500m;--创建用户并指定表空间create user admin identified by admin default tablespace abc quota 500m …