手把手教你玩转华为云API和SDK鉴权
【问题描述】:
想要着手了解一下华为云API和SDK的使用,没想到鉴权部分信息填写的问题却是一道很难迈过去的坎。到底什么是IAM用户?什么是终端节点?… … 你的脑海里肯定有很多的问号。本文将根据之前获取的经验助你快速上手,让你瞬间感到鉴权从未如此简单。
【问题详解】:
1. API和SDK鉴权过程中URL所需的常见终端节点(Endpoint)信息如下截图,注意过程中使用的一定是IAM的Endpoint:
更多有关终端节点(Endpoint)的信息请参考:
https://developer.huaweicloud.com/endpoint?IAM
2. API和SDK鉴权过程中所需的账号信息以及项目相关信息,在控制台上“我的凭证”中都可以找到,具体操作步骤如下:
(1)鼠标放在图中界面右上角的账号名的位置(图中右上角的红框处),会自动出现下拉列表,找到“我的凭证”
(2)点击“我的凭证”,进入如下界面,API和SDK鉴权过程中使用信息(账号名、账号ID、IAM用户名、IAM用户ID、项目ID)在这里一目了然
3. 鉴权过程中需注意账号和IAM用户的概念
账号与IAM用户可以类比为父子关系,账号是资源归属以及计费的主体,对其拥有的资源具有所有权限。IAM用户由账号创建,只能拥有账号授予的资源使用权限,账号可以随时修改或者撤销IAM用户的使用权限。IAM用户进行资源操作时产生的费用统一计入账号中,IAM用户不需要为资源付费。
对于IAM用户登录,在官网控制台的登录界面就与正常的账号登录有明显的区别。
(1)正常的账号登录界面
(2)IAM用户的登录界面
其他更多与账号相关的信息可以参考:
https://support.huaweicloud.com/productdesc-iam/iam_01_0023.html
4. API目前使用的鉴权方式,主要是通过账号密码的方式获取Token,
(1)对于正常账号登录的用户,具体的API调用见下图
注意:对于此种登录方式的用户,获取Token时,username和domainname相同,上面scope字段中,如果是要获取区域级的Token,则其中的内容为“project”,如果要获取全局的Token,则其中的内容对应改为“domain”,上面截图中的示例为获取某一区域的Token,更多详情可以参见官网文档:https://support.huaweicloud.com/api-iam/iam_30_0001.html
所需信息与登录界面以及“我的凭证”处的信息对应关系如下:
API鉴权 |
登录界面 |
“我的凭证” |
password.user.name |
账号名 |
IAM用户名(账号名) |
password.user.password |
密码 |
- |
password.user.domain.name |
账号名 |
账号名(IAM用户名) |
scope.project.name |
- |
项目 |
scope.project.id |
- |
项目ID |
scope.domain.name |
账号名 |
账号名(IAM用户名) |
scope.domain.id |
- |
账号ID |
(2)对于IAM用户登录的用户,具体的API调用见下图
所需信息与登录界面以及“我的凭证”处的信息对应关系如下:
API鉴权 |
登录界面 |
“我的凭证” |
password.user.name |
用户名 |
IAM用户名 |
password.user.password |
密码 |
- |
password.user.domain.name |
账号名 |
账号名 |
scope.project.name |
- |
项目 |
scope.project.id |
- |
项目ID |
scope.domain.name |
账号名 |
账号名 |
scope.domain.id |
- |
账号ID |
5. SDK支持AK/SK以及账号密码的鉴权方式,此处以Python语言的账号密码鉴权场景为例
(1)对于正常账号登录的用户,具体的鉴权代码见下图:
所需信息与登录界面以及“我的凭证”处的信息对应关系如下:
SDK鉴权 |
登录界面 |
“我的凭证” |
username |
账号名 |
IAM用户名(账号名) |
password |
密码 |
- |
userDomainId |
- |
账号ID |
projectId |
- |
项目ID |
(2)对于IAM用户登录的用户,具体的鉴权代码见下图:
所需信息与登录界面以及“我的凭证”处的信息对应关系如下:
SDK鉴权 |
登录界面 |
“我的凭证” |
username |
用户名 |
IAM用户名 |
password |
密码 |
- |
userDomainId |
- |
账号ID |
projectId |
- |
项目ID |
相信通过本文的详细介绍,大家对API和SDK鉴权过程中的一些基本概念都有了一定了解,心中有关过程中一些信息填写的疑惑也随之消失呢?后续大家感兴趣的话,也可以在我们这边提供的API Explorer工具上对相关接口进行调试,可以省去鉴权麻烦哦!API Explorer的工具连接:
- 点赞
- 收藏
- 关注作者
评论(0)