2016-04-04 7 views
1

Я использую OAuth2 с OpenAM 13. Мне нужно, чтобы мое клиентское приложение могло получать информацию о пользователе с помощью конечной точки OpenAM «Информация о пользователе» , Однако мне нужно добавить/улучшить информацию, предоставленную для предоставления пользовательской информации в профиле пользователя.OPENAM: Как добавить информацию в «Информация о пользователе» Конечная точка OAuth2/OpenID Connect

Я не мог видеть, как это сделать с конечной точкой «Информация о пользователе». Однако с конечной точкой «Информация о токенах» очень легко добавить информацию (добавление областей, соответствующих имени профиля, автоматически добавляет информацию в ответ JSON). Я пробовал то же самое для конечной точки «Информация о пользователе», но это не сработало.

В этом другом POST я прочитал, что информацию о конечной точке «Информация о пользователе» можно повысить, используя «скрипт». Однако я не смог найти, как это сделать: OpenAM - Use OAuth2 Access Token to get User Details?

Может кто-то помочь в этом? Я бы действительно его воспринял.

Большое спасибо

ответ

2

В сценарии на претензии по умолчанию вы можете добавить дополнительные атрибуты профиля с

простирающийся ключ «профиль» в «scopeClaimsMap» и создать отображение для нового иска в «claimAttributes ' карта.

Поскольку сценарий претензий использует IDRepo API OpenAM, вам необходимо убедиться, что атрибуты настроены в разделе «Пользовательские атрибуты» настроенного пользовательского хранилища данных.

Пример: Дополнительное требование «employee_number» для области «profile».

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» должен быть сконфигурирован в пользовательском хранилище данных конфигурации (которые есть по умолчанию, если вы ничего не меняли)

+0

Как я могу найти этот файл «претензии по умолчанию скрипт»? – maamaa

+1

Вы можете проверить https://backstage.forgerock.com/docs/openam/13/dev-guide/chap-scripting –