0

私はLTIウィジェットに取り組んでいます.LTIウィジェットは、追加情報を取得するためにAPIに対して認証する必要があります.

API ユーザー認証を処理し、LTI 情報を保持してリダイレクトする方法を見つけようとして苦労しています。

返されるリクエスト文字列は次のようになります。

Array ( [x_a] => ********************** 
        [x_b] => ********************** 
        [x_c] => *********************************** )

問題は、次の条件を満たす場合にのみロードするように PHP LTI スクリプトをセットアップしていることです。

if(!isset($_REQUEST['lis_outcome_service_url'])
|| !isset($_REQUEST['lis_result_sourcedid'])
|| !isset($_REQUEST['oauth_consumer_key'])
)

x_a はユーザー ID、x_b はユーザー キーです。x_c とは何ですか?

どんな提案でも大歓迎です!

4

1 に答える 1

0

私の答えは、Valence dev platform の IDKey Auth スキームに関する詳細なトピックを参照することです。

ここで参照している認証シーケンスの部分は、シーケンスの第 2 段階に相当し、ユーザーが自分自身を正常に認証した直後です (このように LTI 起動の後ろに連鎖すると、ユーザーがuser-agent はすでに認証されています。他の方法では LTI の起動を行うことができなかったからです)、サービスは有効期間の長いユーザー トークンをサービスに送り返します。

IDKey 認証ドキュメント トピックの「サードパーティ Web アプリケーションの使用」セクションのシーケンス ノートの手順5 から 7を参照してください。

x_a ={ tokenID } – 有効期間が長いトークンに関連付けられた一意の ID: サービスが Web アプリケーション/ユーザー コンテキストを正確に特定できるように、Web アプリケーションはこの ID を提供できます。

x_b={ tokenKey } – 有効期間が長いトークンに関連付けられたキー: Web アプリケーションはこれをキーとして使用して、セッション署名を生成できます。

x_c={ tokenSig } – トークン ID 署名: サービスは、基本文字列として使用するユーザー ID (tokenID) とユーザー キー (tokenKey) を結合 (およびアンパサンドで区切り) し、アプリケーション キーをキーとして使用します。

に含まれるトークン署名を検証するには、Valence アプリケーション ID/キーのペアを使用する必要があることに注意してくださいx_c

リモート プラグインBrightspace Remote Plugin サービスは、LTI/外部学習ツールの便利なサービス ラッパーであることに注意してください。リモート プラグインに関するドキュメントには、Brightspace LTI の起動を受け取り、方向転換して Valence API 呼び出しを使用して詳細情報を取得できる、単純な Python Web サービス ツール プロバイダーの実装を紹介するかなり詳細なウォークスルー/サンプルが含まれています。それをよく見てみると便利かもしれません。

于 2015-03-23T13:47:23.820 に答える