OIDC Attribute Transcoder for list of objects

Ian Bobbitt ibobbitt at globalnoc.iu.edu
Mon Jul 15 19:03:00 UTC 2024


I'm trying to use the OIDC Relying Party IdP plugin to authenticate 
users through PeeringDB. I have this working for "normal" attributes, 
but the last attribute I need to transcode is a list of objects. From 
their documentation[1] it looks like:

{
   // ...
   "networks": [
     {
       "perms": 15,
       "asn": 63311,
       "name": "20C",
       "id": 20
     },
     {
       "perms": 15,
       "asn": 33713,
       "name": "United IX",
       "id": 7889
     }
   ]
}

When authenticating through, I get a DEBUG message that there isn't a 
transcoding rule for the attribute (as expected, since I haven't 
configured one.)

2024-07-15 18:40:44,543 - 2001:db8::1 - DEBUG 
[net.shibboleth.idp.plugin.authn.oidc.rp.impl.ValidateOIDCAuthentication:595] 
- Profile Action ValidateOIDCAuthentication: No transcoding rule for 
Attribute 
'{"networks":[{"id":123,"name":"example","asn":65512,"perms":15}]}'

However, since this isn't a plain string attribute, I can't use the 
existing OIDCStringTranscoder. Is it possible to transcode this another way?

I assume on the SAML2 side, I will need to use a Scripted attribute to 
make it something the SP can deal with.

[1] https://docs.peeringdb.com/oauth/

-- 
Ian Bobbitt
Manager, Infrastructure and Core Systems
GlobalNOC at Indiana University



More information about the users mailing list