我目前正在使用WSO 2 apim 3.2。
我有使用WSO 2 APIM上公开的API的Angular 应用程序。
这些Angular应用程序的最终用户直接使用Keycloak验证和检索令牌(OAuth2)。
WSO 2生成:
<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
<ams:code>900908</ams:code>
<ams:message>Resource forbidden </ams:message>
<ams:description>User is NOT authorized to access the Resource. API Subscription validation failed.</ams:description>
</ams:fault>
我知道WSO 2想要识别想要使用API的应用程序。
我必须在HTTP请求中添加apikey或WSO 2生成的第二个令牌来验证我的Angular应用程序,但是:
我希望将API的使用限制在最终用户从Keycloak生成的令牌存在的情况下。
而且没有其他的保护/订阅。
如何为此配置WSO 2?
或许有最佳实践?这不是个好主意。
A schema of the target
我不想使用apikey,但我测试了。
WSO 2允许HTTP请求包含apikey。
但是WSO 2不验证令牌。
configuration
谢谢
1条答案
按热度按时间fv2wmkja1#
您可以在WSO 2 API管理器中将Keycloak配置为密钥管理器。请查看此处的参考-https://apim.docs.wso2.com/en/3.2.0/administer/key-managers/configure-keycloak-connector/#step-1-configure-keycloak。
当您登录到开发者门户时,您将看到作为密钥管理器的密钥cloak,您可以从Keycloak生成密钥,然后您可以使用相同的令牌访问开发者门户中的API请求。
在您的情况下,您可以从密钥掩蔽中获取令牌,WSO 2使用jwks端点或提供的证书来验证密钥掩蔽令牌。