我正试图借助客户端凭据流从另一个API(API1(调用API(API2(。是否可以只允许访问API2的某些部分?
为了提供一些上下文,当从API1调用API2时,我目前使用的是一个服务帐户,该帐户决定允许访问API2的哪些部分。服务帐户在API2中创建和配置(具有角色(,并提前与API1共享。
我正试图通过oAuth的客户端凭据流实现这一点,但在API中找不到任何关于受限访问的信息。我相信ApiScopes在这种情况下不会起作用。
您能让我知道在客户端凭据流中是否可以限制API访问吗?或者这可以在任何其他流程中实现?
谨致问候,Siva
是的,您可以使用ASP.NET Core中内置的授权系统,根据接收到的访问令牌中的声明来控制访问。AddJwtBearer所做的是将您的访问令牌(经过身份验证后(转换为ClaimsPrincipalUser对象。
有关详细信息,请参阅以下链接:
- ASP.NET Core中基于策略的授权
- ASP.NET Core中基于声明的授权
或者,我们可以为API2定义一个新的应用程序角色。此角色将有权访问API2的选定部分。然后,我们可以将此角色添加到您在客户端凭据流中使用的Client_id中。