当前位置:   article > 正文

IAM - 身份识别与访问管理 系统 - 学习/实践_iam系统

iam系统

1.应用场景

主要用于给第三方用户提供访问控制服务,提供的功能就两个:认证与授权。

2.学习/操作

1.文档阅读

01 | IAM系统概述:我们要实现什么样的 Go 项目?-极客时间
批量计算 访问管理-用户指南-文档中心-腾讯云-腾讯云

第三方库

GitHub - ory/ladon: A SDK for access control policies: authorization for the microservice and IoT age. Inspired by AWS IAM policies. Written for Go.

2.整理输出

2.1 介绍

IAM系统主要完成认证和授权功能。

认证:用来判断是否是平台的合法用户,例如用户名和密码就是认证的一种方式

授权:用来判断,是否可以访问平台的某类资源。

认证和授权 2个功能可以抽象成一个系统,这个系统名我起名为IAM。

类似于AWS的IAM,腾讯云的CAM和阿里云的RAM。

建议你参考下腾讯云的cam以协助你理解:

https://cloud.tencent.com/document/product/599/40011

问题:腾讯云的CAM和IAM系统有什么区别吗?

回复: 授权模型不一样。 CAM是ABAC。 IAM授权模型类似于RBAC和ACL

FYI

ABAC访问控制模型,基于属性的访问控制(Attribute-Based Access Control,下文简称ABAC)是一种灵活的授权模型。

插入:

个人理解

各个企业使用云服务

企业就是App

云服务商就是IAM系统的管理员,并设计开发IAM系统

企业需要注册登陆IAM系统,创建密钥(secretID/secretKey),创建授权策略 -- 这个可能是云服务商来创建,毕竟是付费服务。

企业可以使用secretID/secretKey来访问资源,云服务 - IAM需要进行认证+授权验证。

后续补充

...

3.问题/补充

1. authz,这个名字有啥含义么?主要是这个z

作者回复:

认证:authentication,缩写:authn

授权:authorization,缩写:authz

2. helloworld

是不是可以理解为每一个使用iam系统作为认证和资源授权的业务应用,该业务应用的用户每次访问该业务应用的接口都要先经过iam系统,认证和资源鉴权通过后,才能继续访问该业务应用接口呢,也就是iam是业务应用的网关代理?

作者回复: 理解的没毛病,可以理解为一个授权webhook。

3. 老妖纣王

老师,您好,正好讲到iam系统有几个问题想请教你一下,在项目中使用认证授权,遇到几个疑惑的问题一直困扰着我?
假如APP是内部应用的场景,流程是用户通过登录API直接获取token,然后每次携带token进行请求,网关拦截进行token的认证。
(1)这里面token是保存在客户端的,是否安全?
(2)token是有有效期的,网上一般说失败了通过刷新token去刷新,(客户端模式)客户端定时请求去触发,如果客户端多的话,频繁地刷新token的请求,显然带来很大的网络开销?为了解决这个问题,我们通过请求然后判断token时间是否到了阈值,然后续签(服务端实现)。但是这个也有问题,如果长时间没有请求会导致token过期,就不能续签了。如果是像淘宝这种,感觉永远都不会退出的,是不是就是延长token的有效时间+服务端刷新。那么永久有效,需要刷新token吗?
(3)oauth2中有客户端概念,我认为客户端就是app,那么appId和秘钥是不是保存到了app应用端,这样会有安全问题吗?如果密码都保存在了app端,服务端还需要对秘钥验证吗?

作者回复:

1. 使用客户端用用户名登录后,证明客户端短时间是安全的,token默认有2小时的过期时间。

2. 这个刷新成本服务端还是能抗住的。如果token过期就只能重新登录了,至于多久过期,每个业务会根据需要自己选择,但很多开源软件一般默认2小时过期。

3. 密钥保存在客户端,需要客户端使用者去保证密钥不泄露,服务端也会保存一份密钥,用来对请求进行再加密,并和客户端传来的token对比,如果一致则请求通过。

补充

骑着

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/341226
推荐阅读
相关标签