Profil utilisateur

Cette page reprend les différents endroits où la définition des champs d'un profil utilisateur s'établit.

(infos tirées de Vincennes)

Authentic

first_name, last_name et email sont des champs standards, définis dans les sources.

Les autres sont définis dans l'admin, /admin/authentic2/attribute/ (correct ?)

Les types des attributs sont définis dans les settings (sinon il n'y a qu'un seul type "chaîne"):

A2_ATTRIBUTE_KINDS = [
        {
            'label': u'Civilité',
            'name': 'title',
            'field_class': forms.ChoiceField,
            'kwargs': {
                'choices': [
                    ('monsieur', u'Monsieur'),
                    ('madame', u'Madame'),
                ],
            }
         },
        {
            'label': u'Date de naissance jj/mm/aaaa',
            'name': 'birthdate',
            'field_class': forms.RegexField,
            'kwargs': {
                'regex': r'^\d\d/\d\d/\d\d\d\d$'
            }
         }
 ]

Dans la config, il y a aussi des infos pour la page d'édition et d'enregistrement de compte:

    "A2_PROFILE_FIELDS": [ "username", "email", "civilite", "first_name",
        "last_name", "date_de_naissance", "telephone", "mobile", "adresse_numero_voie", "adresse_type_voie",
        "adresse_nom_voie", "adresse_complement", "code_postal", "ville", "pays" ],
    "A2_REGISTRATION_FIELDS": [ "username", "email", "civilite", "first_name",
        "last_name", "date_de_naissance", "telephone", "mobile", "adresse_numero_voie", "adresse_type_voie",
        "adresse_nom_voie", "adresse_complement", "code_postal", "ville", "pays" ],
    "A2_REGISTRATION_REQUIRED_FIELDS": [ "first_name", "last_name" ],

Cela permet de définir l'ordre, la présence et la nécessité (pour la page d'enregistrement) des champs.

Des attributs peuvent aussi venir d'un serveur LDAP si une authentification LDAP est configurée:

LDAP_AUTH_SETTINGS = [
        {
            'url': 'ldapi:///',
            'basedn': 'dc=entrouvert,dc=org',
            'transient': False,
            'username_template': '{uid[0]}@{realm}',
            'external_id_tuples': (('dn:noquote',), ('uid','entryUUID'), ),
            'lookups': ('external_id',),
            'update_username': False,
            'attributes': ['uid', 'cn'],
        }
]

Ici seront extraits les attributs uid, cn et entryUUID. Les champs qui définissent les attributs à extraire sont attributes, external_id_tuples, email_field (valeur par défaut email), fname_field (valeur par défaut givenName) et lname_field (valeur par défaut sn).

SAML2

Les attributs à partager doivent être définis dans la page de configuration du fournisseur SAML, ne pas oublier de transférer la liste des noms de groupe dans l'attribut 'role' pour les droits d'administration dans les applications.

OAuth2

Les attributs à partager doivent être définis dans la page de configuration du client OAuth2, ne pas oublier de transférer la liste des noms de groupe dans l'attribut 'role' pour les droits d'administration dans les applications.

Portail citoyen

Quatre attributs sont attendus du web-service user_info de l'IdP:

Ils sont utilisés tel quels pour retrouver l'utilisateur ou le créer (via username) et le pré-remplir.

Pour provisionner les super administrateur on définir le paramètre ALLAUTH_A2_ADMIN_ROLE qui devra être une valeur reçue via l'attribut role.

w.c.s.

Fiche d'un utilisateur, /admin/settings/users/fields/

Correspondance des attributs, /admin/settings/identification/idp/idp/https-connexion.vincennes.fr-idp-saml2-metadata/edit

Dans la page de correspondance il faut aussi définir les attributs qui donne les droits d'administration, par exemple role -> Administrateur.