【问题标题】:"Your request included an invalid SAML response" in integrating Azure AD and AWS在集成 Azure AD 和 AWS 时“您的请求包含无效的 SAML 响应”
【发布时间】:2017-11-03 22:37:22
【问题描述】:

按照https://docs.microsoft.com/en-us/azure/active-directory/active-directory-saas-amazon-web-service-tutorial 中概述的步骤以及 Dirk_Nelson 在 cmets 中指出的那样:

错误:您的请求包含无效的 SAML 响应。要注销, 点击这里。

在浏览了 AWS 的文档之后,我发现了这篇文章: http://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_saml.html#troubleshoot_saml_invalid-response

  1. 属性名称 rolesessionname 更改为 RoleSessionName

  2. 属性名称角色更改为角色

  3. 对于 RoleSessionName 和 Role,命名空间必须为 https://aws.amazon.com/SAML/Attributes

在 Azure 门户中进行这些更改后,我能够 身份验证成功。

虽然我已经有了这个。或者,亚马逊故障排除页面说这是由于角色缺少 ARN 的属性值。

<AttributeValue>arn:aws:iam::account-number:role/role-name1,arn:aws:iam::account-number:saml-provider/provider-name</AttributeValue>

我也试过这个,但没有运气。还有什么可能遗漏的吗?

最终目标是使用存储在 Azure AD 中的用户通过 Amazon Cognito 登录,这似乎是一种解决方案,除非我将其解释为相反的路线我需要什么。

【问题讨论】:

  • 看起来 SAML 响应中缺少属性。没有示例 SAML 响应就很难调试。
  • 请注意,SAML 响应可能包含敏感数据;如果您选择这样做,请在发布前将其删除。
  • 似乎我需要将 Azure AD 中的角色绑定到用户(由于某种原因,我无法让组工作)。我现在可以成功地从 myapps.microsoft.com 转到 AWS,但是反过来呢?当我在 AWS 中时,我复制了 IAM 用户登录链接,但它不起作用。我是否需要设置用户配置才能使其正常工作?
  • 反向是什么意思?您的意思是您正在尝试使用 AWS IAM 链接使用 Azure 用户登录?那是行不通的。
  • 是的,我的 Web 应用使用了 Cognito,它与 Aws IAM 挂钩,但我也希望能够通过它对 Azure Ad 用户进行身份验证。

标签: php azure amazon-web-services


【解决方案1】:

总结以上讨论

  • 无效的 SAML 响应是由于 SAML 响应中缺少属性(角色)

用例

  • 使用自定义 UI 在 PHP 应用程序中使用 Azure AD 实现身份验证

探索的解决方案

  • 将 Azure AD 与 Cognito 集成为 SAML IdP
  • 将 Azure AD 与 Cognito 集成为 OIDC 提供程序
  • 在您的应用程序中直接使用 Azure AD 作为OIDC provider
  • 完全跳过 AWS 集成并使用自定义库

问题

  • 以上所有解决方案都重定向到微软登录页面

后续步骤

  • 一定要跳过 AWS 集成
  • 使用默认 Azure 登录 UI 是最简单的解决方案,但不可行
  • 寻找一些可以用来做同样事情的 PHP 库。大多数 IdP,例如 Cognito、Auth0 tec。提供可用于使用用户名和密码务实地获取令牌的 SDK,即一个人可以实现自己的登录 UI 并提取用户名、密码并在 SDK 方法中使用它。检查是否可以使用Azure SDKs
  • this 库的可能解决方案,但未经测试且不在 PHP 中。

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2019-03-13
    • 2023-01-23
    • 2022-07-04
    • 2015-05-19
    • 2021-04-08
    • 1970-01-01
    • 2012-04-05
    相关资源
    最近更新 更多