2012-03-30 18 views
1

新しいD2L REST APIで認証が動作する方法について私が誰かを教えてくれることを願っています。 "GetStarted"サンプルコードを読んで遊んでいるので、 "User Identity Level"と "User Acceptance"に基づいているようです。Desire2Learn REST APIとSOAPの認証方法

私たちの場合、これは少し問題です。

私たちは、学生がアクティビティを完了して(D2Lの外で)、グレードを与えられたカスタムツールをいくつか持っています。これらのツールは、この方法で提供されたグレードが、D2Lインスタンスの所定のコースのグレードブックの列に関連付けられるように設定されています。現在SOAPを使用しているため、学生がタスクを完了したときに、そのコースの関連する成績簿の欄にグレードが自動的にエクスポートされるように、特権Webサービスアカウントを使用しています。

RESTのドキュメントからは、ログインするたびに毎回ツールの使用を受け入れる必要があるため、特権Webサービスアカウントを使用することはもはや不可能であると私は理解しています。この作業を完了した学生はこの情報を持っていません(また、それらも必要なはずです)。学生レベルのアクセス権は、彼が "ユーザーアイデンティティ"を使用できないようにグレードブックの列をアップグレードすることを許可しません。

私が考えることのできる唯一の選択肢は、他のすべての成績を保存することです。次に、適切な場合、コースのインストラクターはサインインし、「ユーザー識別レベル」と「ユーザー受け入れ」を使用してグレードブックをバッチ更新しますか?

これは間違いありませんか?

私たちにとっては、自分のツールの認証方法と特権Webサービスアカウントに依存しているので、これは非常に面倒です。

答えて

1

手動のログインを追加する必要はなく、このシナリオでは2つの選択肢があります。両方とも、Valence認証システムが鍵と署名を使用するという事実を利用しています。トークンを送信するのではなく署名を使用することで、平文のapiもセッションハイジャックの対象にはならず、その結果、キーは安全に長時間有効にしておくことができます。この期間は通常30日に設定されていますが、説明したようなアプリケーションが使用されている場合は、タイムアウトを設定しないことをお勧めします。サーバーのこのタイムアウトを調整する方法についてサポートに連絡することができます。 (パスワードがリセットされたり、明示的に取り消された場合でも、キーはリセットされます。直接ユーザーのパスワードを受け取るか、または保存するアプリケーションなしで、次のようなシナリオが考えられる長寿命のキーと

(キーストレージがまだしっかりと行う必要がある):

インストラクターアカウントのコンテキスト:アプリケーションのワークフローが既に必要とする場合インストラクターがプロセスをアクティブ化または設定するために、そのインストラクターのユーザーIDとユーザーキーを初期セッション中に保持し、後でグレードを送信するために使用することができます。これは、特別な口座や特典を必要としませんが、ワークフローにすでにインストラクターのコンテキストが含まれている場合にのみ適用されます。

ユーティリティアカウントのコンテキスト:アプリケーションにインストラクターが含まれていない場合、グレードを更新する権限を持つユーティリティアカウントを作成することは可能です。これはD2LWSで既に使用されているアプローチですが、余計な手順が必要です。このシナリオでは、ユーティリティアカウントのキーが帯域外で確立されます(たとえば、開始サンプル(http://docs.valence.desire2learn.com/samples/gettingStarted.html)にキーが表示されます)。あるいは、ユーティリティー・アカウントから鍵を自動的に記録するインストールまたは構成タイプ・プロセスを作成することもできます。これらのキーが記録された後、追加のインタラクティブなセッションは必要ありません。