我想编写一个脚本,
是否可以使用Azure AD库做到这一点?
我觉得这应该可行,而我只是想念一些东西。有任何想法吗? 我尝试了很多东西,并尝试了Python库中的代码,但无济于事。
我更喜欢Python,但是我可以在Docker映像中运行它,因此语言并不是那么重要。
在工作中,我们使用Azure AD进行身份验证,并且可以使用Azure AD和SSO SAML登录到AWS控制台。
如果我构建了一个适当的SAML请求URL并在浏览器中将其打开,则将通过浏览器内身份验证流程。登录后,Azure AD返回一个SAML响应,最终我的浏览器将我重定向到AWS控制台。这是以下格式的网址:
https://login.microsoftonline.com/11111111-1111-1111-11111111111/saml2?SAMLRequest=<base64 encoded string>
现在,我想对AWS凭证执行类似的流程–发出SAML请求以登录,读取SAML响应,使用assume_role_with_saml创建凭证,然后将其写入~/.aws/credentials
。我认为这意味着我必须直接访问SAML响应-浏览器只是将我放在重定向链的末尾。
有什么想法吗?
我知道aws-azure-login npm package是通过旋转无头浏览器来完成此操作的-但它并没有得到维护,我发现它很笨拙。
现在,我有一个Python脚本,该脚本可在Chrome(我登录的地方)中打开SAML请求,然后使用browsercookie library突袭Chrome的cookie罐并将其用于HTTP请求。可以,但是以这种方式复制cookie感觉很奇怪。另外,如果我将SSH服务器连接到远程服务器,则无法使用。
我从a year and a half ago找到了一个答案,说“ ADAL.JS不支持SAML2令牌”。想知道这是否可能会改变,还是我仍然坚持下去?
答案 0 :(得分:1)
否-ADAL是OpenID Connect,并返回JWT令牌。
为什么需要使用SAML?您不能使用OpenID Connect吗?
答案 1 :(得分:0)
Azure AD不支持device code flow的SAML令牌。
Azure AD团队的