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文档太糙。看了好半天才弄明白。

azure实践_第1张图片

具体配置:

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上的内容解密出来。中间那个命令,母鸡

 

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

 

 

你可能感兴趣的:(azure)