All Projects → minijackson → paddle

minijackson / paddle

Licence: MIT license
A library simplifying LDAP usage in Elixir projects

Programming Languages

elixir
2628 projects
erlang
1774 projects
Nix
1067 projects

Projects that are alternatives of or similar to paddle

kube-ldap
A Webhook Token Authentication plugin for kubernetes to use LDAP as authentication source
Stars: ✭ 29 (-36.96%)
Mutual labels:  ldap, ldap-authentication
existing-ldap-docker-registry
This is a docker application to run Docker Registry behind an Ngnix in order to obtain an authentication method using a company Active Directory.
Stars: ✭ 29 (-36.96%)
Mutual labels:  ldap, ldap-authentication
django-windowsauth
Easy integration and deployment of Django projects into Windows Environments
Stars: ✭ 23 (-50%)
Mutual labels:  ldap, ldap-authentication
authentication
A framework agnostic authentication library based on PSR standards
Stars: ✭ 19 (-58.7%)
Mutual labels:  ldap, ldap-authentication
cassandra-ldap
LDAP Authenticator for Apache Cassandra
Stars: ✭ 20 (-56.52%)
Mutual labels:  ldap, ldap-authentication
Flexinets.Ldap.Server
Basic LDAP server for .Net. Parse and assemble LDAP packets
Stars: ✭ 34 (-26.09%)
Mutual labels:  ldap, ldap-library
vmam
VLAN Mac-address Authentication Manager
Stars: ✭ 19 (-58.7%)
Mutual labels:  ldap, ldap-authentication
rabbitmq-auth-backend-cache
Authorisation result caching plugin (backend) for RabbitMQ
Stars: ✭ 17 (-63.04%)
Mutual labels:  ldap
ntlmrelayx-prettyloot
Convert the loot directory of ntlmrelayx into an enum4linux like output
Stars: ✭ 20 (-56.52%)
Mutual labels:  ldap
ldap-log
一个LDAP请求监听器,摆脱dnslog平台和java
Stars: ✭ 33 (-28.26%)
Mutual labels:  ldap
lldap
Light LDAP implementation
Stars: ✭ 1,402 (+2947.83%)
Mutual labels:  ldap
ldaptools-bundle
Provides easy LDAP integration for Symfony via LdapTools.
Stars: ✭ 49 (+6.52%)
Mutual labels:  ldap
horusec-platform
Horusec Platform is a set of web services that integrate with the Horusec CLI to facilitate the visualization and management of found vulnerabilities.
Stars: ✭ 32 (-30.43%)
Mutual labels:  ldap
ldapconsole
The ldapconsole script allows you to perform custom LDAP requests to a Windows domain.
Stars: ✭ 25 (-45.65%)
Mutual labels:  ldap
Auth
Manage multiple user authentication databases from a central web application
Stars: ✭ 17 (-63.04%)
Mutual labels:  ldap
gitlab-ldap-group-sync
Manage your gitlab groups with ldap / active directory
Stars: ✭ 21 (-54.35%)
Mutual labels:  ldap
node-ldap
node ldap client
Stars: ✭ 24 (-47.83%)
Mutual labels:  ldap
another-ldap-auth
LDAP Authentication for Nginx, Nginx ingress controller (Kubernetes), and HAProxy via a subrequest.
Stars: ✭ 30 (-34.78%)
Mutual labels:  ldap
aspnet-core-ad-authentication
ASP.NET Core Active Directory authentication use LDAP
Stars: ✭ 21 (-54.35%)
Mutual labels:  ldap
vaultwarden ldap
LDAP directory connector for vaultwarden
Stars: ✭ 80 (+73.91%)
Mutual labels:  ldap

Paddle

hex.pm version Build Status Inline docs

A library simplifying LDAP usage in Elixir projects.

Documentation

Why another LDAP library?

If you want to communicate with an LDAP server in Elixir, you probably know that there are other libraries out there. However, I didn't find one that suited me:

  • The :eldap library is great, but very low-level, with no high-level features.

  • EctoLdap is very interesting, but I needed the add / modify / delete operations (in fact, I even wanted to do an Ecto adapter at first).

  • Exldap and LDAPEx are both a translation of the LDAP :eldap in Elixir, which is nice, but are still missing some higher-level features.

Usage

Once installed and configured, it allows you to quickly authenticate users:

iex> Paddle.authenticate("myUser", "password")
:ok

Get meaningful information using Paddle.Class structs:

iex> Paddle.get %MyApp.PosixAccount{uid: "myUser"}
{:ok,
 [%MyApp.PosixAccount{cn: ["My User"], description: nil,
   gecos: ["My User,,,,"], gidNumber: ["120"],
   homeDirectory: ["/home/myuser"], host: nil, l: nil,
   loginShell: ["/bin/bash"], o: nil, ou: nil, seeAlso: nil, uid: ["myUser"],
   uidNumber: ["500"],
   userPassword: ["{SSHA}AIzygLSXlArhAMzddUriXQxf7UlkqopP"]}]}

Or get information just about anything:

iex> Paddle.get base: [ou: "People"], filter: [objectClass: "organizationalUnit"]
{:ok,
 [%{"dn" => "ou=People,dc=test,dc=com",
    "objectClass" => ["top", "organizationalUnit"], "ou" => ["People"]}]}

Add, delete, modify operations are supported. If you want to know more, just go to the documentation.

Installation

The package can be installed as:

  1. Add paddle to your list of dependencies in mix.exs:

    def deps do
      [{:paddle, "~> 0.1.0"}]
    end
  2. Ensure paddle is started before your application:

    def application do
      [applications: [:paddle]]
    end
  3. Add your configuration in your config files:

    config :paddle, Paddle,
      host: "ldap.my-organisation.org",
      base: "dc=myorganisation,dc=org",
      ssl: true,
      port: 636

    For more configurations, see the Paddle module docmumentation.

Testing

If you want to test this application, you can use the linux commands described in the .travis.yml file in the before_script block to start a local test LDAP server.

Keep in mind that you may need to change the .travis/ldap/slapd.conf for your system by changing some configuration paths.

If you want to add some more data to the test server, please feel free to issue a pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].