flagflag  If you want to see English page, please click "English" Button at Left.
Page Top

jupyterhub-ltia​uthenticator (Moodle - JupyterHub) anchor.png

Page Top

v1.3.0 anchor.png

Page Top

v1.2.0 anchor.png

  • Moodle については Patch 不要
(jupyterhub)# pip install jupyterhub-ltiauthenticator==1.2.0
 
Page Top
jupyterhub_config.py anchor.png
# for LTI v1.2.0
c.JupyterHub.authenticator_class = 'ltiauthenticator.LTIAuthenticator'
c.LTI11Authenticator.consumers = {
   "b18e82ec683724743236fade71350720029a29144a585c66f6741d8e9c6e0d83" : "c0fe2924dbb0f4701d898d36aaf9fd89c7a3ed3a7db6f0003d0e825a7eccb41c"
}
c.LTI11Authenticator.username_key = 'ext_user_username'
 
Page Top

Moodle 側 anchor.png

  • 管理者‘IDで,「サイト管理」=> 「プラグイン」=> 「外部ツール:ツールを管理する」(=>「ツールを手動設定する」)
    • デフォルト起動コンテナは「新しいウィンドウ」にする.
       
  • 埋め込み表示に設定した場合,chrome, edge では cookieが送信されないので,ログインできない(Firefox は可能 2021 9/3)
    • SameSite=Lax であるため,iframe 使用時は Moodleのホストと JupyterHub のホストが異なる場合は cookie が送信されない.
    • JupyterHub のソースコードを散々引っ掻き回して,ようやく理解した.
Page Top

etc anchor.png

Page Top
error : module 'oauthlib.oauth1.rfc5849.signature' has no attribute 'signature_base_string' anchor.png
  • ライブラリが足りない
    • conda install oauthlib
       
Page Top
欠点:利点? anchor.png
  • 一度 Moodle 経由でログインすると,ブラウザがアカウントを覚えているらしく,次回からは Moodle 経由で無くともログイン可能. ログアウトすればOK
  • その他の一般ユーザ認証と併用できない.
     
Page Top

OLD: v1.0.0 anchor.png

Page Top
Learning Tools Interoperability anchor.png
  • 既にインストールされている ltiauthenticator だと Moodle にログインできない.
    • "Moodleと Jupyter Notebookの 連携 によるプログラミング 教育環境 の 構築" 石坂徹,桑田喜隆, et. al., Moodle Moot Japan 2019 Proceedings (2019), pp.32-37
      • /usr/local/anaconda/envs/jupyterhub/lib/​python3.8/site-packages/ltiauthenticator​/__init__.py
        152             # Before we return lti_user_id, check to see if a canvas_custom_user_id was sent.
        153             # If so, this indicates two things:
        154             # 1. The request was sent from Canvas, not edX
        155             # 2. The request was sent from a Canvas course not running in anonymous mode
        156             # If this is the case we want to use the canvas ID to allow grade returns through the Canvas API
        157             # If Canvas is running in anonymous mode, we\'ll still want the \'user_id\' (which is the `lti_user_id``)
        158
        159             canvas_id = handler.get_body_argument('custom_canvas_user_id', default=None)
        160 +           product_code = handler.get_body_argument('tool_consumer_info_product_family_code', default=None)
        161
        162             if canvas_id is not None:
        163                 user_id = handler.get_body_argument('custom_canvas_user_id')
        164 +           elif 'moodle' in product_code:
        165 +                user_id = handler.get_body_argument('ext_user_username')
        166             else:
        167                 user_id = handler.get_body_argument('user_id')
        168
Page Top
jupyterhub_config.py anchor.png
c.JupyterHub.authenticator_class = 'ltiauthenticator.LTIAuthenticator'
c.LTIAuthenticator.consumers = {
     "b18e82ec683724743236fade71350720029a29144a585c66f6741d8e9c6e0d83" : "c0fe2924dbb0f4701d898d36aaf9fd89c7a3ed3a7db6f0003d0e825a7eccb41c"
}
  • キーは二つとも openssl rand -hex 32 で生成.
    • openssl rand -hex 32
       

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 509, today: 1, yesterday: 0
最終更新: 2023-05-07 (日) 14:36:56 (JST) (366d) by iseki

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 5月翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
<今日>

オンライン状況

58 人のユーザが現在オンラインです。 (12 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 58

もっと...

アクセスカウンタ

今日 : 5949594959495949
昨日 : 1265612656126561265612656
総計 : 2353138023531380235313802353138023531380235313802353138023531380
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com