2016-10-31 52 views
6

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

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

这几乎按原样工作。值得注意的是,OneLogin的saml_assertionverify_factor端点返回的SAML断言在SubjectConditions字段上设置了三分钟截止日期。

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

+0

有你设法解决这个问题? –

+0

@PavelNikolov不,我们没有。我上面阐述的方法可能是错误的;我们希望MFA验证与建立用户会话相关联,而不是与发布SAML断言相关联。然后,只要我的用户会话有效,我就可以自动生成匹配的SAML断言并将其转换为AWS中的会话令牌。我认为我们不能用现在的OneLogin API设计来实现这一点。 –

+0

我不知道它是否有助于您的使用案例,但STS会话现在可以有效使用长达36小时。 – Evan

回答

1

我们正在正式添加一个选项到我们的官方CLI工具中,以重用与您所描述的相似的用户凭证。

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

但不幸的是,至少在这个时候,如果应用程序策略需要MFA,那么就无法绕过MFA部分。它需要该MFA刷新凭证。

如果有MFA,你可以随时使用OneLogin MFA的API在MFA流入工具烤...

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