Skip to main content

1. 简介

"OAuth 2.0授权框架"[RFC6749]定义了scope参数,允许OAuth客户端指定所请求的范围,即访问令牌的有限能力。这种机制足以实现静态场景和粗粒度授权请求,例如"给我对资源所有者配置文件的读取访问权限"。但是,它不足以指定细粒度授权要求,例如"请让我向商家A转账45欧元"或"请给我对目录A的读取访问权限和对文件X的写入访问权限"。

本规范引入了一个新参数authorization_details,允许客户端使用JSON[RFC8259]数据结构的表达能力来指定其细粒度授权要求。

例如,信用转账的授权请求(在多个开放银行计划中称为"支付发起")可以使用如下JSON对象表示:

{
"type": "payment_initiation",
"locations": [
"https://example.com/payments"
],
"instructedAmount": {
"currency": "EUR",
"amount": "123.50"
},
"creditorName": "Merchant A",
"creditorAccount": {
"bic": "ABCIDEFFXXX",
"iban": "DE02100100109307118603"
},
"remittanceInformationUnstructured": "Ref Number Merchant"
}

此对象包含有关预期支付的详细信息,例如金额、货币和债权人,这些信息是通知用户并获得其同意所必需的。授权服务器(AS)和相应的资源服务器(RS)(提供支付发起API)将共同执行此同意。

有关开放银行和电子签名领域新用例带来的挑战的全面讨论,请参见[Transaction-Auth]。

除了促进自定义授权请求外,本规范还引入了一组通用数据类型字段,可在不同API中使用。

1.1. 惯例和术语 (Conventions and Terminology)

本文档中的关键词"MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"NOT RECOMMENDED"、"MAY"和"OPTIONAL"应按照BCP 14[RFC2119][RFC8174]中的描述进行解释,当且仅当它们以全大写形式出现时,如此处所示。

本规范使用"OAuth 2.0授权框架"[RFC6749]定义的术语"访问令牌"、"刷新令牌"、"授权服务器"(AS)、"资源服务器"(RS)、"授权端点"、"授权请求"、"授权响应"、"令牌端点"、"授权类型"、"访问令牌请求"、"访问令牌响应"和"客户端"。