2016-04-04 10 views
1

Ich verwende OAuth2 mit OpenAM 13. Ich brauche meine Clientanwendung, um Benutzerinformationen mithilfe des OpenAM-Endpunkts "Benutzerinformationen" abrufen zu können . Allerdings muss ich die bereitgestellten Informationen hinzufügen/erweitern, um benutzerdefinierte Informationen im Benutzerprofil bereitzustellen.OPENAM: Hinzufügen von Informationen zum OAuth2/OpenID Connect-Endpunkt "Benutzerinformationen"

Ich konnte nicht sehen, wie dies mit dem Endpunkt "Benutzerinformationen" zu tun ist. Mit dem Endpunkt "Token Information" ist es jedoch sehr einfach, Informationen hinzuzufügen (das Hinzufügen von Bereichen, die mit dem Profilnamen übereinstimmen, fügt automatisch die Informationen in der JSON-Antwort hinzu). Ich habe das gleiche für den "User Information" Endpunkt versucht, aber das hat nicht funktioniert.

In diesem anderen POST habe ich gelesen, dass die "Benutzerinformationen" Endpunkt-Informationen mit einem 'Skript' verbessert werden können. Allerdings konnte ich nicht finden, wie es geht: OpenAM - Use OAuth2 Access Token to get User Details?

Könnte jemand dabei helfen? Ich würde es wirklich begrüßen.

Vielen Dank

Antwort

2

Im Skript Standard Ansprüche Sie zusätzliche Profilattribute von

Verlängerung der ‚Profil‘ Schlüssel des ‚scopeClaimsMap‘ hinzufügen und eine Zuordnung für den neuen Anspruch in der ‚claimAttributes erstellen ' Karte.

Da das Claims-Skript die IDRepo-API von OpenAM verwendet, müssen Sie sicherstellen, dass die Attribute im Abschnitt "Benutzerattribute" des konfigurierten Benutzerdatenspeichers konfiguriert sind.

Beispiel: Zusatzanspruch "employee_number" für den Bereich "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" ] 
] 

Das Attribut ‚employeeNumber‘ muss in dem Benutzerdatenspeicher Config konfiguriert werden (standardmäßig ist, wenn Sie nichts geändert haben)

+0

Wie kann ich diese „default Ansprüche Skript“ Datei finden? – maamaa

+1

Sie können https://backstage.forgerock.com/docs/openam/13/dev-guide/chap-scripting überprüfen –