Skip to content

Keycloak SAML: Found an Attribute element with duplicated Name #222

@aanno

Description

@aanno

Steps to reproduce

  1. Enable SSO in nextcloud with user_saml using keycloak (4.0.0.Final) as idp like described at https://stackoverflow.com/questions/48400812/sso-with-saml-keycloak-and-nextcloud
  2. Trying to Log-in with the SSO test user configured in keycloak.
  3. After keycloak login and redirect to nextcloud, I get an 'Internal Server Error'.
    In the nextcloud log/protocol I found the following:
    OneLogin_Saml2_ValidationError: Found an Attribute element with duplicated Name
    
    /var/www/html/nextcloud/custom_apps/user_saml/3rdparty/vendor/onelogin/php-saml/lib/Saml2/Auth.php - line 177: OneLogin_Saml2_Response->getAttributes()
    /var/www/html/nextcloud/custom_apps/user_saml/lib/Controller/SAMLController.php - line 219: OneLogin_Saml2_Auth->processResponse('ONELOGIN_1111a8...')
    [internal function] OCA\User_SAML\Controller\SAMLController->assertionConsumerService()
    /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 161: call_user_func_array(Array, Array)
    /var/www/html/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 91: OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\User_SAML\Controller\SAMLController), 'assertionConsum...')
    /var/www/html/nextcloud/lib/private/AppFramework/App.php - line 115: OC\AppFramework\Http\Dispatcher->dispatch(Object(OCA\User_SAML\Controller\SAMLController), 'assertionConsum...')
    /var/www/html/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php - line 47: OC\AppFramework\App main('OCA\\User_SAML\\C...', 'assertionConsum...', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)
    [internal function] OC\AppFramework\Routing\RouteActionHandler->__invoke(Array)
    /var/www/html/nextcloud/lib/private/Route/Router.php - line 297: call_user_func(Object(OC\AppFramework\Routing\RouteActionHandler), Array)
    /var/www/html/nextcloud/lib/base.php - line 999: OC\Route\Router->match('/apps/user_saml...')
    /var/www/html/nextcloud/index.php - line 42: OC handleRequest()
    {main}
    

Expected behaviour

Well, I'not sure who is the culprit (keycloak or user_saml). However, the error message would be more helpful if it would tell us which attribute name(s) is/are duplicated.

Perhaps an setup option to allow duplicated attribute names could be considered.

Nextcloud version: (see Nextcloud admin page)
13.0.4

Where did you install Nextcloud from:
docker image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions