rleibman / scala-ldap-server

An LDAP server written in scala, using akka

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

scala-ldap-server

Known Vulnerabilities

An ldap server developed in Scala. It uses akka

##Install

I'd like to use sbt-native-packager to deliver this at least into deb and rpm systems, but probably msi and dmg as well.

##Changelog

See changelog

##Features

##Usage

Contributing

Use Github issues for feature requests and bug reports.

We actively welcome pull requests.

For setting up & starting the project locally: You will need an instance of mongo running, and you'll have to tweak application.conf to suit your environment

Once you have all that, use:

$ git clone https://github.com/rleibman/scala-ldap-server
$ cd scala-ldap-server
$ sbt run
cd -

License

Developers

So, this project is mostly a way for me to vent, practice and try some new stuff and technologies as it comes. Upon looking at it, it's much more complicated than I first thought. So unless someone else is interested in it and wants to help along I'll likely never get it to the point of actually working. Please let me know if you're interested in helping. I'm using the following documents to implement the server

Lightweight Directory Access Protocol (LDAP)

Basic documents

  • rfc4510 Technical Specification Road Map
  • rfc4511 The Protocol
  • rfc4512 Directory Information Models
  • rfc4513 Authentication Methods and Security Mechanisms
  • rfc4514 String Representation of Distinguished Names
  • rfc4515 String Representation of Search Filters
  • rfc4516 Uniform Resource Locator
  • rfc4517 Syntaxes and Matching Rules
  • rfc4518 Internationalized String Preparation
  • rfc4519 Schema for User Applications

Some Extras

  • rfc4520 Internet Assigned Numbers Authority (IANA) Considerations for the Lightweight Directory Access Protocol (LDAP)
  • rfc4521 Considerations for Lightweight Directory Access Protocol (LDAP) Extensions
  • rfc4522 The Binary Encoding Option
  • rfc4523 Schema Definitions for X.509 Certificates
  • rfc4524 COSINE LDAP/X.500 Schema
  • rfc4525 Modify-Increment Extension
  • rfc4526 Absolute True and False Filters
  • rfc4527 Read Entry Controls
  • rfc4528 Assertion Control
  • rfc4529 Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP)
  • rfc4530 entryUUID Operational Attribute
  • rfc4531 Turn Operation
  • rfc4532 "Who am I?" Operation
  • rfc4533 Content Synchronization Operation

Oids

OpenLDAP supports the following on a bare bones system

SupportedControl
  • 2.16.840.1.113730.3.4.18 Proxied Authorization v2 Request Control (RFC 4370)
  • 2.16.840.1.113730.3.4.2 ManageDsaIT Request Control (RFC 3296)
  • 1.3.6.1.4.1.4203.1.10.1 Subentries (RFC 3672)
  • 1.2.840.113556.1.4.319 Simple Paged Results Control (RFC 2696)
  • 1.2.826.0.1.3344810.2.3 Matched Values Request Control (RFC 3876)
  • 1.3.6.1.1.13.2 Post-Read Request and Response Controls (RFC 4527)
  • 1.3.6.1.1.13.1 Pre-Read Request and Response Controls (RFC 4527)
  • 1.3.6.1.1.12 Assertion Request Control (RFC 4528)
  • 1.3.6.1.4.1.1466.20037 StartTLS Request (RFC 4511)
supportedExtension
  • 1.3.6.1.4.1.4203.1.11.1 Password ModifY Request (RFC 3062)
  • 1.3.6.1.4.1.4203.1.11.3 "Who Am I?" Request (RFC 4532)
  • 1.3.6.1.1.8 Cancel Request (RFC 3909)
supportedFeatures
  • 1.3.6.1.1.14 Modify-Increment. (RFC 4525)
  • 1.3.6.1.4.1.4203.1.5.1 All Operational Attributes. (RFC 3673)
  • 1.3.6.1.4.1.4203.1.5.2 OC AD Lists (RFC 4529)
  • 1.3.6.1.4.1.4203.1.5.3 True/False Filters (RFC 4526)
  • 1.3.6.1.4.1.4203.1.5.4 Language tags options (RFC 3866)
  • 1.3.6.1.4.1.4203.1.5.5 Language range options (RFC 3866)

Anonymous Simple Authentication and Security Layer (SASL) Mechanism

  • rfc4505 Technical Specification Road Map

https://www.ldap.com/ldap-specifications-defined-in-rfcs

I'm also making heavy use of the Apache Directory Studio to test the server, as well as of the openldap tools (ldapsearch, etc)

Contribution policy

Contributions via GitHub pull requests are gladly accepted from their original author. Along with any pull requests, please state that the contribution is your original work and that you license the work to the project under the project's open source license. Whether or not you state this explicitly, by submitting any copyrighted material via pull request, email, or other means you agree to license the material under the project's open source license and warrant that you have the legal authority to do so.

About

An LDAP server written in scala, using akka

License:GNU General Public License v3.0


Languages

Language:Scala 90.1%Language:Shell 9.9%