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
26
README.md
26
README.md
|
@ -4,7 +4,7 @@
|
|||
## Services fournis
|
||||
|
||||
- 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
|
||||
|
@ -15,15 +15,23 @@ Fournir les variables suivantes. Par exemple :
|
|||
docker_webfingerserver_local_domain: libretic.fr
|
||||
docker_webfingerserver_data_dir: /data1
|
||||
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 |
|
||||
|-------------------------------------|-------------------|-------------------------------------------------------------------------------------------|
|
||||
| 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_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik |
|
||||
| | | |
|
||||
| | | |
|
||||
| Option | Valeur par défaut | Description |
|
||||
|------------------------------------------|-------------------|-------------------------------------------------------------------------------------------|
|
||||
| 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_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
|
||||
dest: "{{ docker_webfingerserver_data_dir }}/{{ docker_webfingerserver_service_id }}/webfinger/"
|
||||
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