flagflag  
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
       

Front page   Freeze Diff Backup Copy Rename Reload   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 515, today: 1, yesterday: 1
Last-modified: 2023-05-07 (Sun) 14:36:56 (JST) (378d) by iseki

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
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
Today

Who's Online

43 user(s) are online (3 user(s) are browsing xpwiki)

Members: 0
Guests: 43

more...

Access Counter

Today : 982982982
Yesterday : 4345434543454345
Total : 2365812323658123236581232365812323658123236581232365812323658123
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com