From 3f3de736606a043d31bac7b4022e79b33a6dfdd4 Mon Sep 17 00:00:00 2001 From: Chris Holdgraf Date: Tue, 7 Aug 2018 16:20:25 -0700 Subject: [PATCH] adding documentation for GitHub OAuth --- docs/howto/auth/github.rst | 60 ++++++++++++++++++ docs/images/auth/github/client_id_secret.png | Bin 0 -> 34993 bytes .../images/auth/github/create_application.png | Bin 0 -> 32974 bytes docs/images/auth/github/login_button.png | Bin 0 -> 6831 bytes docs/index.rst | 1 + 5 files changed, 61 insertions(+) create mode 100644 docs/howto/auth/github.rst create mode 100644 docs/images/auth/github/client_id_secret.png create mode 100644 docs/images/auth/github/create_application.png create mode 100644 docs/images/auth/github/login_button.png diff --git a/docs/howto/auth/github.rst b/docs/howto/auth/github.rst new file mode 100644 index 0000000..7962657 --- /dev/null +++ b/docs/howto/auth/github.rst @@ -0,0 +1,60 @@ +.. _howto/auth/github: + +=================================== +Authenticate using GitHub Usernames +=================================== + +The **GitHub Authenticator** lets users log into your JupyterHub using their +GitHub user ID / password. To do so, you'll first need to register an +application with GitHub, and then provide information about this +application to your ``tljh`` configuration. + +Enabling the authenticator +========================== + +.. note:: + + You'll need a GitHub account in order to complete these steps. + +#. Create a GitHub application + #. Go to the `GitHub OAuth app creation page `_. + #. **Application name**: Choose a descriptive application name (e.g. ``tljh``) + #. **Homepage URL**: Use the IP address or URL of your JupyterHub. e.g. ``http://```. + #. **Application description**: Use any description that you like. + #. **Authorization callback URL**: Insert text with the following form:: + + http:///hub/oauth_callback + + #. When you're done filling in the page, it should look something like this: + + .. image:: ../../images/auth/github/create_application.png + :alt: Create a GitHub OAuth application + #. Click "Register application". + #. You'll be taken to a page with the registered application details. Note + the **Client ID** and **Client Secret**, as you will use these later. + + .. image:: ../../images/auth/github/client_id_secret.png + :alt: Your client ID and secret + +#. Configure your JupyterHub to use the GitHub Oathenticator + #. Log in as an administrator account to your JupyterHub. + #. Open a terminal on your JupyterHub. + #. Configure the GitHub OAuthenticator to use your client ID and secret with the following commands:: + + sudo -E tljh-config set auth.GitHubOAuthenticator.client_id '' + sudo -E tljh-config set auth.GitHubOAuthenticator.client_secret '' + + #. Tell your JupyterHub to *use* the GitHub OAuthenticator for authentication:: + + sudo -E tljh-config set auth.type oauthenticator.github.GitHubOAuthenticator + + #. Restart your JupyterHub so that new users see these changes:: + + sudo -E tljh-config reload +#. Confirm that the new authentactor works. + #. Open an **incognito window** in your browser. + #. Go to your JupyterHub URL. + #. You should see a GitHub login button like below: + + .. image:: ../../images/auth/github/client_id_secret.png + :alt: The GitHub authenticator login button. diff --git a/docs/images/auth/github/client_id_secret.png b/docs/images/auth/github/client_id_secret.png new file mode 100644 index 0000000000000000000000000000000000000000..3a290564fb8b44d201c9b5d195316e4d950ec40b GIT binary patch literal 34993 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 literal 0 HcmV?d00001 diff --git a/docs/images/auth/github/create_application.png b/docs/images/auth/github/create_application.png new file mode 100644 index 0000000000000000000000000000000000000000..38306e701921127d1007f0ff72c223ccdd88647d GIT binary patch literal 32974 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 RZGM1nbi?d=)zt@2{|lgiXMq3! literal 0 HcmV?d00001 diff --git a/docs/images/auth/github/login_button.png b/docs/images/auth/github/login_button.png new file mode 100644 index 0000000000000000000000000000000000000000..6eca51d55a82d0adca93d9bee8debee8dd95ee9c GIT binary patch literal 6831 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 literal 0 HcmV?d00001 diff --git a/docs/index.rst b/docs/index.rst index 9f68ce7..1188977 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -68,6 +68,7 @@ with your JupyterHub. :titlesonly: howto/auth/dummy + howto/auth/github Topic Guides ============