我想使用OneLogin编写一个命令行程序,该程序接受用户名/密码并生成可用于向其他站点进行身份验证的SAML断言。
问题是调用“生成SAML断言”API本身需要从API凭据生成的访问令牌。因此,要将我的应用程序分发给用户,需要我使用API凭据进行调用。这没关系,但是允许呼叫者POST到SAML资源的唯一授权配置文件是“全部管理”,这是一种比安全更多的权限。
有人做过这样的事吗?
OneLogin人员,您是否可以添加API凭据类型以仅调用SAML断言API?或者你可以让API打开。 (请注意,AWS的“AssumeRoleWithSAML”API不需要用户凭据 - API的重点在于您拥有要转换为其他凭据类型的凭据。)
答案 0 :(得分:1)
您是否向开发人员提供了生成SAML令牌的个人应用程序,或者您是否构建了返回SAML令牌的Web服务?
前者不好(因为应用程序有密钥),后者更加安全。
当我们降低使用密钥(ID& secret)获取SAML断言所需的权限时,您仍应考虑将其构建为Web服务。您的命令行工具应调用以获取SAML断言。
因为与流行观点相反 - 基于云的意味着更好的安全性。
答案 1 :(得分:0)
我们将很快发布更新以将令牌类型降低为"读/写用户,"因为您只是在交换SAML断言的用户凭据。这样就够了吗?
注意:我最初错误地写了#34; Read"而不是"读/写"
答案 2 :(得分:0)
现在有一个Authentication Only
API范围,可以烘焙到您的应用程序中。
此范围内可用的端点包括:
编写Web应用程序以获取SAML断言将是最佳解决方案,并让CLI与之交互。特别是如果您考虑" Log User Out",只要您能猜出ID(简单),就可以注销任何给定的用户。
如果您信任您的员工,您可以在CLI中嵌入Authentication Only
范围的客户端ID /机密。这正是我们在使用OneLogin AWS-STS CLI工具的第一步所要做的。当然,我们可能会让一名流氓员工滥用此功能,但这是一个边缘案例,并且很容易撤销客户端ID /机密并推出具有新客户端ID /机密的新版本。