jhub-remote-user-auth-mig-mount


Namejhub-remote-user-auth-mig-mount JSON
Version 0.0.5 PyPI version JSON
download
home_pagehttps://github.com/rasmunk/jhub_remote_user_auth_mig_mount
Summary
upload_time2018-04-03 14:26:57
maintainer
docs_urlNone
authorRasmus Munk
requires_python
licenseGPLv3
keywords interactive interpreter shell web
VCS
bugtrack_url
requirements jupyterhub tornado traitlets docutils
Travis-CI
coveralls test coverage No coveralls.
            .. image:: https://travis-ci.org/rasmunk/jhub_remote_user_auth_mig_mount.svg?branch=master
    :target: https://travis-ci.org/rasmunk/jhub_remote_user_auth_mig_mount

====================================
Jupyterhub REMOTE_USER Authenticator
====================================

Authenticate to Jupyterhub using an authenticating proxy that can set
the Remote-User header.
Also supports for passing additional information to the jupyter user.
This includes a MiG

------------
Installation
------------

Installation from pypi::

    pip install jhub_remote_user_auth_mig_mount

Installation from local git repository::

    cd jhub_remote_user_auth_mig_mount
    pip install .

-------------
Configuration
-------------

You should edit your `jupyterhub_config.py` config file to set the
authenticator class::

    c.JupyterHub.authenticator_class = 'jhub_remote_user_auth_mig_mount.remote_user_auth.RemoteUserAuthenticator'

You should be able to start jupyterhub.  The "/login" resource
will look for the authenticated user name in the HTTP header "Remote-User".
If found, and not blank, you will be logged in as that user.

Alternatively, you can use `RemoteUserLocalAuthenticator`::

    c.JupyterHub.authenticator_class = 'jhub_remote_user_auth_mig_mount.remote_user_auth.RemoteUserLocalAuthenticator'

This provides the same authentication functionality but is derived from
`LocalAuthenticator` and therefore provides features such as the ability
to add local accounts through the admin interface if configured to do so.

-------------------------------------------------------------
Remote User Authentication extended with MiG Mount capability
-------------------------------------------------------------

Provides the capability to supply the jupyterhub user with a set of ssh keys that can later be used to mount that particular user's MiG homedrive, the extended authenticator can be activated by setting the following option in the jupyterhub config file::

    c.JupyterHub.authenticator_class = 'jhub_remote_user_authenticator.remote_user_auth.MIGMountRemoteUserAuthenticator'

This adds two base request paths to the jupyterhub web application::

'/login' -> requires a non empty Remote-User header
'/mount' -> requires both a non empty Remote-User and Mig-Mount header

The expected format of the Mig-Mount header is that the passed string can be evaluated to a python dictionary via::

            try:
                mount_header_dict = literal_eval(mount_header)

After being successfully evaluated to a dictionary, the header is required to contain the following information::

    {
        MOUNT_HOST: 'hostname of the target mount host',
        SESSIONID: 'A random string that identifies an active mount session',
        TARGET_MOUNT_ADDR: 'The target URL of the system/service that grants jupyter users to mount their notebook against, e.g @idmc.dk:',
        MOUNTSSHPRIVATEKEY: 'private key',
    }

Note:
=====
Since we are passing private key's over the network, it is important that this information is sent over an encrypted channel, furthermore the host/service that grant this mount information should limit the validity of a keyset, e.g. can be used for 2 hours before a new set has to be generated and the old is void.
Upon successful parsing of the header, the active jupyterhub user instance is appended with a 'mig_mount' property that contains the accepted dictionary header.



            

Raw data

            {
    "maintainer": "", 
    "docs_url": null, 
    "requires_python": "", 
    "maintainer_email": "", 
    "cheesecake_code_kwalitee_id": null, 
    "keywords": "Interactive,Interpreter,Shell,Web", 
    "upload_time": "2018-04-03 14:26:57", 
    "requirements": [
        {
            "name": "jupyterhub", 
            "specs": [
                [
                    "==", 
                    "0.8.1"
                ]
            ]
        }, 
        {
            "name": "tornado", 
            "specs": [
                [
                    "==", 
                    "4.5.3"
                ]
            ]
        }, 
        {
            "name": "traitlets", 
            "specs": [
                [
                    "==", 
                    "4.3.2"
                ]
            ]
        }, 
        {
            "name": "docutils", 
            "specs": [
                [
                    "==", 
                    "0.13.1"
                ]
            ]
        }
    ], 
    "author": "Rasmus Munk", 
    "home_page": "https://github.com/rasmunk/jhub_remote_user_auth_mig_mount", 
    "github_user": "rasmunk", 
    "download_url": "https://pypi.python.org/packages/90/ea/97d4c29ccbed6c833bfeb1e632ae723a3eccb840676b37b8cbc2125693b9/jhub_remote_user_auth_mig_mount-0.0.5.tar.gz", 
    "platform": "Linux", 
    "version": "0.0.5", 
    "cheesecake_documentation_id": null, 
    "description": ".. image:: https://travis-ci.org/rasmunk/jhub_remote_user_auth_mig_mount.svg?branch=master\n    :target: https://travis-ci.org/rasmunk/jhub_remote_user_auth_mig_mount\n\n====================================\nJupyterhub REMOTE_USER Authenticator\n====================================\n\nAuthenticate to Jupyterhub using an authenticating proxy that can set\nthe Remote-User header.\nAlso supports for passing additional information to the jupyter user.\nThis includes a MiG\n\n------------\nInstallation\n------------\n\nInstallation from pypi::\n\n    pip install jhub_remote_user_auth_mig_mount\n\nInstallation from local git repository::\n\n    cd jhub_remote_user_auth_mig_mount\n    pip install .\n\n-------------\nConfiguration\n-------------\n\nYou should edit your `jupyterhub_config.py` config file to set the\nauthenticator class::\n\n    c.JupyterHub.authenticator_class = 'jhub_remote_user_auth_mig_mount.remote_user_auth.RemoteUserAuthenticator'\n\nYou should be able to start jupyterhub.  The \"/login\" resource\nwill look for the authenticated user name in the HTTP header \"Remote-User\".\nIf found, and not blank, you will be logged in as that user.\n\nAlternatively, you can use `RemoteUserLocalAuthenticator`::\n\n    c.JupyterHub.authenticator_class = 'jhub_remote_user_auth_mig_mount.remote_user_auth.RemoteUserLocalAuthenticator'\n\nThis provides the same authentication functionality but is derived from\n`LocalAuthenticator` and therefore provides features such as the ability\nto add local accounts through the admin interface if configured to do so.\n\n-------------------------------------------------------------\nRemote User Authentication extended with MiG Mount capability\n-------------------------------------------------------------\n\nProvides the capability to supply the jupyterhub user with a set of ssh keys that can later be used to mount that particular user's MiG homedrive, the extended authenticator can be activated by setting the following option in the jupyterhub config file::\n\n    c.JupyterHub.authenticator_class = 'jhub_remote_user_authenticator.remote_user_auth.MIGMountRemoteUserAuthenticator'\n\nThis adds two base request paths to the jupyterhub web application::\n\n'/login' -> requires a non empty Remote-User header\n'/mount' -> requires both a non empty Remote-User and Mig-Mount header\n\nThe expected format of the Mig-Mount header is that the passed string can be evaluated to a python dictionary via::\n\n            try:\n                mount_header_dict = literal_eval(mount_header)\n\nAfter being successfully evaluated to a dictionary, the header is required to contain the following information::\n\n    {\n        MOUNT_HOST: 'hostname of the target mount host',\n        SESSIONID: 'A random string that identifies an active mount session',\n        TARGET_MOUNT_ADDR: 'The target URL of the system/service that grants jupyter users to mount their notebook against, e.g @idmc.dk:',\n        MOUNTSSHPRIVATEKEY: 'private key',\n    }\n\nNote:\n=====\nSince we are passing private key's over the network, it is important that this information is sent over an encrypted channel, furthermore the host/service that grant this mount information should limit the validity of a keyset, e.g. can be used for 2 hours before a new set has to be generated and the old is void.\nUpon successful parsing of the header, the active jupyterhub user instance is appended with a 'mig_mount' property that contains the accepted dictionary header.\n\n\n", 
    "lcname": "jhub-remote-user-auth-mig-mount", 
    "bugtrack_url": null, 
    "github": true, 
    "coveralls": false, 
    "name": "jhub-remote-user-auth-mig-mount", 
    "license": "GPLv3", 
    "travis_ci": true, 
    "github_project": "jhub_remote_user_auth_mig_mount", 
    "summary": "", 
    "split_keywords": [
        "interactive", 
        "interpreter", 
        "shell", 
        "web"
    ], 
    "author_email": "munk1@live.dk", 
    "urls": [
        {
            "has_sig": false, 
            "upload_time": "2018-04-03T14:26:56", 
            "comment_text": "", 
            "python_version": "py3", 
            "url": "https://pypi.python.org/packages/c0/5c/bf8389ee3e1f3c3ceead059b32112b673a0d09f2b4bb308f174f3ce01d27/jhub_remote_user_auth_mig_mount-0.0.5-py3-none-any.whl", 
            "md5_digest": "8964ee528c2cf53d0d12e4e98d5b2a30", 
            "downloads": 0, 
            "filename": "jhub_remote_user_auth_mig_mount-0.0.5-py3-none-any.whl", 
            "packagetype": "bdist_wheel", 
            "path": "c0/5c/bf8389ee3e1f3c3ceead059b32112b673a0d09f2b4bb308f174f3ce01d27/jhub_remote_user_auth_mig_mount-0.0.5-py3-none-any.whl", 
            "digests": {
                "sha256": "5aacc16c8af675711b390137234585cb3050eda5c4e3c7999040db76e82fa22d", 
                "md5": "8964ee528c2cf53d0d12e4e98d5b2a30"
            }, 
            "sha256_digest": "5aacc16c8af675711b390137234585cb3050eda5c4e3c7999040db76e82fa22d", 
            "size": 5133
        }, 
        {
            "has_sig": false, 
            "upload_time": "2018-04-03T14:26:57", 
            "comment_text": "", 
            "python_version": "source", 
            "url": "https://pypi.python.org/packages/90/ea/97d4c29ccbed6c833bfeb1e632ae723a3eccb840676b37b8cbc2125693b9/jhub_remote_user_auth_mig_mount-0.0.5.tar.gz", 
            "md5_digest": "d62ee3e0bf55c11d302f72939c146410", 
            "downloads": 0, 
            "filename": "jhub_remote_user_auth_mig_mount-0.0.5.tar.gz", 
            "packagetype": "sdist", 
            "path": "90/ea/97d4c29ccbed6c833bfeb1e632ae723a3eccb840676b37b8cbc2125693b9/jhub_remote_user_auth_mig_mount-0.0.5.tar.gz", 
            "digests": {
                "sha256": "4ac4b0b720a132fcc8940525760a2012cf1933f222863ef3f91fb2c70e1264b4", 
                "md5": "d62ee3e0bf55c11d302f72939c146410"
            }, 
            "sha256_digest": "4ac4b0b720a132fcc8940525760a2012cf1933f222863ef3f91fb2c70e1264b4", 
            "size": 4775
        }
    ], 
    "_id": null, 
    "cheesecake_installability_id": null
}