azure實踐

關鍵字:azure hashicorp vault ad oidc

 

基本概念:

azure AD: 一種授權方式。

application:添加一個web app 到azure上 以便使用azure賬號單點登錄,同時可以在myapp中看到這個app,直接點擊即可登錄

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

實踐一:在vault 登錄頁面直接登錄vault,不輸入任何東東,前提是把vault 綁定到azure上。方法是azure AD oidc。

參考:

https://www.vaultproject.io/docs/auth/jwt.html#jwt-authentication

https://www.vaultproject.io/docs/auth/jwt_oidc_providers.html

https://beez.ly/2018/07/25/authenticating-azure-users-with-hashicorp-vault.html

 https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc

原理:在azure上註冊該app,然後創建一個secret key,綁定reply url。然後在vault server內使用azure上創建的secret key,application id等進行配置,表示vault 允許azure替vault 分配credential(比如token)。這個secret key是azure生成的,類似於linux的public key,我給你一個暗號,當你要用的時候,告訴我暗號你就可以直接使用了。這個暗號就是azure 分配credential功能的鑰匙。只要註冊了app,都可以用。

實操:只需要在vault登錄界面直接選oidc然後填role直接登錄即可。

內部原理:當點擊登錄時,vault會自動把地址轉向azure的特殊網址(專門用來分配credential的),這個網址提前在vault上配置好(https://sts.windows.net/tenant_id/),tenant_id就是你azure賬戶裏的tenant id。獲得token後,這個網址又會自動轉到vault的另一個叫callback的網址,網址對返回的token(實際是code形式,不是id_token)進行處理並傳給登錄界面,然後自動登錄成功,就這麼點破事兒,不知道是我理解力差還是azure文檔太糙。看了好半天才弄明白。

OpenID Connect protocol: Sign-in

具體配置:

azure側:註冊app,生成secret key,填寫vualt文檔內的reply url(固定格式)

vault側:enable oidc ,然後configure,那個discovery url就是azure上提供的,實際是上面那個,azure文檔tm的寫的是另一個,十分奇葩。說創建新的就用新的,實際創建新的還是舊的。 然後創建role role的路徑就是auth/oidc/role/xxxx,參數除了policy之外還必須有那個redirect uri,還有一個user claim,azure的話就寫upn。

 

azure上的token如果想解析出來看看都有啥,可以這樣:在linux內把token粘到一個文檔內,然後使用命令cat jwt.json | cut -d. -f2 | base64 -d  這個命令是使用base64把 jwt.json上的內容解密出來。中間那個命令,母雞

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章