上次教了实习生一个方案之后,这小子跟运营妹子的关系是越走越近,时不时地撒把狗粮,在我司真正实现了研发运营一家亲~(上回你没看?戳上文剧情回顾:万万没想到,一个技术方案帮实习生追到了运营妹子

这回想跟大家聊的,是最近一个可以说有些惊心动魄的项目。自从我开始在华为云网站自学API的技术解决方案之后,我就变成了公司的云服务器技术专家,老板或运维部门想要查询个数据什么的都来找我。

近期有一个运营项目的系统正在开发中,运营方规划了一个数据BI模板,列出了需要监测和分析的数据维度,老板干脆让我每周出一份数据报表来支持各方的数据获取和数据分析。

让研发出数据报表?这不是逼着李逵绣花么?但是,我能轻易拒绝吗?前几回高光时刻带来的成就感和光环还没褪去呢,不能怂!于是我提了一个方案:可以把云服务器的监控仪表内嵌到我们自己的系统里,这样大家可以随时查询,也方便。

老板听了这个方案表示很开心,并同意加入到项目排期中,数据查询功能与系统同期上线,以便及时跟踪运营结果。在老板的笑容里,我看到季度奖金在向我招手。

说干就干,执行力咱还是有的。用1天的时间就把程序写完了,在测试的时候发现了一个问题,数据过不来!因为通过内嵌系统登陆云服务器需要经过各种认证,步骤多不说,如果要想实现人人可查询还存在泄密的危险。

这可怎么办,系统上线的日期临近,不能因为我这部分影响到项目进展啊!当初拍着胸脯提(chui)的方(niu)案(13),难道就要失败了?

不行,再查查!我专门联系了华为云的技术专家,得知可以通过IAM自定义代理免密登录到云服务Console页面,省去认证环节,直接登陆云服务器进行数据查询和获取。

那怎么做免密登录呢?他给了我一份文档,内容是这样的:

一、前提条件

步骤 1:创建账号I**mainA下的IAM用户userB,并授予Security Administrator和Agent Operator权限(全局服务-全局项目)。

将userB的用户名和密码配置到企业系统的配置文件中,密码建议加密存储,以便获取认证token并进一步调用IAM其他Open API。

备注:有关创建IAM用户和授权相关操作请参见:创建IAM用户https://support.huaweicloud.com/usermanual-iam/zh-cn_topic_0046611303.html) 和 创建用户组并授权 (https://support.huaweicloud.com/usermanual-iam/zh-cn_topic_0046611269.html

步骤2:创建联邦代理所需委托IAMAgency。

 委托类型选择“普通账号”,委托的账号填写“DomainA”。

备注:有关创建委托相关操作请参见:创建委托(委托方操作)https://support.huaweicloud.com/usermanual-iam/zh-cn_topic_0046613147.html

 

二、华为云联邦代理登录

步骤1:调用IAM API获取STS token

1)使用IAM全局域名(iam.myhuaweicloud.com)调用IAM服务的API(POST /v3.0/OS-CREDENTIAL/securitytokens)获取STS token。

填写"session_user"参数,发起一个POST请求。

POST  https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens

请求示例

{
"auth": {
"identity": {
"assume_role": {
"agency_name": "IAMAgency",
"domain_name": "I**mainA",
"duration-seconds": ,
"session_user": {
"name": "SessionUserName"
}
},
"methods": [
"assume_role"
]
}
}
}

2)获取并记录请求响应体中的STS token信息:credential.access , credential.secret, credential.securitytoken

响应示例

<br style=""> 
{
"credential": {
"access": "E6DX0TF2ZREQ4ZAVM5CS",
"expires_at": "2020-01-08T02:56:19.587000Z",
"secret": "w9ePum0qdfac39ErLD0UdjofYkqort6Iw2bmR6Si",
"securitytoken": "gQpjbi1ub3J0aC0..."
}
}

步骤2:调用IAM API获取logintoken

1)使用IAM全局域名(iam.myhuaweicloud.com)调用IAM服务的API(POST /v3.0/OS-AUTH/securitytoken/logintokens)获取logintoken。

发送一个POST请求。

POST  https://iam.myhuaweicloud.com/v3.0/OS-AUTH/securitytoken/logintokens

请求示例

{
"auth": {
"securitytoken": {
"access": "LUJHNN4WB569PGAPBDFT",
"id": "gQpjbi1ub3J0a...",
"secret": "7qtrm2cku0XubixiVkBOcvMfpnu7H2mLNCUsuFR8"
}
}
}

2)获取请求响应头中的X-Subject-LoginToken信息。

通过委托获取临时访问密钥和securitytoken且请求体中填写session_user.name参数。

返回示例

{
"logintoken": {
"assumed_by": {
"user": {
"domain": {
"id": "0659ef9c9c80d4560f14c009acf9c4a0",
"name": "I**mainB"
},
"id": "0659ef9d4d00d3b81f26c009fee32b57",
"name": "IAMUserB",
"password_expires_at": "2020-02-16T02:44:57.000000Z"
}
},
"domain_id": "05262121fb00d5c30fbec013bc17a4a0",
"expires_at": "2020-01-23T03:27:26.728000Z",
"method": "federation_proxy",
"session_id": "0012c8e6adda4ce787e90585d10e3e63",
"session_name": "SessionUserName",
"user_id": "07826f367b80d2474ff9c013a48903ee",
"user_name": "I**mainA/IAMAgency"
}
}

步骤3:构建联邦代理登录地址,完成免密登录

联邦代理登录地址的构建规则为:

https://auth.huaweicloud.com/authui/federation/login?service={target_console_url}&logintoken={logintoken}&idp_login_url={enterprise_system_loginURL}

构建参数说明:

  • {target_console_url}为目的云服务console地址的urlencode编码结果。
  • {logintoken}为步骤2中获取到的logintoken的urlencode编码结果。
  • {enterprise_system_loginURL}是选填参数,为企业客户自身的登录系统地址的urlencode编码结果。

按照文档的指引,我最终顺利解决了这个问题,项目如期上线,运营方也可以通过免密登陆自己查询和分析运营数据,及时作出优化调整,省时省事还安全。在月度例会上,我因此再一次得到了老板的肯定,开心的同时,也在心里暗想:“看来不能松懈,还得多学习啊~”

据了解,目前API Explorer平台已开放EI企业智能、计算、应用服务、网络、软件开发平台、视频等70+云服务,共上线2000+个API、6000+个错误码。在前期试运行期间,华为云API Explorer平台上的API接口也已被多家企业成功接入。

点击查看详情:《华为云新功能上线,体验还能拿码豆》

华为云API Explorer平台在未来几个月会实现更多功能,比如支持SDK示例代码、CLI等特性,同时也会开放更多的云服务API接口,连接更多开发者实现创新、拓宽创新边界。

点击关注,第一时间了解华为云新鲜技术~

【API进阶之路6】一个技术盲点,差点让整个项目翻车的更多相关文章

  1. 【API进阶之路】API带来的微创新,打动投资人鼓励我创业

    摘要:怎么帮助创作者提高视频的推荐量呢?我发现了:视频的封面图非常重要. 上回说到,老板一拍脑门,交代了一个新项目:小成本开发一款短视频剪辑工具([<[API进阶之路]人少钱少需求多的新项目该怎 ...

  2. 【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

    摘要:通过把所需建立的工具库做成云容器化应用,用CCE引擎,通过API网关调用云容器引擎中的容器应用.不仅顺应了云原生的发展趋势,还能随时弹性扩容,满足公司规模化发展的需求. 公司开完年中会后,大家的 ...

  3. 【API进阶之路】破圈,用一个API代替10人内容团队

    摘要:我用一个API代替10人内容团队,一年帮老板省了一百万. 自从学习API以后,我用技术手段相继帮助业务部.市场部解决了不少难题,算是从纯研发破圈发展到了业务端.老板召开业务讨论会的时候也会带上我 ...

  4. 【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播

    摘要:看我如何通过API Explorer 的SDK接口搞定千万级流量直播. 最近几个月,我的变化其实还蛮大的,从一个被实习生“无视”的“前浪”,转变成了不仅能够解决技术问题还能解决业务问题(顺手还能 ...

  5. 【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研

    摘要:自从学习API后,仿佛解锁了新技能,可别小看了一个小小的API接口,用好了都是能力无穷.这不,用情感分析API来做用户偏好调研,没想到这么一个小创意给公司省了20万调研费用. 上次借着高考热点整 ...

  6. 【API进阶之路】高考要考口语?我用多模态评测API做了一场10w+刷屏活动

    摘要:闲着没事用多模态评测API做了一个测评英语口语的互动小游戏,居然成了一场10万人参与的刷屏级活动. 上一期故事说到,我成为了公司技术委员会副主席,上任后的第一件事是建立了一个云容器化的研发资料库 ...

  7. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察

    摘要: 老大说,我这份用关键词抽取API搞定的用户需求洞察报告,简直比比市场调研的科班人士做得还好. 最近这半个月的午饭,那可是相当不错,市场老大天天请吃饭,不是外面下馆子,就是从家带饺子.说是感谢我 ...

  8. 【API进阶之路】用API打造一条自动化内容生产流水线

    摘要:搞定了内容审核之后,我又把抓取工具.内容审核API.文本摘要生成API串联在一起,从抓到审再到编,建立了一条自动化的内容生产流水线,编辑团队只需要做优质内容的推荐就可以了. 上周,运营部将官网上 ...

  9. 【API进阶之路】研发需求突增3倍,测试团队集体闹离职

    摘要:最近研发的需求量涨了3倍,开发团队拼命赶进度,可苦了测试团队. 本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色. 到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年 ...

随机推荐

  1. java实现扑克牌排列

    ** 扑克牌排列** 下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程. 操作过程是: 手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,- 如此 ...

  2. Linux 用户管理命令-userdel和su

    userdel [选项] 用户名,可以删除用户,常用选项 -r :删除用户的同时删除用户的家目录,一般都要用,例如:userdel -r xbb 新建用户和删除用户的本质也就是修改了 /etc/sha ...

  3. tensorflow2.0学习笔记第一章第四节

    1.4神经网络实现鸢尾花分类 import tensorflow as tf from sklearn import datasets import pandas as pd import numpy ...

  4. 构建自己的jar包上传至Mvaen中央仓库和版本更新

    构建自己的jar包上传至Mvaen中央仓库和版本更新 一直羡慕别人制造轮子,开源项目,供别人使用:我也想这样,可以自己才疏学浅,本次就将自己写小工具上传到Maven的中央仓库. 一步一步详细教程演示如 ...

  5. Spyder汉化教程

    汉化包下载地址:https://www.lizenghai.com/archives/523.html 1.解压汉化包 2. 3.1.运行汉化补丁PS C:\WINDOWS\system32> ...

  6. Nginx源码编译安装选项

    [Nginx源码编译过程] make是用来编译的,它从Makefile中读取指令,然后编译. make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置. configu ...

  7. Python变量和注释

    1.变量与变量的作用: (1)什么是变量:变量源于数学,是计算机语言中能存储计算结果或能表示值抽象概念.变量可以通过变量名访问.在指令式语言中,变量通常是可变的:在Python中变量名必须是大小写英文 ...

  8. Charles 安装证书后依旧抓取不到https请求的解决方案

    1.打开charles——>help——>SSL proxying——>Install Charles Root Certificate 证书安装后,抓取https的包 2.查看Pr ...

  9. HashSet扩容机制在时间和空间上的浪费,远大于你的想象

    一:背景 1. 讲故事 自从这个纯内存项目进了大客户之后,搞得我现在对内存和CPU特别敏感,跑一点数据内存几个G的上下,特别没有安全感,总想用windbg抓几个dump看看到底是哪一块导致的,是我的代 ...

  10. 5种经典的Linux桌面系统

    最近一直在准备Linux相关的PPT,对于一个老码农来说Linux系统自然是比较熟悉了,随口可以说出好几种Linux的版本,然而对于计算机初学者可能就知道windows操作系统.也许你告诉他你可以安装 ...