OAuth2 凭据(proto)
此扩展的限定名称为 envoy.http.injected_credentials.oauth2
注意
此扩展是功能性的,但尚未经过大量的生产运行时间,使用时请注意此问题。
此扩展的安全态势未知,应仅在上下游都可信的部署中使用。
提示
此扩展扩展了以下扩展类别,并可与其一起使用
此扩展必须使用以下类型 URL 中的一种进行配置
警告
此 API 功能当前正在开发中。标记为正在开发中的 API 功能不被认为是稳定的,不受 威胁模型 的涵盖,不受安全团队的支持,并且可能会发生重大更改。在了解上述所有要点之前,请勿使用此功能。
extensions.http.injected_credentials.oauth2.v3.OAuth2
[extensions.http.injected_credentials.oauth2.v3.OAuth2 proto]
OAuth2 扩展可用于从授权服务器检索 OAuth2 访问令牌,并将其注入代理请求中。目前,仅支持客户端凭据授权流程。访问令牌将使用 Authorization
标头作为承载令牌注入请求标头中。
{
"token_endpoint": {...},
"scopes": [],
"client_credentials": {...},
"token_fetch_retry_interval": {...}
}
- token_endpoint
(config.core.v3.HttpUri, REQUIRED) 授权服务器上的端点,用于从其检索访问令牌。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-3.2)。
- scopes
(repeated string) 可选的 OAuth 范围列表,将在授权请求中声明。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-4.4.2)。
- client_credentials
(extensions.http.injected_credentials.oauth2.v3.OAuth2.ClientCredentials, REQUIRED) 客户端凭据授权。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-4.4)。
- token_fetch_retry_interval
(Duration) 从身份提供者获取令牌的两次连续重试之间的间隔。默认值为 2 秒。间隔必须至少为 1 秒。
extensions.http.injected_credentials.oauth2.v3.OAuth2.ClientCredentials
[extensions.http.injected_credentials.oauth2.v3.OAuth2.ClientCredentials proto]
用于向授权服务器验证客户端的凭据。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-2.3)。
{
"client_id": ...,
"client_secret": {...},
"auth_type": ...
}
- client_id
(string, REQUIRED) 客户端 ID。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-2.3.1)。
- client_secret
(extensions.transport_sockets.tls.v3.SdsSecretConfig, REQUIRED) 客户端密钥。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-2.3.1)。
- auth_type
(extensions.http.injected_credentials.oauth2.v3.OAuth2.AuthType) 向授权服务器发送凭据时使用的方法。有关详细信息,请参阅 [RFC 6749:OAuth 2.0 授权框架](https://www.rfc-editor.org/rfc/rfc6749#section-2.3.1)。
枚举 extensions.http.injected_credentials.oauth2.v3.OAuth2.AuthType
[extensions.http.injected_credentials.oauth2.v3.OAuth2.AuthType proto]
- BASIC_AUTH
(DEFAULT)
client_id
和client_secret
将使用 HTTP 基本身份验证方案发送。
- URL_ENCODED_BODY
client_id
和client_secret
将在 URL 编码的请求主体中发送。此类型应仅在 Auth 服务器不支持基本身份验证时使用。