How to configure PhenixID Authentication Services to properly populate JWT array claims

Requirements

  • PhenixID Authentication Services version 4.0 or higher
  • PhenixID Authentication Services configured with an OpenID Connect Provider

Configuration

  • Login to Configuration Manager
  • Select Scenarios->OIDC->YOUR_OIDC_PROVIDER
  • Click Execution flow
  • Expand Token endpoint
  • If the array data is in the session (which is the case when a SAML IdP is used for authentication), click add valve and add a PropertyFromSessionToItem valve. Source should be set to the name of the SAML multivalue attribute. Example:
  • Place the valve after SessionLoadValve and before GenerateJWTTokenVavle, using drag-and-drop
  • Add a new valve, PropertyJoinValve. Set the source to the same as above. Example:
  • Place the valve after the previously added PropertyFromSessionToItem valve, using drag-and-drop
  • Expand the GenerateJWTTokenVavle
  • Add a new token attribute.
    name = same as above, for example groups
    value = {{item.same_as_above}}, for example {{item.groups}}
    type = array

    Example:
  • Click Save
  • Expand the PropertyJoinValve
  • Click Advanced
  • Copy the ID value
  • Click on the top Advanced tab
  • Click on the pen to the right of Pipe valves
  • Search for the previously copied ID
  • Make the following changes to the valve config:
    • Remove the dest parameter (whole row)
    • Change the separator value to \",\"

Example:

  • Click Stage changes and Commit changes
  • Select Scenarios->OIDC->YOUR_OIDC_PROVIDER
  • Click Execution flow
  • Expand Token endpoint
  • Expand GenerateJWTTokenVavle
  • Click Advanced
  • Copy the ID value
  • Click on the top Advanced tab
  • Click on the pen to the right of Pipe valves
  • Search for the previously copied ID
  • Make the following changes to the valve config:
    • Locate the token attribute (in this example groups)
    • Change the value to [\"{{item.groups}}\"]   (change groups to match your property name)

Example:

  • Click Stage changes and Commit changes