2016-04-04 100 views
1

我使用OAuth2和OpenAM 13.我需要我的客戶端應用程序能夠通過OpenAM「用戶信息」端點檢索用戶信息。 但是,我需要添加/增強提供的信息以在用戶配置文件中提供自定義信息。OPENAM:如何將信息添加到「用戶信息」OAuth2/OpenID Connect端點

我無法看到如何使用「用戶信息」端點執行此操作。 但是,使用「令牌信息」端點,添加信息非常容易(添加與配置文件名稱相匹配的範圍會自動將信息添加到JSON響應中)。我對「用戶信息」端點嘗試了相同的操作,但這不起作用。

在這篇文章中,我讀到了「用戶信息」端點信息可以通過使用'腳本'來增強。但我無法找到如何去做: OpenAM - Use OAuth2 Access Token to get User Details?

有人可以幫忙嗎?我真的很喜歡它。

非常感謝

回答

2

在默認索賠腳本,您可以通過

新增其他個人屬性,延長「scopeClaimsMap」的「曲線」鍵,並創建新的要求映射在「claimAttributes '地圖。

由於聲明腳本使用的是OpenAM的IDRepo API,因此您需要確保在配置的用戶數據存儲的「用戶屬性」部分中配置屬性。

示例:「配置文件」範圍的其他聲明「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」,必須在用戶的數據存儲配置進行配置(這是有默認情況下,如果你沒有改變任何東西)

+0

我如何才能找到這個「默認索賠腳本」文件? – maamaa

+1

您可以查看https://backstage.forgerock.com/docs/openam/13/dev-guide/chap-scripting –