我想设计一个带有IBM connect的微服务架构,外部客户端需要在授权头(OAuth 2)中传递承载访问令牌,网关将传递存储的JWT(在授权调用期间生成和存储) )授权用户对内部API的声明。
是否有这样的内置配置?
(作为参考,WSO2提供了这种确切的行为:https://docs.wso2.com/display/AM210/Passing+Enduser+Attributes+to+the+Backend+Using+JWT)
答案 0 :(得分:1)
IBM API Connect中没有这样的内置功能。 您在IBM API Connect中提到的方案的可能实现可能是:
包含OAuth流的授权和令牌端点的OAuth提供程序API(IBM API Connect具有内置OAuth服务器)Implement an OAuth API Provider
作为后端微服务代理的API,由之前创建的OAuth提供程序API保护(这样,访问令牌就需要向此API发送请求)。在此API中,实现jwt-generate策略(IBM API Connect中的内置策略)以生成JWT令牌。 jwt-generate built-in policy
在此实现中,您可以将自定义信息添加到OAuth提供程序API生成的访问令牌(例如应用程序中的登录用户,设备ID ....),并在生成JWT时将这些值用作声明(oauth.resource-owner,发送请求的消费者应用程序的客户端ID。)