1

通过 API 令牌创建会话后访问第三方应用程序以及使用 OneLogin SAML 和 MFA 的 AWS API 凭证相关

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

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

但是有没有办法使用这个会话令牌通过 API 生成一个带有这个会话令牌的 SAML 断言,而不是向 API 端点提交用户名/密码?
我不想为此在本地存储用户凭据。在启用 MFA 的情况下,这将无法以无缝方式工作。

4

1 回答 1

1

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

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

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

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

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

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

于 2017-04-05T15:55:48.883 回答