Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
POST /v1/authProviders/exchangeToken
代码 (Code) | 消息 (Message) | 数据类型 (Datatype) |
---|---|---|
200 |
成功的响应。(A successful response.) |
|
0 |
意外的错误响应。(An unexpected error response.) |
RequiredAttribute 允许指定一组属性,所有这些属性都需要由身份验证提供程序返回。如果在中央签发的令牌的外部声明中缺少任何属性,则对该 IdP 的身份验证请求将被视为失败。(RequiredAttribute allows to specify a set of attributes which ALL are required to be returned by the auth provider. If any attribute is missing within the external claims of the token issued by Central, the authentication request to this IdP is considered failed.)
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
attributeKey |
字符串 (String) |
||||
attributeValue |
字符串 (String) |
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
代码 (code) |
整数 (Integer) |
int32 |
|||
消息 (message) |
字符串 (String) |
||||
详情 (details) |
ProtobufAny 列表 (List of ProtobufAny) |
Any
包含任意序列化后的 Protocol Buffer 消息,以及描述该序列化消息类型的 URL。
Protobuf 库提供实用函数或 Any 类型的附加生成方法来支持打包/解包 Any 值。
示例 1:在 C++ 中打包和解包消息。
Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
示例 2:在 Java 中打包和解包消息。
Foo foo = ...; Any any = Any.pack(foo); ... if (any.is(Foo.class)) { foo = any.unpack(Foo.class); } // or ... if (any.isSameTypeAs(Foo.getDefaultInstance())) { foo = any.unpack(Foo.getDefaultInstance()); }
Example 3: Pack and unpack a message in Python.
foo = Foo(...) any = Any() any.Pack(foo) ... if any.Is(Foo.DESCRIPTOR): any.Unpack(foo) ...
Example 4: Pack and unpack a message in Go
foo := &pb.Foo{...} any, err := anypb.New(foo) if err != nil { ... } ... foo := &pb.Foo{} if err := any.UnmarshalTo(foo); err != nil { ... }
Protobuf 库提供的打包方法默认使用 'type.googleapis.com/full.type.name' 作为类型 URL,而解包方法仅使用类型 URL 中最后一个 '/' 后的完全限定类型名称,例如 "foo.bar.com/x/y.z" 将产生类型名称 "y.z"。
Any
值的 JSON 表示使用反序列化、嵌入消息的常规表示,并添加一个包含类型 URL 的附加字段 @type
。示例
package google.profile; message Person { string first_name = 1; string last_name = 2; }
{ "@type": "type.googleapis.com/google.profile.Person", "firstName": <string>, "lastName": <string> }
如果嵌入的消息类型是众所周知的并且具有自定义 JSON 表示,则该表示将被嵌入,并添加一个 value
字段,该字段除了 @type
字段外还包含自定义 JSON。示例(对于消息 [google.protobuf.Duration][])
{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
@type |
字符串 (String) |
唯一标识序列化 Protocol Buffer 消息类型的 URL/资源名称。此字符串必须包含至少一个“/”字符。URL 路径的最后一个段必须表示类型的完全限定名称(如 |
下一个标签:15。
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
id |
字符串 (String) |
||||
name |
字符串 (String) |
||||
type |
字符串 (String) |
||||
uiEndpoint |
字符串 (String) |
||||
enabled |
布尔值 |
||||
config |
|
Config 包含特定于身份验证提供程序的配置。每个配置选项根据给定的身份验证提供程序类型而有所不同。OIDC:- “issuer”:根据 https://openid.net/specs/openid-connect-core-1_0.html#IssuerIdentifier 的 OIDC 发行者。- “client_id”:根据 https://www.rfc-editor.org/rfc/rfc6749.html#section-2.2 的客户端 ID。- “client_secret”:根据 https://www.rfc-editor.org/rfc/rfc6749.html#section-2.3.1 的客户端密钥。- “do_not_use_client_secret”:如果您只想创建仅具有客户端 ID 而没有客户端密钥的配置,则设置为“true”。- “mode”:OIDC 回调模式,从“fragment”、“post”或“query”中选择。- “disable_offline_access_scope”:如果不需要颁发脱机令牌,则设置为“true”。- “extra_scopes”:根据 https://www.rfc-editor.org/rfc/rfc6749.html#section-3.3 请求的额外范围的空格分隔字符串,除了“openid profile email”。OpenShift Auth:不支持额外的配置选项。用户 PKI:- “keys”:受信任的证书 PEM 编码。SAML:- “sp_issuer”:根据 https://datatracker.ietf.org/doc/html/rfc7522#section-3 的服务提供商发行者。- “idp_metadata_url”:根据 https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf 的元数据 URL。- “idp_issuer”:IdP 发行者。- “idp_cert_pem”:IdP 端点的 PEM 编码证书。- “idp_sso_url”:IdP SSO URL。- “idp_nameid_format”:IdP 名称 ID 格式。IAP:- “audience”:要使用的受众。 |
|||
loginUrl |
字符串 (String) |
登录 URL 将由后端提供,并且可能未在请求中指定。 |
|||
validated |
布尔值 |
||||
extraUiEndpoints |
|
除了 |
|||
active |
布尔值 |
||||
requiredAttributes |
|||||
traits |
|||||
claimMappings |
|
指定将从 IdP 令牌复制到 Rox 令牌属性的声明。此映射中的每个键都包含我们想要映射的 IdP 令牌中的路径。路径由“.”符号分隔。例如,如果 IdP 令牌有效负载如下所示:{ “a”: { “b” : “c”, “d”: true, “e”: [ “val1”, “val2”, “val3” ], “f”: [ true, false, false ], “g”: 123.0, “h”: [ 1, 2, 3] } } 那么“a.b”将是一个有效的键,而“a.z”则不是。我们支持以下类型的声明:* 字符串(路径“a.b”)* 布尔值(路径“a.d”)* 字符串数组(路径“a.e”)* 布尔值数组(路径“a.f.”)我们不支持以下类型的声明:* 复杂声明(路径“a”)* 浮点/整数声明(路径“a.g”)* 浮点/整数数组声明(路径“a.h”)此映射中的每个值都包含我们想要向其添加声明的 Rox 令牌属性名称。例如,如果值为“groups”,则声明将位于令牌中的“external_user.Attributes.groups”中。注意:我们仅支持 OIDC 身份验证提供程序的此功能。 |
|||
lastUpdated |
日期 |
上次更新指示身份验证提供程序上次更新的时间。如果在此时间戳之前由身份验证提供程序颁发了令牌,则这些令牌将被视为无效。随后,所有客户端都必须重新颁发其令牌(通过刷新或额外的登录尝试)。 |
日期时间 |
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
serialStr |
字符串 (String) |
||||
serial |
字符串 (String) |
int64 |
|||
id |
字符串 (String) |
||||
type |
UNKNOWN_SERVICE、SENSOR_SERVICE、CENTRAL_SERVICE、CENTRAL_DB_SERVICE、REMOTE_SERVICE、COLLECTOR_SERVICE、MONITORING_UI_SERVICE、MONITORING_DB_SERVICE、MONITORING_CLIENT_SERVICE、BENCHMARK_SERVICE、SCANNER_SERVICE、SCANNER_DB_SERVICE、ADMISSION_CONTROL_SERVICE、SCANNER_V4_INDEXER_SERVICE、SCANNER_V4_MATCHER_SERVICE、SCANNER_V4_DB_SERVICE、SCANNER_V4_SERVICE、REGISTRANT_SERVICE, |
||||
initBundleId |
字符串 (String) |
Next available tag: 18
SCANNER_V4_SERVICE:当 Scanner V4 以组合模式运行时使用。
枚举值 |
---|
UNKNOWN_SERVICE |
SENSOR_SERVICE |
CENTRAL_SERVICE |
CENTRAL_DB_SERVICE |
REMOTE_SERVICE |
COLLECTOR_SERVICE |
MONITORING_UI_SERVICE |
MONITORING_DB_SERVICE |
MONITORING_CLIENT_SERVICE |
BENCHMARK_SERVICE |
SCANNER_SERVICE |
SCANNER_DB_SERVICE |
ADMISSION_CONTROL_SERVICE |
SCANNER_V4_INDEXER_SERVICE |
SCANNER_V4_MATCHER_SERVICE |
SCANNER_V4_DB_SERVICE |
SCANNER_V4_SERVICE |
REGISTRANT_SERVICE |
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
mutabilityMode |
ALLOW_MUTATE,ALLOW_MUTATE_FORCED, |
||||
可见性 |
可见 (VISIBLE),隐藏 (HIDDEN), |
||||
来源 |
命令式 (IMPERATIVE),默认 (DEFAULT),声明式 (DECLARATIVE),声明式孤立 (DECLARATIVE_ORPHANED), |
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
用户名 |
字符串 (String) |
||||
友好名称 |
字符串 (String) |
||||
权限 |
|||||
角色 |
角色与旧格式的 storage.Role 兼容,因此仅包含角色名称和关联权限。
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
name |
字符串 (String) |
||||
访问资源 |
StorageAccess 的映射 |
实验性功能。注意:目前请避免使用 MutabilityMode。它将在未来被替换 (ROX-14276)。MutabilityMode 指定对象是否以及如何被修改。默认为 ALLOW_MUTATE,表示没有修改限制;这等同于没有指定 MutabilityMode。ALLOW_MUTATE_FORCED 禁止所有修改操作,除了强制删除对象。
更改此字段的状态时务必小心。例如,将对象从 ALLOW_MUTATE 修改为 ALLOW_MUTATE_FORCED 是允许的,但这将禁止对它的任何进一步更改,包括将其改回 ALLOW_MUTATE。
枚举值 |
---|
ALLOW_MUTATE |
ALLOW_MUTATE_FORCED |
来源指定对象的来源。对象可以有四种不同的来源:- 命令式 (IMPERATIVE):对象是通过 API 创建的。这是默认假设。- 默认 (DEFAULT):对象是默认对象,例如默认角色、访问范围等。- 声明式 (DECLARATIVE):对象是通过声明式配置创建的。- 声明式孤立 (DECLARATIVE_ORPHANED):对象是通过声明式配置创建的,然后未能成功删除(例如,因为它被另一个对象引用)。根据来源,不同的规则适用于不同的对象。声明式 (DECLARATIVE) 来源的对象不允许通过 API 修改,只能通过声明式配置修改。此外,它们可能不会引用命令式 (IMPERATIVE) 来源的对象。默认 (DEFAULT) 来源的对象不允许通过 API 或声明式配置修改。它们可以被所有其他对象引用。命令式 (IMPERATIVE) 来源的对象允许通过 API 修改,不允许通过声明式配置修改。它们可以引用所有其他对象。声明式孤立 (DECLARATIVE_ORPHANED) 来源的对象不允许通过 API 或声明式配置修改。如果声明式孤立 (DECLARATIVE_ORPHANED) 资源在声明式配置中重新定义,则可以再次变为声明式 (DECLARATIVE)。此来源的对象在其不再被其他资源引用后将立即从系统中清除。它们可以被所有其他对象引用。
枚举值 |
---|
命令式 (IMPERATIVE) |
默认 (DEFAULT) |
声明式 (DECLARATIVE) |
声明式孤立 (DECLARATIVE_ORPHANED) |
ResourceToAccess 表示权限的集合。它与旧格式的 storage.Role 兼容,并在仅需要聚合权限的地方替换它。
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
访问资源 |
StorageAccess 的映射 |
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
用户ID |
字符串 (String) |
||||
服务ID |
|||||
过期时间 |
日期 |
日期时间 |
|||
刷新URL |
字符串 (String) |
||||
身份验证提供程序 |
|||||
用户信息 |
|||||
用户属性 |
|||||
idpToken |
字符串 (String) |
底层身份提供程序返回给 ACS 的令牌。此字段仅在少数特定情况下设置。不要依赖此字段在响应中存在。 |
字段名称 (Field Name) | 必填 (Required) | 可为空 (Nullable) | 类型 (Type) | 描述 (Description) | 格式 (Format) |
---|---|---|---|---|---|
外部令牌 |
字符串 (String) |
外部身份验证令牌。服务器将在响应和日志中屏蔽此凭据的值。 |
|||
type |
字符串 (String) |
||||
状态 |
字符串 (String) |