我正在使用 OAuth2.0 通过 WSO2IS 进行身份验证和授权。我在 ESB 上有多个 API。在那里,用户可以授予对 API1 和 API2 的访问权限,但不能授予 API3。
是否可以定义自定义范围以限制客户端访问所有 API?
如果不可能,如何保护 API 免受未经授权的访问?
旁注:目前,我只能通过定义不同的应用程序来限制访问。但是,这不合适,因为我必须在客户端管理多个 clientID 和 clientSecrets。
是的..您可以为此定义...默认情况下,Identity Server 在授予访问令牌之前不会验证任何范围参数。为此,您需要根据您的资源服务器实现一个新的 OAuth 回调处理程序类。我想这篇博客文章解释了它。但是,据我所知,WSO2 身份服务器不提供基于范围的访问令牌。访问令牌是按客户端和资源所有者颁发的。不是每个客户、资源所有者和范围。这已经在 wso2 公共邮件列表中讨论过,它将在下一个版本中修复。