我可以使用Azure Active Directory库(ADAL)从Azure AD获取SAML响应吗?

我可以使用Azure Active Directory库(ADAL)从Azure AD获取SAML响应吗?,azure,saml,adal,Azure,Saml,Adal,我想写一个脚本: 使用将用户登录到Azure广告 构建一个 使用步骤1中的身份验证发出SAML请求 获取SAML响应,并对其执行某些操作(不仅仅是在浏览器中打开它) Azure广告库有没有办法做到这一点 我觉得这应该是可能的,我只是错过了一些东西。有什么想法吗? 我在Python库中尝试了很多东西和代码,但都没有用 我更喜欢Python,但我可以在Docker映像中运行它,所以语言并不那么重要 上下文 在工作中,我们使用Azure AD进行身份验证,并且可以使用Azure AD和SSO SAM

我想写一个脚本:

  • 使用将用户登录到Azure广告
  • 构建一个
  • 使用步骤1中的身份验证发出SAML请求
  • 获取SAML响应,并对其执行某些操作(不仅仅是在浏览器中打开它)
  • Azure广告库有没有办法做到这一点

    我觉得这应该是可能的,我只是错过了一些东西。有什么想法吗? 我在Python库中尝试了很多东西和代码,但都没有用

    我更喜欢Python,但我可以在Docker映像中运行它,所以语言并不那么重要


    上下文 在工作中,我们使用Azure AD进行身份验证,并且可以使用Azure AD和SSO SAML登录AWS控制台

    如果我构造了一个适当的SAML请求URL并在浏览器中打开它,我将通过浏览器内的身份验证流。当我登录时,Azure AD返回SAML响应,最终我的浏览器将我重定向到AWS控制台。它是以下表单的URL:

    https://login.microsoftonline.com/11111111-1111-1111-11111111111/saml2?SAMLRequest=<base64 encoded string>
    
    https://login.microsoftonline.com/11111111-1111-1111-11111111111/saml2?SAMLRequest=
    

    现在,我想对AWS凭据执行类似的流程–发出SAML请求以登录,读取SAML响应,使用创建凭据,然后将它们写入
    ~/.AWS/credentials
    。我认为这意味着我必须直接访问SAML响应——浏览器只是将我放在重定向链的末尾

    有什么想法吗


    其他想法
    • 我通过旋转无头浏览器意识到了这一点,但它并没有维护,我发现它是一个脆弱的

    • 现在我有一个Python脚本,它在Chrome(我登录的地方)中打开SAML请求,然后使用来raid Chrome的cookie jar,并将其用于HTTP请求。这是可行的,但这样复制cookies感觉很奇怪。而且,如果我使用ssh连接到远程服务器,它也不起作用

    • 我发现一个答案是“ADAL.JS不支持SAML2令牌”。想知道这是否已经改变了,或者我仍然被困在那里


    否-ADAL是OpenID Connect并返回JWT令牌


    为什么需要使用SAML?您不能使用OpenID Connect吗?

    Azure AD不支持用于的SAML令牌


    Azure广告团队的库支持应用程序的此流。请尝试一下,或者您可以针对其本身编写代码

    看看,它做了您想做的事情,但使用Okta而不是Azure AD作为身份提供商。你应该能够用AAD替换相关的Okta部件。你有@alexwlchan的解决方案吗?你能回答你的问题吗?我在寻找同样的答案。