为啥'id'在keycloak中被称为'sub'?

Posted

技术标签:

【中文标题】为啥\'id\'在keycloak中被称为\'sub\'?【英文标题】:Why is 'id' called 'sub' in keycloak?为什么'id'在keycloak中被称为'sub'? 【发布时间】:2018-10-28 01:29:13 【问题描述】:

我正在查看新的 Keycloak Beta 4 API。当我获取用户帐户信息时,web ui 中称为“id”的内容在帐户对象中返回为“sub”。

 sub: '25a37fd0-d10e-40ca-af6c-821f20e01be8',
  name: 'Barrack Obama',
  preferred_username: 'obama@whitehouse.gov',
  given_name: 'Barrack',
  family_name: 'Obama',
  email: 'obama@whitehouse.gov' 

什么是“sub”,这是一个将数据库对象映射到的安全 uuid 吗?

【问题讨论】:

【参考方案1】:

根据 keycloak 文档

Action Token 剖析

Action 令牌是一个标准的 Json Web 令牌,使用活动领域密钥签名,其中有效负载包含多个字段:

typ - Identification of the action (e.g. verify-email)

iat and exp - Times of token validity

sub - ID of the user

azp - Client name

iss - Issuer - URL of the issuing realm

aud - Audience - list containing URL of the issuing realm

asid - ID of the authentication session (optional)

nonce - Random nonce to guarantee uniqueness of use if the operation can only be executed once (optional)

请参考以下链接https://www.keycloak.org/docs/latest/server_development/index.html#_action_token_anatomy

原因可能是他们希望保留名称的唯一性。

【讨论】:

以上是关于为啥'id'在keycloak中被称为'sub'?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的对象会在 C++ 中被覆盖?

为啥 keycloak 在页面刷新时未经授权?

过程也可以被调用?为啥?啥样的是?

为啥 Angular 无法识别用户是不是使用 keycloak 登录?

为啥 Keycloak 会不断重新部署相同的 .jar 文件?

为啥 keycloak 会删除重定向 uri 中的 SSL?