Реализация претензии акта в скрипте претензий OIDC Groovy в OpenAM 13.5 - PullRequest
0 голосов
/ 12 марта 2019

Я ищу чистый способ добавить заявку с вложенными претензиями ( act претензия) в сценарии претензий OIDC OpenAM 13.5.

Я нашел этот пример (реализация may_act https://forum.forgerock.com/2018/04/token-exchange-and-delegation/) и я попытался воспроизвести его в своем собственном скрипте, но это приводит к ошибкам.

def act = [:]
act.put("sub","test_value")
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"),
    "act": act
]

// {scope}: [ {claim}, ... ]
scopeClaimsMap = [
    "email": [ "email" ],
    "address": [ "address" ],
    "phone": [ "phone_number" ],
    "profile": [ "given_name", "zoneinfo", "family_name", "locale", "name", "act" ]
]

Тем не менее, кажется, что это решение не работает с механикой, которая реализованадалее в сценарии (см. строку 104 в ссылке): https://framagit.org/teddyber/openam/blob/6abc59040d06d996c981e94b404d79f0b97e6b2b/openam-scripting/src/main/groovy/oidc-claims-extension.groovy

Это первое решение приводит к ошибкам в журналах OAuth2Provider.

Я также пытался внедрить утверждение непосредственно перед концомсценария, но это приводит к нечитаемому JWT / id_token

computedClaims["act"] = act
return new UserInfoClaims((Map)computedClaims, (Map)compositeScopes)

Знаете ли вы, как лучше всего реализовать это, используя / сохраняя механику, которая реализована в этом сценарии?

...