我有一个用VB.NET编写的带有server后端的旧windows应用程序。目前,新用户的添加、删除、添加权限等都由旧的审批工作流系统管理。获得批准后,用户详细信息和权限将手动插入到SQL server数据库表中。
我试图将此应用程序与赛点号标识和访问管理集成在一起。因此,新用户的添加、删除、更新和添加权限等将通过Sailpoint完成。为此,我需要创建一个WEB,它可以由Sailpoint调用并公开功能(添加用户/删除用户/添加权限)。这个API的唯一使用者是SailPoint。
我是OAuth的新手,以下是我遇到的资助类型。但不确定我应该在这个特定的场景中使用哪一个。
1.默示赠款
2.资源所有者密码凭据授予
3.客户证书授予
4.“授权守则”授予
我已经对不同的身份验证方法进行了研究,我们可以使用这些方法来保护web。但是,由于这个新的web将在互联网上提供,所以仍然不清楚在这个场景中要应用哪一个。我已经尝试过用OAuth 2.0和密码授予类型来开发POC,引用这篇文章。但是当我在互联网上阅读文章时,我发现密码授予类型没有那么安全,而且是不推荐的。
请建议在此方案中使用哪种授予类型(客户端凭据/授权代码/隐式)。我相信授权代码是在用户直接试图访问API时使用的。在这个场景中,当SailPoint在他们的UI中插入一个新用户时,他们将以编程的方式调用后端的API。
发布于 2021-04-21 13:43:21
我认为在这种情况下使用客户端凭据是一种很好的方法,因为IIQ和您的Web之间的通信可以被认为是API到API之间的通信,我的意思是,IIQ在这个通信中代表自己。
有关更多详细信息,请参阅本文- https://dzone.com/articles/four-most-used-rest-api-authentication-methods (我自己的粗体部分)
OAuth 2.0提供了几个适用于不同类型的API客户端的流行流: 授权代码是最常见的流程,它主要用于服务器端和移动web应用程序.这种流程类似于用户使用Facebook或Google帐户注册web应用程序的方式。 隐式-此流程要求客户端直接检索访问令牌。当用户的凭据无法存储在客户端代码中,因为第三方可以很容易地访问它们时,它非常有用。它适用于不包括任何服务器组件的web、桌面和移动应用程序。 资源所有者密码-需要使用用户名和密码登录。在这种情况下,凭据将是请求的一部分。此流程仅适用于受信任的客户端(例如,API提供程序发布的官方应用程序)。 客户端凭据--用于服务器到服务器身份验证的,该流程描述了当客户端应用程序代表自己而不是代表任何单个用户行事时的一种方法。在大多数情况下,该流程提供了允许用户在客户端应用程序中指定凭据的方法,从而可以访问客户端控制下的资源。
https://stackoverflow.com/questions/66206947
复制相似问题