Giter Club home page Giter Club logo

multiauthenticator's Introduction

OAuthAuthenticator + LDAP Autenticator ++... = MultiAuthenticator ❤️

The MultiAuthenticator is multiplexer authenticator class that allows to use more than one authentication option with JupyterHub.

Installation

$ pip install git+https://github.com/idiap/multiauthenticator

Configuration

The MultiAuthenticator class only has one configuration point: authenticators.

This property shall contain a list of tuple with the following content:

  • Authenticator class (i.e. GitLabAuthenticator, LDAPAuthenticator)
  • The URL scope (i.e. /gitlab, /ldap)
  • A dictionary with the authenticator's configuration

As an example:

from oauthenticator.github import GitHubOAuthenticator
from oauthenticator.google import GoogleOAuthenticator
from oauthenticator.gitlab import GitLabOAuthenticator
from jupyterhub.auth import PAMAuthenticator

c.MultiAuthenticator.authenticators = [
    (GitHubOAuthenticator, '/github', {
        'client_id': 'XXXX',
        'client_secret': 'YYYY',
        'oauth_callback_url': 'https://jupyterhub.example.com/hub/github/oauth_callback'
    }),
    (GoogleOAuthenticator, '/google', {
        'client_id': 'xxxx',
        'client_secret': 'yyyy',
        'oauth_callback_url': 'https://jupyterhub.example.com/hub/google/oauth_callback'
    }),
    (GitLabOAuthenticator, '/gitlab', {
        "client_id": "ZZZZ",
        "client_secret": "AAAAA",
        "oauth_callback_url": "https://jupyterhub.example.com/hub/gitlab/oauth_callback",
        "gitlab_url": "https://gitlab.example.com"
    }),
    (PAMAuthenticator, "/pam", {"service_name": "PAM"}),
]

c.JupyterHub.authenticator_class = 'multiauthenticator.multiauthenticator.MultiAuthenticator'

multiauthenticator's People

Contributors

sgaist avatar dependabot[bot] avatar ph0tonic avatar

Watchers

 avatar

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.