5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Enterprise認証をJupyterHubに導入する方法:初心者向けガイド

Last updated at Posted at 2024-09-05

はじめに

本記事の目的

  • 本記事の目的は、JupyterHubにGitHub Enterprise認証を導入する具体的な手順を、初心者にもわかりやすく解説することです

対象読者

  • JupyterHubの認証機能をどのように設定すれば良いか分からない方
  • GitHub Enterpriseを使用している企業ユーザー

JupyterHubとは?

JupyterHubの基本概要

  • JupyterHubは、シングルユーザーのJupyter Notebook(JupyterLab)を手軽に複数人で共有できる環境を構築できます

GitHub認証を導入するメリット

認証方式

  • JupyterHubの認証方式には、ローカル認証やLDAP認証、OAuthなど様々な選択肢があります

GitHub Enterprise認証の利便性

  • 既存のGitHub Enterpriseアカウントを利用して手軽にログインできる利便性が得られます。特に、既にGitHub Enterpriseを活用している開発者やチームにとって、認証の一元管理が可能になり、アカウント管理の手間が大幅に軽減されます

必要な準備

oauthenticatorのインストール

JupyterHubにGitHub認証を導入するには、まずoauthenticatorライブラリをインストールする必要があります。oauthenticatorは、OAuthプロトコルを使用した認証をサポートするプラグインで、GitHubをはじめ、GoogleやGitLabなど多くのサービスと連携可能です。
以下のコマンドで、oauthenticatorをインストールします。

python3 -m pip install oauthenticator

GitHub Enterprise OAuthアプリケーションの設定

GitHub EnterpriseでのOAuthアプリの登録手順

JupyterHubでGitHub Enterprise認証を利用するためには、まずGitHub Enterprise上でOAuthアプリケーションを登録する必要があります。
GitHub Enterpriseの「Settings」から左側にあるメニューの下の方にある「Developer settings」へ進み、「OAuth Apps」を選択して新しいアプリを作成します。ここで、アプリケーション名やホームページURL、コールバックURLを入力し、アプリケーションを登録します。

  • OAuth Appsを選択
    image.png

  • URLは各自の環境に合わせたURLを設定してください
    image.png

クライアントIDとシークレットの取得

アプリケーションを登録すると、自動的にクライアントIDが生成されます。さらに、「Generate a new client secret」ボタンをクリックしてクライアントシークレットを生成し、表示されるシークレットを控えておきます。このクライアントIDとシークレットは、JupyterHubの設定に必要な情報であり、GitHub認証を正しく動作させるために必須です。これらの情報は機密情報となるため、慎重に管理し、外部に漏れないように注意してください。

image.png

JupyterHubでのGitHub認証設定

JupyterHubの設定ファイルを生成するために、以下のコマンドを実行します。

jupyterhub --generate-config

jupyterhub_config.pyという名前の設定ファイルが作成されます。このファイルに、GitHub Enterprise認証を有効にするための設定を追加していきます。
jupyterhub_config.pyファイルをvi等のテキストエディタで開き、GitHub Enterprise OAuth認証に必要な設定を以下のように行います。

c.JupyterHub.authenticator_class = 'oauthenticator.github.LocalGitHubOAuthenticator'

# GitHub EnterpriseでのOAuthアプリ登録で取得したクライアントIDとシークレットを設定
c.LocalGitHubOAuthenticator.client_id = 'client_idを入力'
c.LocalGitHubOAuthenticator.client_secret = 'client_secretを入力'

# GitHub EnterpriseのURLを設定
c.LocalGitHubOAuthenticator.github_url = 'https://github.enterprise.com'

# 新しいユーザーのシステムアカウントを自動作成するかどうかを設定します。
c.LocalAuthenticator.create_system_users = True

# すべてのGitHub Enterpriseユーザーのログインを許可するかどうかを設定します。
c.LocalGitHubOAuthenticator.allow_all = True

ログイン可能なユーザーを特定Organizationsに限定する方法

先ほどの設定の場合、GitHub Enterpriseユーザーは全員ログイン可能となりますが、もし特定のOrganizationsに所属しているユーザーのみを許可したい場合は以下のような設定を行います。

# すべてのGitHub Enterpriseユーザーのログインを許可するかどうかを設定します。
c.LocalGitHubOAuthenticator.allow_all = False

# 指定したGitHub EnterpriseのOrganizationsに所属するユーザーだけがログインできるように設定します。
c.LocalGitHubOAuthenticator.allowed_organizations = ['Organizations名']

動作確認

設定ファイルを保存後、JupyterHubを起動すれば、GitHub認証が有効になったことが確認できます。

jupyterhub

もし、jupyterhub_config.pyが違うディレクトリにある場合は、ファイルを指定して起動します。

jupyterhub --config /path/jupyterhub_config.py
  • ブラウザでアクセスして、Username/Passwordを入力してログイン
    image.png

まとめ

この記事では、JupyterHubにGitHub Enterprise認証を導入する手順を初心者向けに解説しました。GitHub Enterpriseを利用することで、企業内でのユーザー管理が簡単になり、セキュリティも強化されます。設定手順を一つずつ確認しながら進めることで、誰でも簡単にJupyterHubの認証機能を導入できるようになります。これにより、開発環境がより効率的かつ安全になり、チーム全体の生産性が向上するでしょう。ぜひ、今回の手順をベースにして、自社の環境に最適な設定を実施してみてください。

参考リンク

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?