使用Mule进行JWT令牌验证

时间:2018-05-22 17:08:34

标签: validation mule jwt token using

我正在尝试使用JWT访问令牌创建oAuth策略来保护API。可以通过调用外部URL来验证该令牌。

我使用以下RAML作为我的Mule代理。

#%RAML 1.0
title: Custom API
version: 1
baseUri: http://localhost:8081
securitySchemes:
  oauth_2_0:
    description: |
      This API supports OAuth 2.0 for authenticating all API requests.
    type: OAuth 2.0
    describedBy:
      headers:
        authorization:
          description: |
             Used to send a valid OAuth 2 access token. Do not use with the "access_token" query
             string parameter.
          type: string      
      responses:
        401:
          description: |
            Bad or expired token. This can happen if the user or the API revoked or expired an
            access token. To fix, you should re-authenticate the user.
        403:
          description: |
            Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Unfortunately,
            re-authenticating the user won't help here.
/hello:
  get:
  securedBy: [oauth_2_0]

但是,mule在验证外部服务时无法发送Authorization标头。

1 个答案:

答案 0 :(得分:0)

您发布的RAML很好,但仅提供信息。您必须将JWT oAuth令牌强制执行功能实现为自定义策略或作为Mule流的一部分。目前,没有针对JWT令牌验证的开箱即用政策。

通常,为了验证令牌,调用外部端点,将令牌作为内部[策略]请求的一部分。这意味着策略本身将解析传入的用户请求,并从查询参数或授权标头中删除令牌(删除承载部分)。 AFAIK,授权标头永远不会发送到内省令牌URL。