h1. 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) h2. 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@). h3. 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. h3. 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. h2. Portail citoyen Quatre attributs sont attendus du web-service @user_info@ de l'IdP: * @username@ * @email@ * @first_name@ * @last_name@ * @role@ 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@. h2. 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@.