2

テスト LTI ツール プロバイダーを作成し、 http://www.imsglobal.org/developers/LTI/test/v1p1/lms.phpで IMSGlobal テスト コンシューマーに対して正常にテストしました。

ただし、クライアントの D2L テスト インスタンスでエンドポイントを使用すると、oAuth 署名が一致しません。D2L によって生成された署名ベース文字列は、私のものとは何らかの形で異なっていると思われます。比較のために D2L ツール コンシューマーのベース文字列を取得する方法はありますか?

4

2 に答える 2

3

D2L ツール コンシューマーの実装は、IMS 参照実装に対しても正常にテストされています。ただし、外部学習ツールを Learning Environment に登録して構成するのは、少しトリッキーなプロセスです。

外部学習ツール管理ツールでは、特定のリスト リンク (埋め込まれている場合、LMS に LTI 起動ポイントを作成します) と、ツール プロバイダー構成のリスト (たとえば、1 つのツール プロバイダーがある場合) を管理できます。同じツール プロバイダーの LTI 起動リンクを多数埋め込みたい)。これら 2 つの項目リストを管理するための学習環境での正確な UX は、LE のバージョンによって異なります。LTI を早期にサポートしている LE では、ツール プロバイダー リストは、外部学習ツールの設定ギアの後ろに隠されています。管理ページだと思います。後の LE では、リンクのリストとツール プロバイダーのリストが管理ページでより均等に表示されます。

ツール プロバイダー リストを使用すると、ツール プロバイダーにキーとシークレットを提供し、それを使用して、ツール コンシューマー自体に構成されたデフォルトのキー/シークレットではなく、LTI 起動に署名することができます(「デフォルトの代わりにカスタム ツール コンシューマー情報を使用する」)。 .

リンク リストを使用すると、(a) リンクから LTI 起動に署名することを選択し、(b) ツール コンシューマ キー/シークレットまたは LTI リンク自体に固有のものを使用して起動に署名することができます。外部学習ツール リンク エントリに一致するツール プロバイダ エントリを使用し、そのツール プロバイダ エントリにデフォルトのツール コンシューマ情報をオーバーライドするように設定されたキー/シークレットがある場合、このツール プロバイダ オーバーライド キー/シークレットが優先されることに注意してください。上記の (b) で、ツール コンシューマ キー/シークレットを使用して起動に署名することを選択した場合は、起動に署名することに慣れてください。

はい、それは紛らわしいです。

そのため、リンクの [リンクの編集] ページの設定に応じて、ローンチは署名されているか、署名されていません。ローンチが署名されている場合は、「リンクの編集」ページで提供される「リンク キー/シークレット」で署名する、「ツール コンシューマー キー/シークレット」で署名できます。最後の 1 つである場合は、最初に一致するツール プロバイダー エントリのオーバーライドをチェックしてキー/シークレットを提供し、見つからない場合は LE 全体のキー/シークレット セットを使用します。

すべての設定が完了したら、リンクの [リンクの編集] ページ内から、「リクエストをプレビュー」してテスト起動を行うことができます。また、LTI POST 本文フォームがどのように表示されるかを示すページに移動する「リクエストの詳細をプレビュー」することできます。そこから、oauth プロパティが起動フォームに表示されるかどうかを確認できます。そのプレビュー形式ではない場合、ローンチは署名されていません。oauth プロパティがフォームにある場合、何が送信されるかを確認でき、それらの値を使用してデバッグ/テストを行うことができます。

于 2013-09-13T13:23:51.523 に答える
0

リクエストをプレビューするという Viktor の提案のおかげもあって、これをデバッグすることができました。

ツール プロバイダーで、特定の必須ではない LTI パラメーターをチェックしています。そのようなパラメーターが消費者の要求に存在しない場合、例外をスローするのではなく、空の文字列に設定していました。

IMS テスト コンシューマーを使用して、リクエスト パラメーターを空の文字列に設定すると、ツール コンシューマーがフィールドを完全に省略すると、2 つの base_string が一致しても署名が異なることがわかりました。私はまだこれを完全には理解していません。oAuth についての私の理解では、同じキーとシークレットで署名された 2 つの同一の文字列が同じ署名を生成するということでした。いずれにせよ、リクエスト パラメータの検証が改善され、文字列と署名が一致することが保証されるようになりました。

于 2013-09-13T16:42:18.787 に答える