【问题标题】:Getting a SAML assertion after creating a session via API通过 API 创建会话后获取 SAML 断言
【发布时间】:2017-04-04 07:11:41
【问题描述】:

Accessing Third Party Apps After Creating A Session Via API TokenAWS API credentials with OneLogin SAML and MFA 相关

由于 AWS assumeRoleWithSAML 临时安全凭证的有效期仅为一小时,并且我们有几个不同的角色假设用户每次需要切换角色或获取新角色时输入用户名/密码会非常烦人证书因为有效期短。对于网络基地 OneLogin 的使用来说,这完全是奇怪的,他一整天甚至一周都登录一次(取决于政策)。

我知道如何通过 API 获取会话。至少这会将用户需要输入用户名/密码的次数减少到两次。一次在网络上,一次在 CLI 上。

但是有没有办法使用这个会话令牌通过 API 生成一个 SAML 断言,而不是向 API 端点提交用户名/密码?
我不想为此在本地存储用户凭据。如果启用 MFA,这将无法无缝运行。

【问题讨论】:

    标签: saml saml-2.0 onelogin


    【解决方案1】:

    虽然能够为任何用户生成 SAML 断言(无需 MFA 和用户/通行证)似乎是一个很好的解决方法,但不幸的是,这充满了安全隐患。

    绕过常规身份验证的 API 有效地使该端点能够假定 AWS 中的任何用户。 “假设用户”权限在 OneLogin 中被非常严格地锁定,并不是那种轻易给出的东西。

    基本上,从安全角度来看,执行此操作的 API 似乎很危险。这可能是我们将其视为 oAuth 流(或 OpenID Connect 资源端点)的一部分,但在我们实施它之前,我们需要进行更多思考。

    我能想到的唯一可以在今天实施的折衷解决方案是在您的代码中临时缓存用户的凭据更长的时间。这样,它们可以在更长的时间内重复使用以生成新的 SAML 断言,但实际上会在(例如)八小时后被丢弃。

    这将不允许在应用策略上执行 MFA,但我们正在构建通过 API 请求和验证 MFA 的能力(即将推出),这样您就可以在应用中实施 MFA(独立于任何应用策略)变得可用。

    显然,理想的解决方案是让 AWS 让用户配置会话长度,但到目前为止,他们一直不愿意这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      相关资源
      最近更新 更多