当前位置: 首页 > 知识库问答 >
问题:

可以使用客户端凭据授权类型对SailPoint(IAM)将要使用的WEB API进行身份验证吗

强德厚
2023-03-14

我有一个用VB编写的旧windows应用程序。NET与SQL server后端。目前,新用户的添加、删除、添加权限等由旧的审批工作流系统管理。获得批准后,用户详细信息和权限将手动插入到SQL server数据库表中。

我正在尝试将此应用程序与SailPoint的身份和访问管理集成。因此,新用户的添加、删除更新和添加权限等将通过Sailpoint完成。为此,我需要创建一个可由Sailpoint调用的WEB API,并公开其功能(添加用户/删除用户/添加权限)。此API的唯一使用者是SailPoint。

我是OAuth的新手,下面是我遇到的授予类型。但是不确定在这个特定的场景中应该使用哪种类型。
1。隐式授予
2。资源所有者密码凭据授予
3。客户端凭据授予
4。授权代码授予

我研究了可以用来保护web api的不同身份验证方法。但是,由于这个新的web api将在互联网上提供,我们仍然不知道该在这个场景中应用哪一个。参考本文,我已经尝试过用OAuth 2.0开发一个POC,其密码授权类型为。但当我在互联网上阅读文章时,我发现密码授予类型并不是那么安全,而且不推荐使用。

您能否建议在这种情况下使用哪种授权类型(客户凭证/授权代码/隐式授权)。我相信授权码是在用户直接尝试访问API时使用的。在这种情况下,当SailPoint在其UI中插入新用户时,将以编程方式在后端调用API。

共有1个答案

呼延俊风
2023-03-14

我认为在这种情况下使用客户端凭据是一种很好的方法,因为IIQ和您的Web API之间的通信可以被视为API到API的通信,我的意思是,IIQ在这种通信中代表自己。

有关更多详细信息,请参阅本文-https://dzone.com/articles/four-most-used-rest-api-authentication-methods(我自己用粗体部分)

OAuth 2.0提供了几种适用于不同类型API客户端的流行流:

授权码——最常见的流程,主要用于服务器端和移动web应用程序。这个流程类似于用户使用Facebook或Google帐户注册到web应用程序的方式。

隐式-此流程要求客户端直接检索访问令牌。当用户凭据无法存储在客户端代码中时,此流程非常有用,因为第三方可以轻松访问这些凭据。它适用于不包括任何服务器组件的网络、桌面和移动应用程序

资源所有者密码-需要使用用户名和密码登录。在这种情况下,凭据将是请求的一部分。此流仅适用于受信任的客户端(例如,API提供程序发布的官方应用程序)。

客户机凭据——用于服务器到服务器的身份验证,该流程描述了当客户机应用程序代表自己而不是代表任何单个用户行事时的一种方法。在大多数情况下,此流提供了允许用户在客户端应用程序中指定其凭据的方法,因此它可以访问客户端控制下的资源。

 类似资料:
  • OAuth2 JWT 配置文件引入了将 JWT 用作授权授予和客户端身份验证的可能性。 JWT客户端身份验证功能独立于特定的授权类型,并且可以与任何授权类型一起使用,也可以与客户端凭据授权一起使用。 但是,使用 JWT 授权类型似乎与将客户端凭据授予与 JWT 客户端身份验证结合使用完全相同,只是语法略有不同。 在这两种情况下,客户端都会联系令牌终结点以获取访问令牌: vs

  • 问题内容: 我需要导入证书,以便向Spring Boot应用程序中的外部服务发出http请求。 我该如何设置Spring Boot来做到这一点? 那里有很多信息,但我发现所有这些都令人困惑。似乎我可能只需要创建类似“ truststore.jks”密钥库的内容并导入正确的证书,然后将一些条目添加到我的application.properties中即可。 问题答案: 打开您的终端或 回答所有问题。在

  • 我开发了夸库斯应用程序。我正在尝试通过LDAP服务器对Rest调用的endpoint进行身份验证。要求是,如果用户想要访问endpoint之前,它通过Active Directory对用户所属的组织进行身份验证。如果他属于并获得成功,那么它应该为用户授权。 有谁能帮上忙吗?Quarkus在Java的应用如何进行认证。 我已经介绍了https://quarkus.io/guides/security

  • 我正在尝试使用Sprint安全框架在Spring Boot中为我的HTTP请求设置授权。我是Spring Security的新手,我找不到任何关于我的情况的文档。 我知道我们必须重写WebSecurity配置适配器方法-configure(AuthenticationManagerBuilder) 这是我试图建立的流程。我的前端和后端托管在不同的域中,所以我也在寻找跨来源的授权。通过发布到REST

  • 问题内容: 我尝试阅读尽可能多的不同答案和帖子,但是我仍然不能完全满足自己的需求。我正在尝试找出处理用户身份验证,登录等的最佳方法(最有效,但大多数情况下更安全)。 我有一个运行在Express上的Node.js服务器;我有一个Angular.js网络应用程序;而且我有一个iOS应用。我使用Express /Node.js公开了RESTful API。 我读到的第一件事是使用cookie,并在服务

  • 问题内容: RESTEasy(一个JAX-RS实现)具有一个不错的客户端框架,例如: 您如何向此客户端提供HTTP身份验证凭据? 问题答案: 可以使用ClientExecutor提供凭据。