JWT认证组件

更新时间:
复制为 MD 格式

JWT认证组件实现了基于JWT(JSON Web Token)进行认证鉴权的功能。支持从HTTP请求的URL参数、请求头或Cookie中解析JWT,并验证该Token是否有权限访问。

功能类型

认证鉴权

字段说明

ComponentConfig

参数

类型

是否必填

默认值

描述

Config

JwtSpec

-

JWT认证配置。

JwtSpec

参数

类型

是否必填

默认值

描述

JwkConfig

JwkConfigSpec

-

配置JWK的方式。

JwtSources

JwtSourcesSpec

-

提取JWT的方式,仅支持单一提取源。

JwkConfigSpec

参数

类型

是否必填

默认值

描述

Type

JwkConfigType

-

JWK配置类型。

RemoteJwks

RemoteJwksSpec

-

远程JWKS配置。

JwkConfigType

描述

Remote

远程获取JWK。

RemoteJwksSpec

参数

类型

是否必填

默认值

描述

Url

URI

-

远程JWK地址。

URI

完整的FQDN名称,包含协议、主机名和路径。ALB实例将通过所在交换机的IP对该地址发起访问,需确保目标地址网络可达;如果目标地址位于公网,则ALB所在交换机需配置公网SNAT。

示例

http://example.com/jwt/pubkeys

远程JWK返回内容按RFC 7518标准实现,返回值示例如下:

{
    "keys": [
        {
            "e": "公钥的指数,例如AQAB",
            "kid": "Key ID",
            "kty": "使用的加密算法的家族,例如RSA,必填,大小写敏感",
            "alg": "使用的具体的加密算法,例如RS256,必填,大小写敏感",
            "use": "密钥的用途,例如sig,用于签名",
            "n": "公钥的模值"
        },
        {
            "kty": "oct",
            "k": "yMsZ3vkBL4fEwJrNOPW6RztnYpdQ0UlVTum7H1qAehD",
            "alg": "HS256"
        }
    ]
}

JwtSourcesSpec

参数

类型

是否必填

默认值

描述

Headers

JwtHeaderSpec[]

-

HTTP请求头中提取JWT。

Params

String[]

-

URL参数中提取JWT。

Cookies

String[]

-

Cookie中提取JWT。

JwtHeaderSpec

参数

类型

是否必填

默认值

描述

Name

String

Authorization

请求头中的字段名。

ValuePrefix

String

Bearer

请求头对应值的前缀,在提取Token前会被去除。

错误码信息

HTTP状态码

出错信息

原因说明

401

Jwt is missing

请求未提供JWT。

401

Jwks remote fetch is failed

远程Jwks地址访问超时。

401

Jwt verification fails

JWT payload校验失败。

401

Jwt is expired

请求提供的Token已超时。

401

Jwt signature is an invalid Base64url encoded

请求提供的Token无法base64解码。