我可以使用OneLogin API在独立应用程序中生成SAML断言吗?

时间:2016-08-16 22:53:35

标签: api saml credentials onelogin

我想使用OneLogin编写一个命令行程序,该程序接受用户名/密码并生成可用于向其他站点进行身份验证的SAML断言。

问题是调用“生成SAML断言”API本身需要从API凭据生成的访问令牌。因此,要将我的应用程序分发给用户,需要我使用API​​凭据进行调用。这没关系,但是允许呼叫者POST到SAML资源的唯一授权配置文件是“全部管理”,这是一种比安全更多的权限。

有人做过这样的事吗?

OneLogin人员,您是否可以添加API凭据类型以仅调用SAML断言API?或者你可以让API打开。 (请注意,AWS的“AssumeRoleWithSAML”API不需要用户凭据 - API的重点在于您拥有要转换为其他凭据类型的凭据。)

3 个答案:

答案 0 :(得分:1)

您是否向开发人员提供了生成SAML令牌的个人应用程序,或者您是否构建了返回SAML令牌的Web服务?

前者不好(因为应用程序有密钥),后者更加安全。

当我们降低使用密钥(ID& secret)获取SAML断言所需的权限时,您仍应考虑将其构建为Web服务。您的命令行工具应调用以获取SAML断言。

因为与流行观点相反 - 基于云的意味着更好的安全性。

答案 1 :(得分:0)

我们将很快发布更新以将令牌类型降低为"读/写用户,"因为您只是在交换SAML断言的用户凭据。这样就够了吗?

注意:我最初错误地写了#34; Read"而不是"读/写"

答案 2 :(得分:0)

现在有一个Authentication Only API范围,可以烘焙到您的应用程序中。

此范围内可用的端点包括:

  • 验证因素(SAML断言)
  • 生成SAML断言
  • 验证因素(登录)
  • 创建会话登录令牌
  • 登录用户

编写Web应用程序以获取SAML断言将是最佳解决方案,并让CLI与之交互。特别是如果您考虑" Log User Out",只要您能猜出ID(简单),就可以注销任何给定的用户。 如果您信任您的员工,您可以在CLI中嵌入Authentication Only范围的客户端ID /机密。这正是我们在使用OneLogin AWS-STS CLI工具的第一步所要做的。当然,我们可能会让一名流氓员工滥用此功能,但这是一个边缘案例,并且很容易撤销客户端ID /机密并推出具有新客户端ID /机密的新版本。