OPENAM:如何将信息添加到"用户信息"OAuth2 / OpenID Connect端点



我将OAuth2与OpenAM 13一起使用。我需要我的客户端应用程序能够通过OpenAM"用户信息"端点检索用户信息。但是,我需要添加/增强所提供的信息,以便在用户配置文件中提供自定义信息。

我不知道如何使用"用户信息"端点来实现这一点。但是,使用"令牌信息"端点可以很容易地添加信息(添加与配置文件名称匹配的作用域会自动在JSON响应中添加信息)。我对"用户信息"端点尝试了同样的操作,但没有成功。

在另一篇POST中,我读到"用户信息"端点信息可以通过使用"脚本"来增强。然而,我找不到如何做到这一点:OpenAM-使用OAuth2访问令牌获取用户详细信息?

有人能帮忙吗?我真的很感激。

非常感谢

在默认索赔脚本中,您可以通过添加其他配置文件属性

扩展"scopeClaimsMap"的"profile"键,并在"claimAttributes"映射中为新声明创建映射。

由于声明脚本使用OpenAM的IDRepo API,因此您需要确保在已配置的用户数据存储的"用户属性"部分中配置了属性。

示例:"profile"范围的附加声明"employee_number"。

claimAttributes = [
    "email": attributeRetriever.curry("mail"),
    "address": { claim, identity, requested -> [ "formatted" : attributeRetriever("postaladdress", claim, identity, requested) ] },
    "phone_number": attributeRetriever.curry("telephonenumber"),
    "given_name": attributeRetriever.curry("givenname"),
    "zoneinfo": attributeRetriever.curry("preferredtimezone"),
    "family_name": attributeRetriever.curry("sn"),
    "locale": attributeRetriever.curry("preferredlocale"),
    "name": attributeRetriever.curry("cn"),
    "employee_number": attributeRetriever.curry("employeeNumber")
     ]
scopeClaimsMap = [
    "email": [ "email" ],
    "address": [ "address" ],
    "phone": [ "phone_number" ],
    "profile": [ "given_name", "zoneinfo", "family_name", "locale", "name", "email", "employee_number" ]
 ]

属性"employeeNumber"必须在用户数据存储配置中配置(如果您没有更改任何内容,则默认情况下会在那里)