Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
GET /v1/authProviders/{id}
RequiredAttribute 允许指定一组属性,所有这些属性都需要由身份提供者返回。如果在 Central 发行的令牌的外部声明中缺少任何属性,则对该 IdP 的身份验证请求将被视为失败。
字段名称 | 必填 | 可空 | 类型 | 描述 | 格式 |
---|---|---|---|---|---|
attributeKey |
字符串 |
||||
attributeValue |
字符串 |
字段名称 | 必填 | 可空 | 类型 | 描述 | 格式 |
---|---|---|---|---|---|
code |
整数 |
int32 |
|||
message |
字符串 |
||||
details |
ProtobufAny 列表 |
Any
包含任意序列化的协议缓冲区消息以及描述序列化消息类型的 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 表示,则该表示将被嵌入,并添加一个包含自定义 JSON 的字段 value
以及 @type
字段。示例(对于消息 [google.protobuf.Duration][])
{ "@type": "type.googleapis.com/google.protobuf.Duration", "value": "1.212s" }
字段名称 | 必填 | 可空 | 类型 | 描述 | 格式 |
---|---|---|---|---|---|
@type |
字符串 |
唯一标识序列化协议缓冲区消息类型的 URL/资源名称。此字符串必须包含至少一个“/”字符。URL 路径的最后一部分必须表示类型的完全限定名称(如 |
下一个标签:15。
字段名称 | 必填 | 可空 | 类型 | 描述 | 格式 |
---|---|---|---|---|---|
id |
字符串 |
||||
名称 |
字符串 |
||||
类型 |
字符串 |
||||
uiEndpoint |
字符串 |
||||
已启用 |
布尔值 |
||||
配置 |
|
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 |
字符串 |
登录 URL 将由后端提供,并且可能不会在请求中指定。 |
|||
已验证 |
布尔值 |
||||
extraUiEndpoints |
|
除了 |
|||
活动 |
布尔值 |
||||
requiredAttributes |
|||||
特征 |
|||||
claimMappings |
|
指定将复制到 Rox 令牌属性的 IdP 令牌中的声明。此映射中的每个键都包含我们要映射的 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 |
日期 |
上次更新指示身份验证提供程序上次更新的时间。如果在此时间戳之前由身份验证提供程序颁发了令牌,则这些令牌将被视为无效。随后,所有客户端都必须重新颁发其令牌(通过刷新或额外的登录尝试)。 |
日期时间 |
字段名称 | 必填 | 可空 | 类型 | 描述 | 格式 |
---|---|---|---|---|---|
mutabilityMode |
ALLOW_MUTATE, ALLOW_MUTATE_FORCED, |
||||
可见性 |
VISIBLE, HIDDEN, |
||||
来源 |
IMPERATIVE, DEFAULT, DECLARATIVE, DECLARATIVE_ORPHANED, |
实验性。注意:请暂时避免使用 MutabilityMode。它将在未来被替换(ROX-14276)。MutabilityMode 指定对象是否以及如何修改。默认为 ALLOW_MUTATE,这意味着没有修改限制;这等效于没有 MutabilityMode 说明。ALLOW_MUTATE_FORCED 禁止所有修改操作,除非强制位打开的对象删除。
更改此字段的状态时要小心。例如,将对象从 ALLOW_MUTATE 修改为 ALLOW_MUTATE_FORCED 是允许的,但这将禁止对其进行任何进一步的更改,包括将其修改回 ALLOW_MUTATE。
枚举值 |
---|
ALLOW_MUTATE |
ALLOW_MUTATE_FORCED |
Origin 属性指定对象的来源。对象可以有四种不同的来源:- 命令式 (IMPERATIVE):对象是通过 API 创建的。这是默认假设。- 默认 (DEFAULT):对象是默认对象,例如默认角色、访问范围等。- 声明式 (DECLARATIVE):对象是通过声明式配置创建的。- 声明式孤儿 (DECLARATIVE_ORPHANED):对象是通过声明式配置创建的,然后未能成功删除(例如,因为它被其他对象引用)。基于来源,不同的规则适用于不同的对象。具有声明式 (DECLARATIVE) 来源的对象不允许通过 API 修改,只能通过声明式配置修改。此外,它们可能不能引用具有命令式 (IMPERATIVE) 来源的对象。具有默认 (DEFAULT) 来源的对象不允许通过 API 或声明式配置进行修改。它们可以被所有其他对象引用。具有命令式 (IMPERATIVE) 来源的对象允许通过 API 修改,不允许通过声明式配置修改。它们可以引用所有其他对象。具有声明式孤儿 (DECLARATIVE_ORPHANED) 来源的对象不允许通过 API 或声明式配置进行修改。如果声明式孤儿 (DECLARATIVE_ORPHANED) 资源在声明式配置中重新定义,则可以再次变为声明式 (DECLARATIVE)。具有此来源的对象将在不再被其他资源引用后立即从系统中清除。它们可以被所有其他对象引用。
枚举值 |
---|
命令式 (IMPERATIVE) |
默认 (DEFAULT) |
声明式 (DECLARATIVE) |
声明式孤儿 (DECLARATIVE_ORPHANED) |