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_idclient_secret 将使用 HTTP 基本身份验证方案发送。

URL_ENCODED_BODY

client_idclient_secret 将在 URL 编码的请求主体中发送。此类型应仅在 Auth 服务器不支持基本身份验证时使用。