如何在 openid 连接中将 subject(sub) 替换为 id_token 中的秘密字符串?
how to replace subject(sub) to a secret string in id_token at the openid connect?
oauth2 库:
https://github.com/Filsh/yii2-oauth2-server
https://github.com/bshaffer/oauth2-server-php
请注意,我系统中的用户 ID 是整数而不是字符串。
我的目的只是隐藏系统用户 ID。
id token 的步骤:
http://bshaffer.github.io/oauth2-server-php-docs/overview/openid-connect/
{
"iss": "localhost",
"sub": 2,
"aud": "-7IloKCawcvBwRijJeo7nsLxx1chC68L",
"iat": 1514518157,
"exp": 1514521757,
"auth_time": 1514518157,
"nonce": "dfsdsdsd"
}
md5('-7IloKCawcvBwRijJeo7nsLxx1chC68L' + 2) = 3C86CBBFF35AD3B6E609F5622D776531
我想将主题替换为 md5(client_id + 主题)
{
"iss": "localhost",
"sub": "3C86CBBFF35AD3B6E609F5622D776531",
"aud": "-7IloKCawcvBwRijJeo7nsLxx1chC68L",
"iat": 1514516044,
"exp": 1514519644,
"auth_time": 1514516044,
"nonce": "dfsdsdsd"
}
如果我理解您的愿望,OpenID 提供者可以为主题提供任何东西,只要它在特定依赖方的 OpenID 提供者处是唯一的。
OpenID Connect Identity Token Sub 是一个主题标识符,它是一个本地唯一的,并且在颁发者中永远不会重新分配给经过身份验证的实体的标识符,旨在由 OAuth 客户端使用。
Two Subject Identifier types (subject_types_supported) are defined by OpenID Connect and are Required to be present in the OpenID Provider Metadata:
public - 为所有 OAuth 客户端提供相同的子(主题)值。如果提供者在其发现文档中没有 subject_types_supported 元素,则这是默认值。
pairwise - 为每个 OAuth 客户端提供不同的 Sub 值,以免 OAuth 客户端在未经许可的情况下关联最终用户的活动。
OpenID Connect 提供商的 OpenID Connect 发现文档应该在 subject_types_supported 元素中列出其支持的主题标识符类型。
如果数组中列出了不止一种类型,OAuth 客户端可以选择在注册期间使用 subject_type 参数提供其首选标识符类型。
Sub 的长度不得超过 255 个 ASCII 字符。
Sub Sub 值是区分大小写的字符串。
oauth2 库:
https://github.com/Filsh/yii2-oauth2-server
https://github.com/bshaffer/oauth2-server-php
请注意,我系统中的用户 ID 是整数而不是字符串。
我的目的只是隐藏系统用户 ID。
id token 的步骤:
http://bshaffer.github.io/oauth2-server-php-docs/overview/openid-connect/
{
"iss": "localhost",
"sub": 2,
"aud": "-7IloKCawcvBwRijJeo7nsLxx1chC68L",
"iat": 1514518157,
"exp": 1514521757,
"auth_time": 1514518157,
"nonce": "dfsdsdsd"
}
md5('-7IloKCawcvBwRijJeo7nsLxx1chC68L' + 2) = 3C86CBBFF35AD3B6E609F5622D776531
我想将主题替换为 md5(client_id + 主题)
{
"iss": "localhost",
"sub": "3C86CBBFF35AD3B6E609F5622D776531",
"aud": "-7IloKCawcvBwRijJeo7nsLxx1chC68L",
"iat": 1514516044,
"exp": 1514519644,
"auth_time": 1514516044,
"nonce": "dfsdsdsd"
}
如果我理解您的愿望,OpenID 提供者可以为主题提供任何东西,只要它在特定依赖方的 OpenID 提供者处是唯一的。
OpenID Connect Identity Token Sub 是一个主题标识符,它是一个本地唯一的,并且在颁发者中永远不会重新分配给经过身份验证的实体的标识符,旨在由 OAuth 客户端使用。
Two Subject Identifier types (subject_types_supported) are defined by OpenID Connect and are Required to be present in the OpenID Provider Metadata:
public - 为所有 OAuth 客户端提供相同的子(主题)值。如果提供者在其发现文档中没有 subject_types_supported 元素,则这是默认值。
pairwise - 为每个 OAuth 客户端提供不同的 Sub 值,以免 OAuth 客户端在未经许可的情况下关联最终用户的活动。
OpenID Connect 提供商的 OpenID Connect 发现文档应该在 subject_types_supported 元素中列出其支持的主题标识符类型。
如果数组中列出了不止一种类型,OAuth 客户端可以选择在注册期间使用 subject_type 参数提供其首选标识符类型。
Sub 的长度不得超过 255 个 ASCII 字符。
Sub Sub 值是区分大小写的字符串。