# WebID

Authentification | Utilisateurs | Mot-de-passe
--- | --- | ---
✔ | ✔ |

## Présentation

WebID est un moyen d'identification unique de personnes, entreprises, organisation, ou autre agent en utilisant une URI et un certificat.

Le paquet Web::ID est nécessaire.

## Configuration

Dans le manager, aller dans `Paramètres generaux` > `Modules d'authentification` et choisir WebID comme module d'authentication. On peut également utiliser WebID comme base de données utilisateurs.

Ensuite, aller dans les `paramètres WebID`:

- Niveau d'authentification : niveau d'authentification accordé à ce module.
- Liste blanche WebID : liste de noms d'hôtes, séparés par des espaces, autorisés à héberger les documents FOAF. On peut utiliser le caractère '*'. Exemple :

      *.partenaire.com

Si on utilise WebID comme base de données utilisateurs, déclarer les valeurs dans les variables exportées :

- utiliser n'importe quel nom de clef. Pour imposer qu'une valeur soit renseignée, ajouter un ”!” devant le nom de clef
- dans le champ valeur, mettre le nom du champ. Voir http://xmlns.com/foaf/spec/#sec-crossref. Exemple :

      nom => foaf:name

Voir aussi la configuration des variables exportées.

### Configuration d'Apache

L'hôte du portail doit être configuré pour utiliser SSL et doit demander un certificat client. Il est recommandé d'utiliser « optional_no_ca » car WebID n'utilise pas d'autorité de certification :

    <VirtualHost _default_:443>
    ServerName auth.example.com
    SSLEngine on
    SSLCertificateFile ...
    SSLCertificateKeyFile ...
    SSLVerifyClient optional_no_ca
    ...
    </VirtualHost>

### Tests

Pour tester ceci, on peut se construire son propre certificat WebID en utilisant au choix :

- Web::ID::Certificate::Generator
- my-profile.eu
- gen-webid-cert.sh