9

我们希望允许我们的用户通过使用密码和 MFA 登录 OneLogin 来检索给定 AWS 角色的一组临时 CLI 凭证。我们有一个可行的解决方案,但它要求用户每 60 分钟对 OneLogin(包括 MFA)进行一次完全重新身份验证,因为 AWS 临时凭证到期。我认为这不会发生 - 我们的用户习惯于与真实 IAM 用户绑定的永久 API 凭证。

理想情况下,我们希望允许用户每天进行一次身份验证,安全地缓存生成的 SAML 断言,并根据需要使用它来透明地刷新 AWS API 凭证。我正在考虑类似aws-keychain的东西,它会使用本地操作系统凭证存储来记住 SAML 断言,并且仅在其 OneLogin 会话超时时提示用户输入。

这几乎可以按原样工作。问题是 OneLoginsaml_assertion和端点返回的 SAML 断言在和字段verify_factor上设置了三分钟的最后期限。SubjectConditions

有没有办法做我们想做的事,还是我们试图绕过核心 SAML 原则?

4

2 回答 2

1

我们正在正式在我们的官方 CLI 工具中添加一个选项,以类似于您所描述的那样重复使用用户凭据。

本质上,我们的 CLI 工具有一个选项可以在后台重用用户/密码,以不断刷新用户配置文件中的访问信息,因此当用户提供一次凭据时,访问信息将在过期之前得到更新。

但不幸的是,至少目前,如果应用程序策略需要 MFA,则无法绕过 MFA 部分。它需要 MFA 来刷新凭据。

如果您必须拥有 MFA,您始终可以使用 OneLogin MFA API 将 MFA 流程烘焙到工具中......

在这里查看:https ://github.com/onelogin/onelogin-aws-cli-assume-role/pull/5

于 2017-11-01T23:49:51.303 回答
0

这里接受的答案不再正确。现在可以在会话开始时对用户进行身份验证并验证 MFA,然后每小时刷新一次会话,而无需输入更多的 MFA 令牌。

为此,您必须使用--loopCLI 工具的参数并在 OneLogin 中具有相应的应用程序策略,以启用“如果在过去 X 分钟内收到 OTP,则跳过”设置。

https://developers.onelogin.com/api-docs/1/samples/aws-cli

于 2019-01-29T21:16:15.200 回答