この質問にはいくつかの異なる問題があります。
ユーザーのアクティブな Web セッション。現在、D2L の Valence プラットフォームのユーザー認証はこの方法では機能しません。LMS は、ユーザーとのアクティブなセッションがあることを確認できる場合にのみ、認証プロセスの一部として UserID/Key ペアを返します。
API 呼び出しクライアントは、ユーザーの UserID/Key ペアを取得するために LMS に直接リクエストを行います。
を。LMS がユーザーとのアクティブなセッションを持っている場合、(必要に応じて生成し、) そのアプリケーション/ユーザー ペアのユーザー ID/キー ペアを返します。
b. LMS がユーザーとのアクティブなセッションを持っていない場合は、ユーザーを認証するように構成されているログイン プロセスを実行します。これは、呼び出し元の Web 要求を LMS 自身のユーザー ログイン ページにリダイレクトするか、またはそのリダイレクトが通過する可能性があります。 LMS がユーザーの認証に使用するサードパーティ サービス (構成済みの SSO IDP など)。
これが意味すること: API を使用して認証プロセスを開始し、UserID/Key ペアを取得する場合、呼び出し元の Web ブラウザーは (そのプロセスの一部として) LMS とのアクティブな Web セッションを既に持っています。ユーザーは、LMS がそのために使用する認証プロセスを使用してログインするように求められるか、ユーザーが既にログインしており、呼び出し元のブラウザーはそれを認識します (アクティブなセッションを示す Cookie 状態があるため)。
プログラムによるログイン。現在、D2L の Valence プラットフォームは、ユーザー認証プロセスへの直接参加をサポートしていません。ユーザー ID/パスワード、またはユーザーと LMS の間で共有されるその他の秘密を提供することによって、LMS でユーザーを認証するための呼び出しはありません。Valence セキュリティ モデルは、API を呼び出すクライアントが、ユーザーと LMS の間で共有される認証シークレットを認識しないようにすることを特に目指しています。
Valence Learning Framework API を使用するクライアントは、次のいずれかを行う必要があります。
ユーザー ID/キー ペアの有効期限。LMS によって呼び出し側クライアントに提供されるこれらの認証トークンは、長期間有効であることを意図していることに注意してください。それらは、ブラウザーがユーザーに対して保持する現在の Web セッションよりも長持ちする必要があります。したがって、クライアント アプリケーションは、特にクライアント アプリケーション自身の ID/キー ペアと組み合わせて、それらを安全なデータとして扱う必要があります (ユーザー ID/キー ペアはアプリ独自の ID/キー ペアにバインドされるため)。クライアント アプリケーションがこれらの認証トークンをキャッシュすることを期待していますが、機密情報としてキャッシュされることも期待しています。
アプリケーション用に生成されたユーザーの ID/キー ペアは、次のいずれかのイベントが発生すると期限切れになります。
LMS が生成した ID/キー ペアに関連付けられた有効期限の到着 (LMS 管理者は、これらのトークンのデフォルトの有効期限値が「無期限」であることを確認できます)
ユーザーのパスワードが変更された (ユーザーまたは LMS 管理者がパスワードをリセットしたことによる)
LMS 管理者がユーザーのクライアント アプリ アクセスを手動で取り消す