Foo foo = ...; Any any; any.PackFrom(foo); ... if (any.UnpackTo(&foo)) { ... }
PATCH /v1/authProviders/{id}
RequiredAttribute 允许指定一组属性,身份验证提供程序必须返回所有这些属性。如果身份验证提供程序在 Central 发行的令牌的外部声明中缺少任何属性,则对该 IdP 的身份验证请求将被视为失败。
字段名称 | 必填 (Required) | 可为空 | 类型 | 描述 (Description) | 格式 |
---|---|---|---|---|---|
attributeKey |
字符串 |
||||
attributeValue |
字符串 |
字段名称 | 必填 (Required) | 可为空 | 类型 | 描述 (Description) | 格式 |
---|---|---|---|---|---|
名称 |
字符串 |
||||
启用 |
布尔值 |
字段名称 | 必填 (Required) | 可为空 | 类型 | 描述 (Description) | 格式 |
---|---|---|---|---|---|
代码 |
整数 |
int32 |
|||
消息 |
字符串 |
||||
详情 |
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" }
字段名称 | 必填 (Required) | 可为空 | 类型 | 描述 (Description) | 格式 |
---|---|---|---|---|---|
@type |
字符串 |
唯一标识序列化协议缓冲区消息类型的 URL/资源名称。此字符串必须包含至少一个“/”字符。URL 路径的最后一部分必须表示类型的完全限定名称(如 |
下一个标签:15。
字段名称 | 必填 (Required) | 可为空 | 类型 | 描述 (Description) | 格式 |
---|---|---|---|---|---|
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”:要使用的受众。 |
|||
登录URL |
字符串 |
登录 URL 将由后端提供,并且可能不会在请求中指定。 |
|||
已验证 |
布尔值 |
||||
extraUiEndpoints |
|
除了 |
|||
活动 |
布尔值 |
||||
requiredAttributes |
|||||
特性 |
|||||
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 身份验证提供程序的此功能。 |
|||
最后更新时间 |
日期 |
最后更新时间表示身份验证提供程序最后一次更新的时间。如果在此时间戳之前由身份验证提供程序颁发了令牌,则这些令牌将被视为无效。随后,所有客户端都必须重新颁发其令牌(通过刷新或其他登录尝试)。 |
日期时间 |
字段名称 | 必填 (Required) | 可为空 | 类型 | 描述 (Description) | 格式 |
---|---|---|---|---|---|
可变性模式 |
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:对象是通过声明式配置创建的,然后未能成功删除(例如,因为它被另一个对象引用)。根据来源,不同的规则适用于不同的对象。不允许通过 API 修改具有 DECLARATIVE 来源的对象,只能通过声明式配置修改。此外,它们可能不会引用具有 IMPERATIVE 来源的对象。不允许通过 API 或声明式配置修改具有 DEFAULT 来源的对象。它们可以被所有其他对象引用。允许通过 API 修改具有 IMPERATIVE 来源的对象,但不能通过声明式配置修改。它们可以引用所有其他对象。不允许通过 API 或声明式配置修改具有 DECLARATIVE_ORPHANED 来源的对象。如果在声明式配置中重新定义,DECLARATIVE_ORPHANED 资源可以再次变为 DECLARATIVE。此来源的对象在不再被其他资源引用后将立即从系统中清除。它们可以被所有其他对象引用。
枚举值 |
---|
IMPERATIVE |
DEFAULT |
DECLARATIVE |
DECLARATIVE_ORPHANED |