遠(yuǎn)程辦公”">國務(wù)院聯(lián)防聯(lián)控機(jī)制新聞發(fā)布會,多次肯定“云辦公”、“遠(yuǎn)程辦公”
662
2025-03-31
上次教了實習(xí)生一個方案之后,這小子跟運(yùn)營妹子的關(guān)系是越走越近,時不時地撒把-,在我司真正實現(xiàn)了研發(fā)運(yùn)營一家親~(上回你沒看?戳上文劇情回顧:萬萬沒想到,一個技術(shù)方案幫實習(xí)生追到了運(yùn)營妹子 )
這回想跟大家聊的,是最近一個可以說有些驚心動魄的項目。自從我開始在華為云網(wǎng)站自學(xué)API的技術(shù)解決方案之后,我就變成了公司的云服務(wù)器技術(shù)專家,老板或運(yùn)維部門想要查詢個數(shù)據(jù)什么的都來找我。
近期有一個運(yùn)營項目的系統(tǒng)正在開發(fā)中,運(yùn)營方規(guī)劃了一個數(shù)據(jù)BI模板,列出了需要監(jiān)測和分析的數(shù)據(jù)維度,老板干脆讓我每周出一份數(shù)據(jù)報表來支持各方的數(shù)據(jù)獲取和數(shù)據(jù)分析。
讓研發(fā)出數(shù)據(jù)報表?這不是逼著李逵繡花么?但是,我能輕易拒絕嗎?前幾回高光時刻帶來的成就感和光環(huán)還沒褪去呢,不能慫!于是我提了一個方案:可以把云服務(wù)器的監(jiān)控儀表內(nèi)嵌到我們自己的系統(tǒng)里,這樣大家可以隨時查詢,也方便。
老板聽了這個方案表示很開心,并同意加入到項目排期中,數(shù)據(jù)查詢功能與系統(tǒng)同期上線,以便及時跟蹤運(yùn)營結(jié)果。在老板的笑容里,我看到季度獎金在向我招手。
說干就干,執(zhí)行力咱還是有的。用1天的時間就把程序?qū)懲炅耍跍y試的時候發(fā)現(xiàn)了一個問題,數(shù)據(jù)過不來!因為通過內(nèi)嵌系統(tǒng)登陸云服務(wù)器需要經(jīng)過各種認(rèn)證,步驟多不說,如果要想實現(xiàn)人人可查詢還存在泄密的危險。
這可怎么辦,系統(tǒng)上線的日期臨近,不能因為我這部分影響到項目進(jìn)展啊!當(dāng)初拍著胸脯提(chui)的方(niu)案(13),難道就要失敗了?
不行,再查查!我專門聯(lián)系了華為云的技術(shù)專家,得知可以通過IAM自定義代理免密登錄到云服務(wù)Console頁面,省去認(rèn)證環(huán)節(jié),直接登陸云服務(wù)器進(jìn)行數(shù)據(jù)查詢和獲取。
那怎么做免密登錄呢?他給了我一份文檔,內(nèi)容是這樣的:
一、前提條件
步驟 1:創(chuàng)建賬號IAMDomainA下的IAM用戶userB,并授予Security Administrator和Agent Operator權(quán)限(全局服務(wù)-全局項目)。
將userB的用戶名和密碼配置到企業(yè)系統(tǒng)的配置文件中,密碼建議加密存儲,以便獲取認(rèn)證token并進(jìn)一步調(diào)用IAM其他Open API。
備注:有關(guān)創(chuàng)建IAM用戶和授權(quán)相關(guān)操作請參見:創(chuàng)建IAM用戶?和 創(chuàng)建用戶組并授權(quán)
步驟2:創(chuàng)建聯(lián)邦代理所需委托IAMAgency。
委托類型選擇“普通賬號”,委托的賬號填寫“DomainA”。
備注:有關(guān)創(chuàng)建委托相關(guān)操作請參見:創(chuàng)建委托(委托方操作)
二、華為云聯(lián)邦代理登錄
步驟1:調(diào)用IAM API獲取STS token
1)使用IAM全局域名(iam.myhuaweicloud.com)調(diào)用IAM服務(wù)的API(POST /v3.0/OS-CREDENTIAL/securitytokens)獲取STS token。
填寫"session_user"參數(shù),發(fā)起一個POST請求。
POST? https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens
請求示例
{ ????"auth":?{ ????????"identity":?{ ????????????"assume_role":?{ ????????????????"agency_name":?"IAMAgency", ????????????????"domain_name":?"IAMDomainA", ????????????????"duration-seconds":?3600, ????????????????"session_user":?{ ????????????????????"name":?"SessionUserName" ????????????????} ????????????}, ????????????"methods":?[ ????????????????"assume_role" ????????????] ????????} ????} }
2)獲取并記錄請求響應(yīng)體中的STS token信息:credential.access , credential.secret, credential.securitytoken
響應(yīng)示例
{ ??"credential":?{ ????"access":?"E6DX0TF2ZREQ4ZAVM5CS", ????"expires_at":?"2020-01-08T02:56:19.587000Z", ????"secret":?"w9ePum0qdfac39ErLD0UdjofYkqort6Iw2bmR6Si", ????"securitytoken":?"gQpjbi1ub3J0aC0..." ??} }
步驟2:調(diào)用IAM API獲取logintoken
1)使用IAM全局域名(iam.myhuaweicloud.com)調(diào)用IAM服務(wù)的API(POST /v3.0/OS-AUTH/securitytoken/logintokens)獲取logintoken。
發(fā)送一個POST請求。
POST ?https://iam.myhuaweicloud.com/v3.0/OS-AUTH/securitytoken/logintokens
請求示例
{ ????"auth":?{ ????????"securitytoken":?{ ????????????"access":?"LUJHNN4WB569PGAPBDFT", ????????????"id":?"gQpjbi1ub3J0a...", ????????????"secret":?"7qtrm2cku0XubixiVkBOcvMfpnu7H2mLNCUsuFR8" ????????} ????} }
2)獲取請求響應(yīng)頭中的X-Subject-LoginToken信息。
通過委托獲取臨時訪問密鑰和securitytoken且請求體中填寫session_user.name參數(shù)。
返回示例
{ ??"logintoken":?{ ????"assumed_by":?{ ??????"user":?{ ????????"domain":?{ ??????????"id":?"0659ef9c9c80d4560f14c009acf9c4a0", ??????????"name":?"IAMDomainB" ????????}, ????????"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":?"IAMDomainA/IAMAgency" ??} }
步驟3:構(gòu)建聯(lián)邦代理登錄地址,完成免密登錄
聯(lián)邦代理登錄地址的構(gòu)建規(guī)則為:
https://auth.huaweicloud.com/authui/federation/login?service={target_console_url}&logintoken={logintoken}&idp_login_url={enterprise_system_loginURL}
構(gòu)建參數(shù)說明:
{target_console_url}為目的云服務(wù)console地址的urlencode編碼結(jié)果。
{logintoken}為步驟2中獲取到的logintoken的urlencode編碼結(jié)果。
{enterprise_system_loginURL}是選填參數(shù),為企業(yè)客戶自身的登錄系統(tǒng)地址的urlencode編碼結(jié)果。
按照文檔的指引,我最終順利解決了這個問題,項目如期上線,運(yùn)營方也可以通過免密登陸自己查詢和分析運(yùn)營數(shù)據(jù),及時作出優(yōu)化調(diào)整,省時省事還安全。在月度例會上,我因此再一次得到了老板的肯定,開心的同時,也在心里暗想:“看來不能松懈,還得多學(xué)習(xí)啊~”
據(jù)了解,目前API Explorer平臺已開放EI企業(yè)智能、計算、應(yīng)用服務(wù)、網(wǎng)絡(luò)、軟件開發(fā)平臺、視頻等70+云服務(wù),共上線2000+個API、6000+個錯誤碼。在前期試運(yùn)行期間,華為云API Explorer平臺上的API接口也已被多家企業(yè)成功接入。
點擊查看詳情:《華為云一站式API解決方案平臺API Explorer上線》
華為云API Explorer平臺在未來幾個月會實現(xiàn)更多功能,比如支持SDK示例代碼、CLI等特性,同時也會開放更多的云服務(wù)API接口,連接更多開發(fā)者實現(xiàn)創(chuàng)新、拓寬創(chuàng)新邊界。
IAM API
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。