From ad12ac0c8ec51a63f14ca351b2e85d6a30b28b78 Mon Sep 17 00:00:00 2001 From: Christian Elberfeld <6413499+elberfeld@users.noreply.github.com> Date: Wed, 12 Mar 2025 23:19:43 +0100 Subject: [PATCH] Einrichtung OAUth Login mit uffd --- testserver/docker_dokuwiki/tasks/main.yml | 50 ++++++++++--------- .../templates/docker-compose.yml | 15 +++++- .../templates/uffd-ldapd/Dockerfile | 24 +++++++++ 3 files changed, 65 insertions(+), 24 deletions(-) create mode 100644 testserver/docker_dokuwiki/templates/uffd-ldapd/Dockerfile diff --git a/testserver/docker_dokuwiki/tasks/main.yml b/testserver/docker_dokuwiki/tasks/main.yml index a48f0ed5..3b5413a2 100644 --- a/testserver/docker_dokuwiki/tasks/main.yml +++ b/testserver/docker_dokuwiki/tasks/main.yml @@ -3,6 +3,8 @@ - include_tasks: ../functions/get_secret.yml with_items: - { path: "{{ basedir }}/secrets/oauth_secret", length: 64} + - { path: "{{ basedir }}/dokuwiki_api_secret", length: 32 } + - { path: "{{ basedir }}/ldap_bind_pw", length: 32 } - name: create folder struct for dokuwiki file: @@ -16,6 +18,7 @@ - "{{ basedir }}/data/lib/plugins" - "{{ basedir }}/data/lib/plugins/oauth" - "{{ basedir }}/data/lib/plugins/oauthgeneric" + - "{{ basedir }}/uffd-ldapd" - name: Docker Compose Konfig-Datei erstellen template: @@ -24,35 +27,36 @@ with_items: - docker-compose.yml - Dockerfile + - uffd-ldapd/Dockerfile register: config -- name: oauth plugin clonen - ansible.builtin.git: - repo: https://github.com/cosmocode/dokuwiki-plugin-oauth.git - dest: "{{ basedir }}/data/lib/plugins/oauth" - force: true +#- name: oauth plugin clonen +# ansible.builtin.git: +# repo: https://github.com/cosmocode/dokuwiki-plugin-oauth.git +# dest: "{{ basedir }}/data/lib/plugins/oauth" +# force: true -- name: config für oauth kopieren - ansible.builtin.template: - src: oauth_vars.php - dest: "{{ basedir }}/data/lib/plugins/oauth/conf/default.php" +#- name: config für oauth kopieren +# ansible.builtin.template: +# src: oauth_vars.php +# dest: "{{ basedir }}/data/lib/plugins/oauth/conf/default.php" -- name: oauthgeneric plugin clonen - ansible.builtin.git: - repo: https://github.com/cosmocode/dokuwiki-plugin-oauthgeneric.git - dest: "{{ basedir }}/data/lib/plugins/oauthgeneric" - force: true +#- name: oauthgeneric plugin clonen +# ansible.builtin.git: +# repo: https://github.com/cosmocode/dokuwiki-plugin-oauthgeneric.git +# dest: "{{ basedir }}/data/lib/plugins/oauthgeneric" +# force: true -- name: config für oauthgeneric kopieren - ansible.builtin.template: - src: oauthgeneric_vars.php - dest: "{{ basedir }}/data/lib/plugins/oauthgeneric/conf/default.php" +#- name: config für oauthgeneric kopieren +# ansible.builtin.template: +# src: oauthgeneric_vars.php +# dest: "{{ basedir }}/data/lib/plugins/oauthgeneric/conf/default.php" -- name: oauth provider aktivieren - ansible.builtin.lineinfile: - path: "{{ basedir }}/data/conf/local.php" - regexp: "^$conf['authtype'] = " - line: "$conf['authtype'] = 'oauth';" +#- name: oauth provider aktivieren +# ansible.builtin.lineinfile: +# path: "{{ basedir }}/data/conf/local.php" +# regexp: "^$conf['authtype'] = " +# line: "$conf['authtype'] = 'oauth';" - name: "stop {{ servicename}} docker" community.docker.docker_compose_v2: diff --git a/testserver/docker_dokuwiki/templates/docker-compose.yml b/testserver/docker_dokuwiki/templates/docker-compose.yml index e3389c99..268b1874 100644 --- a/testserver/docker_dokuwiki/templates/docker-compose.yml +++ b/testserver/docker_dokuwiki/templates/docker-compose.yml @@ -17,7 +17,20 @@ services: networks: - default - web - + + ldap: + + build: uffd-ldapd/ + restart: always + environment: + SERVER_API_URL: "{{ oidc_global.provider_url }}" + SERVER_API_USER: "dokuwikildap" + SERVER_API_SECRET: "{{ dokuwiki_api_secret }}" + SERVER_BASE_DN: "{{ oidc_global.ldap_base_dn }}" + SERVER_BIND_PASSWORD: "{{ ldap_bind_pw}}" + networks: + - default + networks: web: external: true diff --git a/testserver/docker_dokuwiki/templates/uffd-ldapd/Dockerfile b/testserver/docker_dokuwiki/templates/uffd-ldapd/Dockerfile new file mode 100644 index 00000000..c39c751f --- /dev/null +++ b/testserver/docker_dokuwiki/templates/uffd-ldapd/Dockerfile @@ -0,0 +1,24 @@ +FROM debian:bookworm-slim + +# Set environment variables +ENV DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies and configure custom repository +RUN apt-get update \ + && apt-get install -y --no-install-recommends wget gnupg ca-certificates \ + && wget -O- "https://packages.cccv.de/docs/cccv-archive-key.gpg" | gpg --dearmor -o /etc/apt/trusted.gpg.d/cccv-archive-key.gpg \ + && echo "deb https://packages.cccv.de/uffd bookworm main" > /etc/apt/sources.list.d/custom.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends uffd-ldapd ldap-utils \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +USER 999 +EXPOSE 389/tcp + +# Set default command +CMD ["/usr/sbin/uffd-ldapd","--socket-address","0.0.0.0:389"] + +# Get all LDAP Entries +# ldapsearch -x -H ldap://127.0.0.1 -D "cn=service,ou=system,{{ oidc_global.ldap_base_dn }}" -w "{{ ldap_bind_pw }}" -b "ou=users,{{ oidc_global.ldap_base_dn }}" "(objectClass=*)" + -- GitLab