OpenID更新授权
- class oauthlib.openid.connect.core.grant_types.RefreshTokenGrant(request_validator=None, **kwargs)[源代码]
- add_id_token(token, token_handler, request)[源代码]
构造一个初始版本的id_Token,并让请求验证器对其进行签名或加密。
此方法的AUTHORIZATION_CODE版本用于根据代码存储检索现时值。
- id_token_hash(value, hashfunc=<built-in function openssl_sha256>)
其值是ACCESS_TOKE值的ASCII表示的八位字节散列的最左半部分的Bas64url编码,其中使用的散列算法是ID令牌的Jose标头的ALG标头参数中使用的散列算法。
例如,如果ALG是RS256,则使用SHA-256散列ACCESS_TOKEN值,然后取最左边的128位并对它们进行Bas64url编码。例如,如果ALG是HS512,则使用SHA-512散列代码值,然后取最左边的256位并对它们进行Bas64url编码。C_hash值是区分大小写的字符串。
来自OIDC规范的散列示例(使用RS256绑定到JWS):
代码:Qcb0Orv1zh30vL1MPRsbm-diHiMwcLyZvn1arpZv-Jxf_11jnpEX3Tgfvk
C_HASH:LDktKdoQak3Pk0cnXxCltA
- openid_authorization_validator(request)
执行OpenID Connect特定授权请求验证。
- 随机数
可选。用于将客户端会话与ID令牌相关联并减少重播攻击的字符串值。该值将未经修改地从身份验证请求传递到ID令牌。用于防止攻击者猜测值的随机数值中必须存在足够的信息量
- 显示
可选。ASCII字符串值,指定授权服务器如何向最终用户显示身份验证和同意用户界面页面。定义的值为:
页面-授权服务器应显示与完整的用户代理页面视图一致的身份验证和同意用户界面。如果未指定显示参数,则这是默认显示模式。
弹出-授权服务器应显示与弹出的用户代理窗口一致的身份验证和同意UI。弹出式用户代理窗口的大小应与登录对话框的大小相适应,并且不应遮盖弹出窗口的整个窗口。
触摸-授权服务器应显示与利用触摸界面的设备一致的身份验证和同意用户界面。
WAP-授权服务器应显示与“功能电话”类型显示一致的验证和同意用户界面。
授权服务器还可以尝试检测用户代理的能力并呈现适当的显示。
- 提示
可选。以空格分隔的区分大小写的ASCII字符串值列表,指定授权服务器是否提示最终用户进行重新身份验证和同意。定义的值为:
无-授权服务器不得显示任何身份验证或同意用户界面页面。如果终端用户尚未经过身份验证,或者客户端没有对请求的声明进行预配置的同意,或者不满足处理请求的其他条件,则会返回错误。错误代码通常是LOGIN_REQUIRED、INTERATION_REQUIRED或3.1.2.6节中定义的其他代码。这可以用作检查现有身份验证和/或同意的方法。
登录-授权服务器应提示最终用户重新进行身份验证。如果它无法重新验证终端用户,则必须返回错误,通常为LOGIN_REQUIRED。
同意-授权服务器应在将信息返回给客户端之前提示最终用户同意。如果无法获得同意,则必须返回一个错误,通常为CONVERENT_REQUIRED。
SELECT_ACCOUNT-授权服务器应提示最终用户选择用户帐户。这使得在授权服务器上具有多个帐户的终端用户能够在他们可能具有当前会话的多个帐户中进行选择。如果它无法获得最终用户所做的帐户选择,则必须返回错误,通常为ACCOUNT_SELECTION_REQUIRED。
客户端可以使用Prompt参数来确保终端用户在当前会话中仍然存在或引起对请求的注意。如果此参数包含NONE和任何其他值,则返回错误。
- max_age
可选。最长身份验证期限。指定自上次OP主动对终端用户进行身份验证以来允许的经过时间(以秒为单位)。如果运行时间大于此值,则OP必须尝试主动重新验证最终用户。(max_age请求参数对应于OpenID 2.0页面 [OpenID.PAPE] Max_auth_age请求参数。)使用max_age时,返回的ID令牌必须包括auth_time声明值。
- ui_locales
可选。最终用户的首选语言和用户界面脚本,以空格分隔的BCP47列表表示 [RFC5646] 语言标记值,按首选项排序。例如,值“fr-CA fr en”表示优先选择加拿大所说的法语,然后是法语(没有地区名称),最后是英语(没有地区名称)。如果OpenID提供程序不支持某些或所有请求的区域设置,则不会出现错误。
- id_token_hint
可选。以前由授权服务器颁发的ID令牌作为有关最终用户当前或过去与客户端的身份验证会话的提示进行传递。如果ID令牌标识的终端用户已登录或通过请求登录,则授权服务器返回肯定响应;否则,它应返回错误,如LOGIN_REQUIRED。如果可能,当使用PROMPT=NONE时,应该出现id_Token_hint,否则可能会返回INVALID_REQUEST错误;但是,服务器应该在可能的情况下成功响应,即使它不存在。当授权服务器用作id_Token_hint值时,不需要将其列为ID令牌的受众。如果由RP从OP接收的ID令牌是加密的,则要将其用作id_Token_hint,客户端必须解密包含在加密的ID令牌中的签名的ID令牌。客户端可以使用使服务器能够解密ID令牌的密钥向认证服务器重新加密签名的ID令牌,并使用重新加密的ID令牌作为id_Token_hint值。
- login_hint
可选。提示授权服务器有关最终用户可能用于登录的登录标识符(如有必要)。如果RP首先要求终端用户提供其电子邮件地址(或其他标识符),然后希望将该值作为提示传递给发现的授权服务,则该提示可由RP使用。建议提示值与用于发现的值匹配。该值也可以是为PHONE_NUMBER声明指定的格式的电话号码。此参数的使用由操作员自行决定。
- acr_values
可选。请求的身份验证上下文类引用值。以空格分隔的字符串,指定授权服务器被请求用于处理此身份验证请求的ACR值,这些值按优先顺序显示。执行的身份验证所满足的身份验证上下文类将作为ACR声明值返回,如第2节中所指定。此参数将ACR声明作为自愿声明进行请求。
- validate_authorization_request(request)
验证OpenID连接授权请求参数。
- 返回:
(作用域列表,请求信息字典)