2012-05-08 7 views
2

Desire2Learn Valence APIには、サーバーアプリケーション用の非インタラクティブ認証フローがありますか? Valenceのドキュメントは、認証アプリケーションが対話型のクライアントプロセスであると想定しているようです。Desire2Learn Valence API非インタラクティブ認証

答えて

0

これここにある質問に幾分接続されている:

Authenticaton Method for Desire2Learn REST API vs SOAP

ヴァランスのAPIは、対話型の認証ステップが発生していることを必要としない、しかし、これは非のために、「インストールの時間」で行うことができますインタラクティブアプリ。このプロセスの結果は、「長い間」使用できる鍵です。

一部のバージョンおよびサービスパックのレベルでは、これは30日間でしたが、「期限切れではない」ことができます。 "期限切れではありません"は今後のデフォルトの予定ですが、インスタンスで30日に設定されている場合は、変更依頼を行うことができます。

2

実際には、非対話的にサイトにログインすることでこれを達成しました。 このルートを試す場合は、d2lSecureSessionVal、d2lSessionVal、およびLogin Cookieを取得し、後続の要求に追加するようにしてください。

要求1: 1> POST HTTP {S}://elearning.test.masked.edu/d2l/lp/auth/login/login.d2l 1>コンテンツタイプ:アプリケーション/ X-WWW- form-urlencodedで のuserName = {あなたのユーザー名} &パスワード= {パスワード}

回答1:この要求に応じて、ターゲットが本当にたいした 要求2しないことを

1 < Set-Cookie: LoginKey=; expires=Sat, 01-Jan-2000 05:00:00 GMT; path=/ 
1 < Set-Cookie: d2lSecureSessionVal=masked; path=/; HttpOnly <-- grab this 
1 < Set-Cookie: Login=true; path=/ <-- grab this 
1 < Set-Cookie: d2lSessionVal=masked; path=/ <-- grab this 

注: 2> GET http {s}://elearning.test.masked.edu:443/d2l/auth/api/token? x_a = ZNsxGYZuSmasked & x_b = 7jkhCKfEmaked & x_target = https%3A%2F%2Fwww.maked.edu 2> Cookie:d2lSecureSessionVal = masked; d2lSessionVal =マスク;ログイン= true;

あなたをターゲットサイトにリダイレクトしようとします。リダイレクトを無視すると、x_aはあなたが実際に何をしているかです。

レスポンス2:要求を許可する]チェックボックスを表示するページがあるので、この応答から

2 < 302 
2 < X-AspNet-Version: 2.0.50727 
2 < Date: Tue, 09 Oct 2012 14:03:45 GMT 
2 < Content-Length: 248 
2 < X-XSS-Protection: 0 
2 < Location: http{s}://www.masked.edu?x_a=DxHmasked&x_b=aQVkg-7jkhCKfEmaked&x_c=IfLBcKYFf8masked 
2 < Set-Cookie: TS50cdf6=masked; Path=/ 
2 < Content-Type: text/html; charset=utf-8 
2 < X-Powered-By: ASP.NET 
2 < Cache-Control: private 
2 < 

グラブX_Aと初めて時間を浪費であるあなたの要求

にx_bとしてそれを使用します特定のホストから。 authトークンリクエストを取得してブラウザでポップしました。常に許可するようにチェックボックスをオンにした後は、正常に機能します。

authトークンは時折失効することにも注意してください。それをコード化し、起こったときに再認証するようにしてください。

+0

1回限り有効です。しかし、アプリがクッキーとURLで遊ぶのはちょっと危険です。 D2Lは制御されたインターフェイスの一部ではないため、クッキー戦略を変更する可能性があります。サイドがログインシーケンスや技術(Shibなど)を変更すると、別のページが表示されることになります。 – Cadmium

+0

おそらくやや危険です。価数はD2L ___に1つの問題なしで含まれているので、これまで行ってきました。トークンをハードコーディングすることを選択した場合、トークンが期限切れになったときに驚くことになります(アップグレードするたびに発生するようです)。 –

3

私が作成した「サービスアカウント」のキーを取得するために、ログイン後にブラウザのユーザキーを示すPHPのサンプルコードから、サンプルコードを使用しました。

これをPHPクラスに入れて、再利用して接続することができます。だから私のコードで、私は電話することができます

$authcontext = d2l::connect(); 

それは本当に魅力のように動作します。