Alimentation du serveur à partir de l'annuaire LDAP
This commit is contained in:
parent
5f28473031
commit
c5e1d1f471
6 changed files with 79 additions and 51 deletions
18
README.md
18
README.md
|
@ -4,7 +4,7 @@
|
||||||
## Services fournis
|
## Services fournis
|
||||||
|
|
||||||
- Installation d'un serveur PEWS pour fournir le service webfinger sur un serveur docker_host
|
- Installation d'un serveur PEWS pour fournir le service webfinger sur un serveur docker_host
|
||||||
|
- Peuplement du serveur PEWS en fichiers json à partir du serveur LDAP
|
||||||
|
|
||||||
|
|
||||||
## Variables
|
## Variables
|
||||||
|
@ -15,15 +15,23 @@ Fournir les variables suivantes. Par exemple :
|
||||||
docker_webfingerserver_local_domain: libretic.fr
|
docker_webfingerserver_local_domain: libretic.fr
|
||||||
docker_webfingerserver_data_dir: /data1
|
docker_webfingerserver_data_dir: /data1
|
||||||
docker_webfingerserver_service_id: webfinger
|
docker_webfingerserver_service_id: webfinger
|
||||||
|
docker_webfingerserver_ldap_server_uri: ldap://adresse-du-serveur-ldap
|
||||||
|
docker_webfingerserver_ldap_bind_dn: uid=compte-de-service-interrogation-ldap,xxxx
|
||||||
|
docker_webfingerserver_ldap_bind_pw: son_mot_de_passe
|
||||||
|
docker_webfingerserver_ldap_usersdn: ou=utilisateurs,dc=libretic,dc=fr
|
||||||
```
|
```
|
||||||
|
|
||||||
| Option | Valeur par défaut | Description |
|
| Option | Valeur par défaut | Description |
|
||||||
|-------------------------------------|-------------------|-------------------------------------------------------------------------------------------|
|
|------------------------------------------|-------------------|-------------------------------------------------------------------------------------------|
|
||||||
| docker_webfingerserver_local_domain | | Le nom de domaine pour lequel le service webfinger répond |
|
| docker_webfingerserver_local_domain | | Le nom de domaine pour lequel le service webfinger répond |
|
||||||
| docker_webfingerserver_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
|
| docker_webfingerserver_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
|
||||||
| docker_webfingerserver_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik |
|
| docker_webfingerserver_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik |
|
||||||
| | | |
|
| docker_webfingerserver_ldap_server_uri | | URI de connexion au serveur ldap |
|
||||||
| | | |
|
| docker_webfingerserver_ldap_bind_dn | | DN du compte de service de connexion à l'annuaire pour lire les informations utilisateurs |
|
||||||
|
| docker_webfingerserver_ldap_bind_pw | | Mot de passe du compte de service |
|
||||||
|
| docker_webfingerserver_ldap_usersdn | | Base de recherche des utilisateurs |
|
||||||
|
| docker_webfingerserver_ldap_users_filter | (objectClass=*) | (Facultatif) Filtre de sélection des utilisateurs |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1
defaults/main.yml
Normal file
1
defaults/main.yml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
docker_webfingerserver_ldap_users_filter: "(objectClass=*)"
|
|
@ -16,3 +16,5 @@
|
||||||
src: PEWS/.well-known
|
src: PEWS/.well-known
|
||||||
dest: "{{ docker_webfingerserver_data_dir }}/{{ docker_webfingerserver_service_id }}/webfinger/"
|
dest: "{{ docker_webfingerserver_data_dir }}/{{ docker_webfingerserver_service_id }}/webfinger/"
|
||||||
notify: docker-compose-up
|
notify: docker-compose-up
|
||||||
|
|
||||||
|
|
||||||
|
|
30
tasks/populate_webfinger_from_ldap.yml
Normal file
30
tasks/populate_webfinger_from_ldap.yml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
- name: Recherche des utilisateurs
|
||||||
|
delegate_to: localhost
|
||||||
|
community.general.ldap_search:
|
||||||
|
server_uri: "{{ docker_webfingerserver_ldap_server_uri }}"
|
||||||
|
bind_dn: "{{ docker_webfingerserver_ldap_bind_dn }}"
|
||||||
|
bind_pw: "{{ docker_webfingerserver_ldap_bind_pw }}"
|
||||||
|
dn: "{{ docker_webfingerserver_ldap_usersdn }}"
|
||||||
|
filter: "{{ docker_webfingerserver_ldap_users_filter }}"
|
||||||
|
scope: onelevel
|
||||||
|
attrs:
|
||||||
|
- uid
|
||||||
|
- mail
|
||||||
|
- memberOf
|
||||||
|
- displayName
|
||||||
|
- givenName
|
||||||
|
- sn
|
||||||
|
register: ldap_users
|
||||||
|
|
||||||
|
- debug:
|
||||||
|
var: ldap_users.results
|
||||||
|
|
||||||
|
- name: creation entree webfinger depuis template
|
||||||
|
template:
|
||||||
|
src: user-template.json
|
||||||
|
dest: "{{ docker_webfingerserver_data_dir }}/{{ docker_webfingerserver_service_id }}/webfinger/.well-known/webfinger/store/{{ docker_webfingerserver_local_domain }}/{{ item.uid }}.json"
|
||||||
|
with_items:
|
||||||
|
- "{{ ldap_users.results }}"
|
||||||
|
vars:
|
||||||
|
user: "{{ item }}"
|
29
templates/user-template.json
Normal file
29
templates/user-template.json
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
"subject" : "acct:{{ user.mail }}",
|
||||||
|
"properties" :
|
||||||
|
{
|
||||||
|
"http://packetizer.com/ns/name" : "{{ user.displayName }}"
|
||||||
|
},
|
||||||
|
"aliases" :
|
||||||
|
[
|
||||||
|
|
||||||
|
"https://mastodon.libretic.fr/users/{{ user.uid }}"
|
||||||
|
],
|
||||||
|
"links" :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"rel" : "http://webfinger.net/rel/profile-page",
|
||||||
|
"type": "text/html",
|
||||||
|
"href": "https://mastodon.libretic.fr/@{{ user.uid }}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rel": "self",
|
||||||
|
"type": "application/activity+json",
|
||||||
|
"href": "https://mastodon.libretic.fr/users/{{ user.uid }}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rel": "http://ostatus.org/schema/1.0/subscribe",
|
||||||
|
"template": "https://mastodon.libretic.fr/authorize_interaction?uri={uri}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1,42 +0,0 @@
|
||||||
{
|
|
||||||
"subject" : "acct:olivier.navas@libretic.fr",
|
|
||||||
"properties" :
|
|
||||||
{
|
|
||||||
"http://packetizer.com/ns/name" : "John Smith",
|
|
||||||
"http://blgx.example.net/ns/version" : "1.5.1",
|
|
||||||
"http://blgx.example.net/ns/ext" : null
|
|
||||||
},
|
|
||||||
"aliases" :
|
|
||||||
[
|
|
||||||
"https://mastodon.libretic.fr/u/olivier.navas",
|
|
||||||
],
|
|
||||||
"links" :
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"rel" : "http://webfinger.net/rel/avatar",
|
|
||||||
"type" : "image/jpeg",
|
|
||||||
"href" : "http://example.com/images/face.png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"rel" : "http://webfinger.net/rel/profile-page",
|
|
||||||
"href" : "http://profile.example.com/u/smithj"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"rel" : "http://packetizer.com/rel/blog",
|
|
||||||
"href" : "http://blog.example.com/smithj",
|
|
||||||
"titles" :
|
|
||||||
{
|
|
||||||
"en-us" : "The Adventures of John Smith",
|
|
||||||
"fr" : "Les Aventures de John Smith"
|
|
||||||
},
|
|
||||||
"properties" :
|
|
||||||
{
|
|
||||||
"http://example.com/role" : "author"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"rel" : "http://specs.openid.net/auth/2.0/provider",
|
|
||||||
"href" : "https://profile.example.com/u/smithj"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
Loading…
Reference in a new issue