在通过API创建会话后获取SAML断言

时间:2017-04-04 07:11:41

标签: saml saml-2.0 onelogin

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后,这将无法以无缝方式工作。

1 个答案:

答案 0 :(得分:1)

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

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

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

我能想到的唯一可以解决的解决方案是在您的代码中暂时缓存用户凭据更长的时间。通过这种方式,它们可以被重用以在更长的时间内生成新的SAML断言,但在(比如说)8小时后会被有效地丢弃。

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

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