Code Monkey home page Code Monkey logo

okta2anything's Introduction

Okta2Anything

Description

Okta2Anything is a simple LDAP Proxy which allows someone to have the Okta IDAAS Service authenticate against almost anything.

This code is based on the great work by: https://github.com/vjeantet/ldapserver

Disclaimer

Although it is not uncommon for companies to use LDAP Proxies for authentication, this code is developed for Pilots, Proof of Concepts, and testing. Anyone using this code for production is doing so at thier own risk

Would you be interested in a Commercially available product that can offer LTS (Long Term Support) ?

As much as I enjoyed developing this program, it has become more popular that I would have imagined, and many folks have me for an alternative with support I just don't have the time to keep up with this project.

Beyond ID provides a product with the same capability and can provide Support and Services to run this in production. The link below with provide you with all of the details.

https://www.beyondid.com/solutions/application-integration-gateway/

How does it work ?

Okta2Anything acts like an LDAP Service. Using the Okta LDAP Agent, and pointing the LDAP Agent to Okta2Anything. Okta2Antyhing will delete the authentication to a local node.js script that will perform the Authentication

Okta2Anything

Configuration

Prerequisites

An Okta LDAP Agent is required, and node.js and any required artifacts needed for your authentication scripts to run need to be installed.

Here is a Direct Link to the Okta LDAP Agent:

Node.js is required, Node is basically be using as a Shell Script.

Downlaod Node.js https://nodejs.org/en/

You will need to download the binary for the Operating System you are running on

OS Download Link
Okta2Anything Linux
Okta2Anything MacOS
Okta2Anything Windows

Configuring you Okta LDAP Agent

Follow Okta's guides for configuring LDAP, an example of the settings for the LDAP Agent that are compatible for Okta2Anything are available here.

  • Select OpenDJ Directory from the LDAP Directory drop-down
  • Set User Search Base to: ou=People,dc=example,dc=com
  • Set Passwore Attribute to: userpassword
  • Set Group Search Base to: ou=groups,dc=example,dc=com
  • Set Group Object Class to: groupofnames
  • Set Group Object Filter to: (objectclass=groupofnames)
  • Set Member Attribute to: member
  • Under Validate Configuration Select Email

LDAP Settings Screenshot

"LDAP Configuration"

LDAP Settings import Screenshot

"Import Settings"

Test the settings, use username of [email protected]

Running the LDAP Proxy

Running Examples:

Okta2anything defaults to Port 389

On Many Systems, you Must run that as root. sudo ./okta2anything ...

Command line Switches:

switch Description
-w Set Password for cn=Directory manager (If not specified, anything is accepted)
-plugin Specify Plugin used for Authentication (node.js Script)

Running in Promiscuous mode for testing, all users are accepted
./okta2anything -plugin=promiscuous

Running with Directory Manager password set to Password1, and Authenticate against another Okta Tenant ./okta2anything -w Password1 -plugin=okta2okta

okta2anything's People

Contributors

dependabot[bot] avatar pmcdowell-okta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

okta2anything's Issues

No Okta2Anything (binaries) documentation

Looking for any documentation for the Okta2Anything binaries.

Specifically, is there anything else you can return from the plug-in back to Okta2Anything to fill in the LDAP response (e.g first and last name). I only see {"Active":"true"} or {"Active":"false"} in the examples.

Issue on login

I am able successfully add LDAP on my okta tenant through okta2anything service but could not able be login through service tried with csv, mongodb okta2okta plugin . it request did get into okta2anything service but could not execute its plugin got exit status as 1.

CSV Plugin not working

Hello.
Thanks for this contribution. I was able to do basic setup and get the Test configuration validated from Okta. However there are two issues.

OS : Windows.

  1. If I use promiscuous plugin, the configuration is successful as shown in screen shot. However when I run a sample app, Okta logs show user is imported but does not appear anywhere. Okts support mentioned that might be because user does not exists in any store.
  2. I tried to use CSV plugin. When using the Test configuration option in LDAP configuration at okta I get error
    Validation failed!
    Error while processing LdapAgentAction. Please review your configuration and retry validation.

Below is log generated at okta2anything end. After Bind response, UnbindRequest is shown. I validated the csv structure and by running the plugin separately.

F:\okta\okta2anything>okta2anything -plugin=csv
Okta2Anything, For more command line options use the --help switch
Directory Manager set to cn=Directory Manager
2019/01/14 07:36:41 Listening on 0.0.0.0:389
2019/01/14 07:36:47 Connection client [1] from 192.168.2.104:55666 accepted
2019/01/14 07:36:47 <<< 1 - BindRequest - hex=&{301a0201016015020103040475736572800a506561726c4032303138}
2019/01/14 07:36:47 HIT handleBind Function #188 !
2019/01/14 07:36:47 Bind Attempt User=user, Pass=XXXXXXXXX
2019/01/14 07:36:47 >>> 1 - BindResponse - hex=300c02010161070a013104000400
2019/01/14 07:36:47 <<< 1 - UnbindRequest - hex=&{30050201024200}
2019/01/14 07:36:47 client 1 close()
2019/01/14 07:36:47 client 1 close() - stop reading from client
2019/01/14 07:36:47 client 1 close() - Abandon signal sent to processors
2019/01/14 07:36:47 client [1] request processors ended
2019/01/14 07:36:47 client [1] connection closed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.