首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用WSO2-AM处理JWT

用WSO2-AM处理JWT
EN

Stack Overflow用户
提问于 2018-01-18 13:26:29
回答 1查看 466关注 0票数 2

我们计划引入API管理解决方案,目前我们正在用WSO2 AM建立一个概念证明。我们希望使用API网关来检查某个消费者应用程序是否允许使用WSO2并限制请求速率。我从事身份工作流工作,我想知道消费应用程序如何在中间使用WSO2-AM将JWT令牌传递给后端服务。

首先,这是我们当前的场景:

无API网关

  1. 消费应用程序从身份提供者那里为其碳用户获取JWT令牌。JWT包含一些关于用户的声明,例如他/她所属的角色。
  2. 该应用程序调用该服务,并在授权HTTP报头中传递JWT令牌,如下所示:授权:承载
  3. 该服务验证JWT的颁发者和签名,并从中检索声明。

所以,这是非常直接的。现在,我们在应用程序和服务之间放置了一个API网关:

使用API网关

  1. 消费应用程序从身份提供者那里为其碳用户获取JWT令牌。
  2. 消费应用程序使用OAuth2来获取以下API调用的访问令牌。我们可以使用client_credentials授予类型,只需传递客户机id和客户端机密。我还没有尝试过,但是我们可以使用JWT授予类型(参见https://docs.wso2.com/display/ISCONNECTORS/Configuring+JWT+Grant+Type)并使用JWT将用户信息传递给API网关。
  3. 当使用JWT授予类型时,API网关根据标识提供者的公钥验证JWT。
  4. 访问令牌将返回给应用程序。
  5. 该应用程序向网关发送API请求,并在授权HTTP报头中传递访问令牌。
  6. 网关验证访问令牌。
  7. 网关将API请求转发给服务。

这就是我的问题:从1/2开始的JWT如何被传递给服务?

有一个关于“使用JWT将终端用户属性传递给后端”的文档(请参阅https://docs.wso2.com/display/AM210/Passing+Enduser+Attributes+to+the+Backend+Using+JWT),但这将引入一个新的JWT,由WSO2-AM发布和签名,我不确定这个JWT是否包含用于创建访问令牌(甚至原始JWT)的JWT的所有信息。

我可以想到的另一种方法是使用自定义HTTP报头将JWT通过网关传递到服务。我不能使用授权头(就像我们没有API网关一样),因为WSO2-AM需要该头中的访问令牌。

既然我对这两种解决方案都不满意,我想问专家:你会如何解决这一问题?

谢谢你,托尔斯顿

EN

回答 1

Stack Overflow用户

发布于 2018-01-19 07:31:56

我能想到的唯一可能就是在后端服务的自定义头中发送JWT令牌。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48322494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档