zoukankan      html  css  js  c++  java
  • 阿里云STS简介

    需求场景

    • 管理员用户在后台上传视频文件,文件比较大,需要直接上传到OSS上面。
    • 出于安全考虑,不能直接把一个RAM用户的key和secret写死在管理后台的前端代码里面,所以需要使用阿里云的STS获取一个临时的身份,用来上传文件,文件传完之后身份过期。

    概念介绍

    这个过程,会涉及到阿里云的两个云服务:

    • STS
    • 访问控制

    STS:阿里云临时安全令牌(Security Token Service,STS)是阿里云提供的一种临时访问权限管理服务。

    访问控制:阿里云的访问控制服务,其实就是提供了”用户-角色-权限“这样的一套用户权限体系,用来控制对于阿里云各类云资源的访问,比如OSS等。其中有几个关键概念:

    1. 可信实体:可信实体,可以简单理解为一个用户,这个用户可以在“阿里云控制台->访问控制->人员管理->用户”里面去进行创建和编辑。
    2. RAM角色:角色可以理解为是一组权限的集合。
    3. 扮演角色:一个用户可以扮演一个或者多个角色,扮演哪个角色,就拥有了哪个角色赋予的权限。

    ARN:是一个字符串,用来在代码中唯一标识一个角色。 

    实现逻辑

    上述业务场景的实现,本质上就是:

    • 就是我们使用某一个用户(可信实体)的身份,来向阿里云的STS服务,请求一套临时的访问令牌,让这个令牌的持有者,可以临时扮演指定的一个角色
    • 前端获得这个临时令牌之后,以其调用OSS提供的接口,来进行OSS的文件操作。

    简单来说,分成两个步骤:

    1. 在阿里云的访问控制后台,创建好用户和RAM角色
    2. 业务服务器实现一个获取STS令牌的接口,供前端调用。
    3. 前端使用STS访问令牌,访问OSS提供的上传文件接口。

    从业务服务器的角度,需要做的工作包括:

    • 创建授权策略
    • 创建RAM角色
    • 创建用户
    • 实现提供STS访问令牌的接口
    • 跨域设置

    上述业务场景的实现,本质上,

    就是我们使用某一个用户(可信实体)的身份,来向阿里云的STS服务,请求一套临时的访问令牌,让这个令牌的持有者,可以临时扮演指定的一个角色
    前端获得这个临时令牌之后,以其调用OSS提供的接口,来进行OSS的文件操作。

    前端调用

    对于前端调用者而言,在获取到令牌之后,主要问题就是怎样来上传一个文件,详见下面的链接。

    推荐使用Browser.js的方式,有三个主要的接口可供前端使用:

    • 普通上传
    • 分片上传
    • 断点续传

    参考资料

    关于STS的一些基本概念:https://help.aliyun.com/document_detail/28756.html?spm=a2c4g.11174283.6.787.4a4d5662tWHP35

    前端怎样上传文件:https://help.aliyun.com/document_detail/112718.html?spm=a2c4g.11174359.6.1552.3da85241mGWBs8

  • 相关阅读:
    Python 的编码格式
    Python import其他层级的模块
    自己写ORM框架 DBUtils_DG Java(C#的写在链接里)
    C#对象深度克隆
    SpringMVC文件上传下载
    HttpRuntime.Cache .Net自带的缓存类
    Winform跨窗体操作控件(使用委托)
    Winform调用WebKitBrowser,基于chrome内核WebKit的浏览器控件
    ORM框架 EF code first 的封装 优化一
    Go Language 开发环境搭建
  • 原文地址:https://www.cnblogs.com/zhaoxizhe/p/13181521.html
Copyright © 2011-2022 走看看