2016-04-04 13 views
1

OpenAMでOAuth2を使用しています。13. OpenAMの「ユーザー情報」エンドポイントを使用してユーザー情報を取得できるようにクライアントアプリケーションが必要です。 ただし、ユーザープロファイルにカスタム情報を提供するために提供される情報を追加/強化する必要があります。OPENAM:「ユーザー情報」に情報を追加する方法OAuth2/OpenID Connectエンドポイント

「ユーザー情報」エンドポイントでこれを行う方法がわかりませんでした。 しかし、 "トークン情報"エンドポイントでは、情報を簡単に追加できます(プロファイル名に一致するスコープを追加すると、JSON応答の情報が自動的に追加されます)。私は "User Information"エンドポイントについても同じことを試みましたが、これはうまくいかなかった。

この他のPOSTでは、「スクリプト」を使用して「ユーザー情報」エンドポイント情報を拡張できることを読んでいます。しかし、私はそれを行う方法を見つけることができませんでした: OpenAM - Use OAuth2 Access Token to get User Details?

誰か助けてもらえますか?私は本当にそれを気晴らします。

デフォルトで本当にありがとうございました

答えて

2

スクリプトを主張し、あなたは「scopeClaimsMap」の「プロファイル」キーを拡張

によって追加のプロファイル属性を追加して、「claimAttributesの新しい請求のためのマッピングを作成することができます'地図。

ClaimScriptは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をチェックすることができます –