https://github.com/alan-turing-institute/guacamole-user-sync

Dockerised Guacamole-LDAP synchronisation

https://github.com/alan-turing-institute/guacamole-user-sync

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.1%) to scientific vocabulary

Keywords

data-safe-haven hacktoberfest hut23 hut23-1304
Last synced: 10 months ago · JSON representation

Repository

Dockerised Guacamole-LDAP synchronisation

Basic Info
  • Host: GitHub
  • Owner: alan-turing-institute
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 453 KB
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 1
  • Open Issues: 0
  • Releases: 7
Topics
data-safe-haven hacktoberfest hut23 hut23-1304
Created about 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

guacamole-user-sync

Synchronise a Guacamole PostgreSQL database with an LDAP server, such as Microsoft Active Directory

Latest image Image size Publish status

Running with Docker

You can run this Docker image as follows

console $ docker run -it \ -e LDAP_HOST=$(your LDAP server host) \ -e LDAP_GROUP_BASE_DN=$(your LDAP group DN) \ -e LDAP_GROUP_FILTER=$(your LDAP group filter) \ -e LDAP_USER_BASE_DN=$(your LDAP user DN) \ -e LDAP_USER_FILTER=$(your LDAP user filter) \ -e POSTGRESQL_HOST=$(your PostgreSQL server host) \ -e POSTGRESQL_PASSWORD=$(your PostgreSQL connection password) \ -e POSTGRESQL_USERNAME=$(your PostgreSQL connection username) \ ghcr.io/alan-turing-institute/guacamole-user-sync:$(version you want to use)

LDAP filter syntax is described here: https://ldap.com/ldap-filters/. If you want a simple filter for testing, try (objectClass=*) which will match any LDAP object.

Similarly, LDAP distinguished names (DNs) are described here: https://ldap.com/ldap-dns-and-rdns/. The user or group base DN will typically be the organisational unit (OU) that all objects of that type belong to. For example, a simple user base DN might look something like OU=users,DC=example,DC=com.

Environment variables

  • DEBUG: Enable debug output (default: 'False')
  • LDAP_BIND_DN: (Optional) distinguished name of LDAP bind user
  • LDAP_BIND_PASSWORD: (Optional) password of LDAP bind user
  • LDAP_GROUP_BASE_DN: Base DN for groups
  • LDAP_GROUP_FILTER: LDAP filter to select groups
  • LDAP_GROUP_NAME_ATTR: Attribute used to extract group names (default: 'cn')
  • LDAP_HOST: LDAP host
  • LDAP_PORT: LDAP port (default: '389')
  • LDAP_USER_BASE_DN: Base DN for users
  • LDAP_USER_FILTER: LDAP filter to select users
  • LDAP_USER_NAME_ATTR: Attribute used to extract user names (default: 'userPrincipalName')
  • POSTGRESQL_DB_NAME: Database name for PostgreSQL server (default: 'guacamole')
  • POSTGRESQL_HOST: PostgreSQL server host
  • POSTGRESQL_PASSWORD: Password of PostgreSQL user
  • POSTGRESQL_PORT: PostgreSQL server port (default: '5432')
  • POSTGRESQL_USERNAME: Username of PostgreSQL user
  • REPEAT_INTERVAL: How often (in seconds) to wait before attempting to synchronise again (default: '300')

Contributing

Pull requests are always welcome.

Running with Docker

Build the Docker image with

console $ docker build . -t guacamole-user-sync

Run the Docker image you have just built with

console $ docker run -it \ -e LDAP_HOST=$(your LDAP server host) \ -e LDAP_GROUP_BASE_DN=$(your LDAP group DN) \ -e LDAP_GROUP_FILTER=$(your LDAP group filter) \ -e LDAP_USER_BASE_DN=$(your LDAP user DN) \ -e LDAP_USER_FILTER=$(your LDAP user filter) \ -e POSTGRESQL_HOST=$(your PostgreSQL server host) \ -e POSTGRESQL_PASSWORD=$(your PostgreSQL connection password) \ -e POSTGRESQL_USERNAME=$(your PostgreSQL connection username) \ guacamole-user-sync

Tests

In order to run the tests, you should install the following prerequisites:

The tests can then be run with

console $ hatch run test:all

Owner

  • Name: The Alan Turing Institute
  • Login: alan-turing-institute
  • Kind: organization
  • Email: info@turing.ac.uk

The UK's national institute for data science and artificial intelligence.

GitHub Events

Total
  • Create event: 5
  • Release event: 1
  • Issues event: 6
  • Delete event: 5
  • Issue comment event: 6
  • Push event: 10
  • Pull request event: 7
Last Year
  • Create event: 5
  • Release event: 1
  • Issues event: 6
  • Delete event: 5
  • Issue comment event: 6
  • Push event: 10
  • Pull request event: 7

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 10
  • Total pull requests: 21
  • Average time to close issues: 8 days
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 1.3
  • Average comments per pull request: 0.57
  • Merged pull requests: 20
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 14
  • Average time to close issues: 10 days
  • Average time to close pull requests: about 4 hours
  • Issue authors: 3
  • Pull request authors: 1
  • Average comments per issue: 3.25
  • Average comments per pull request: 0.86
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jemrobinson (8)
  • DimitryVo (1)
  • helendduncan (1)
Pull Request Authors
  • jemrobinson (35)
Top Labels
Issue Labels
Pull Request Labels