我正在使用 Keycloak 作为应用程序的身份提供者。用户可以直接通过Keycloak创建账户,用户在注册时需要填写一些映射到OIDC标准声明的个人信息。
我在领域设置的“用户配置文件”中添加了我想要的属性。然而,这一步并不简单,因为 Keycloak 标准属性和 OIDC 标准声明之间没有 1:1 的映射。例如,Keycloak 标准主题和翻译需要
firstName
属性,而 OIDC 使用 given_name
声明。
对于特定用户,Keycloak 将这些属性映射到一组 OIDC 声明:
{
"address": {
"street_address": "Downtown Alley 12a",
"locality": "London",
"postal_code": "12345",
"country": "UK"
},
"birthdate": "1950-01-01",
"gender": "male",
"name": "John Doe",
"given_name": "John",
"family_name": "Doe",
"email": "[email protected]"
}
但是,我不得不在反复试验的过程中创建这些属性。对于显示名称,我使用了翻译键。
是否有更好的方式为 OIDC 标准声明创建属性?此外,是否可以在不创建自定义主题和添加自定义验证器的情况下使注册字段适应预期的类型和约束(例如生日日期、性别下拉列表)?我想我做错了。