首页 > 解决方案 > 我可以使用 Azure Active Directory 库 (ADAL) 从 Azure AD 获取 SAML 响应吗?

问题描述

我想写一个脚本:

  1. 使用设备代码机制将用户登录到 Azure AD
  2. 构造SAML SSO 请求 URL
  3. 使用步骤 1 中的身份验证发出 SAML 请求
  4. 获取 SAML 响应,并对其进行处理(不仅仅是在浏览器中打开它)

有没有办法使用 Azure AD 库来做到这一点?

我觉得这应该是可能的,我只是错过了一些东西。有任何想法吗?我尝试了很多东西并尝试了 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>

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

有任何想法吗?


其他想法

标签: azuresamladal

解决方案


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

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


推荐阅读