本系列文之後也会置於个人网站
接着来看看爲什麽更新帐号资讯,在「快速开始」会有那些变化。
这与client scope和claim有关。关於後者之後会在详细说说,而目前就先了解一下这个现象发生的原因。
首先,在我们取得token
的时候曾申明需要的scope
爲openid profile email
。其中profile
这个scope爲这次变化的主要原因。
来到Keycloak管理选单下的 Client Scopes ,然後找到 profile 。
接着将页签切换到 Mappers , 你会看见一堆与 User Attribute 有关的设定。
拿 gender 来说,就是将使用者的性别属性(User Attribute -- gender),映射到Token的上做爲gender
的claim。此外,还可以设定应该出现在哪里,像是ID权杖、存取权杖或是使用者资讯。关於前两者之後还会透过分析Token格式说明,届时也会再次看到gender claim。而userinfo
,在「Device Code(2)」的小范例中其实有用到,再实战篇解析同样会看到,但要取得并不困难,在取得存取权杖後,使用http://localhost:8080/auth/realms/quick-start/protocol/openid-connect/userinfo
这个endpoint,便会取得与使用者相关的讯息:
{
"sub": "345b1bca-9805-4b4b-a0f8-da2c70176c59",
"website": "https://bob.id",
"email_verified": true,
"birthdate": "2021/10/03",
"group_roles": [
"x_default-roles-quick-start",
"x_offline_access",
"x_uma_authorization",
"x_Group Role A",
"x_quick-start-example-role1"
],
"gender": "man",
"preferred_username": "bob",
"middle_name": "J",
"given_name": "Bob",
"picture": "https://cdn.pixabay.com/photo/2013/07/13/10/07/man-156584_960_720.png",
"x": [
"/Group A"
],
"nickname": "小明",
"name": "Bob Lee",
"group_attr": "A",
"family_name": "Lee",
"email": "[email protected]"
}
不过依我的观察,在「快速开始」并没有与这个endpoint互动。profile
的资讯是oidc-client
透过id_token
解析再做整理而来的。
其他属性同样会因爲 profile
scope,而添加到token
里,譬如:birthdate
且除了 User Attribute 外, User Property 同样可能被处理到Token里面。像是使用者的名字firstName
在Token上呈现的cliam就是given_name
。
<<: [DAY28] 用 hyperdrive 来微调超参数
>>: Day29 跟着官方文件学习Laravel-VSCode 开发PHP & Laravel
Q:多个传送者去分配同一条channel? FDM(分频) V.S TDM(分时) 可以看: FDM...
今日文章目录: 需求说明 事前准备 需求说明 针对不同用途的toDoList。像是:工作用的toD...
按照之前的进度制作,现在按下▶Player应该会魔性地扭动起来,但就没有其他效果了,接下来就改造Pl...
2021 最後一季拉!!! 倒数 3 个月 当兵有破百 每年的此时此刻也进入破百的阶段拉!!! 前...
之前为方便快速了解我们程序完整的功能, 所以把所有的资料都放在Controller里面。 今天这篇我...