'Overrides `get_user_details` from the base class; retrieves those details,
then updates the dict with values from whatever additional fields are desired.'

def get_user_details(self, attributes):

    details = super(EdXSAMLIdentityProvider, self).get_user_details(attributes)
    extra_field_definitions = self.conf.get('extra_field_definitions', [])
    details.update({field['name']: (attributes[field['urn']][0] if (field['urn'] in attributes) else None) for field in extra_field_definitions})
    return details
