ビュー:
質問
DocuWare APIを使用する際、フリーライセンスがないことに関する401エラーはどのように回避できますか?
 
Answer:
一般的には、2つの選択肢があります。クッキーを使用してセッションを維持するか、トークンを使用して古いセッションを再利用するかです。そのためのプロセスは、以下に説明されています。
認証:
クッキー/トークンを使う前に、最初のセッションが必要です。したがって、アプリケーションはDocuWareにログインしなければなりません。そのためには、認証データを含む post リクエストを /Account/Logon エンドポイントに送信します。

LogOff:
/Account/LogOffエンドポイントを経由してログオフが実行されると、ユーザーはDocuWareからログアウトします。現在のセッション・クッキーは無効になり、その後は使用できなくなります。つまり、新しいセッションを作成する必要があります。2分以内に再度ログインを試みても無料のライセンスがない場合、「None of the registered licenses are available for client [user name]」というメッセージとともに401 HTTPステータスコードが返されます。

401応答を回避する:
以下のいずれかのオプションを使用することで、上記の401ステータスコードを回避できます。

クッキーを使用してセッションを維持する:
ログオン後、.DWPLATFORMAUTHクッキーをクッキーコンテナに保存します。これで、CookieコンテナからのCookieは、DocuWare APIへの次のすべてのリクエストで使用できるようになります。ログオフが実行される限り、アプリケーションは再認証することなく古いセッションを使用でき、1つのクライアント・ライセンスしか使用しません。アプリケーションが不定期にDocuWare APIにリクエストを送信する場合は、この方法を使用してください。Cookieの有効期限は20年に設定されており、ログオフが実行されない限り機能するはずです。

トークンを使用して2分以内に再接続する:
/Account/LogOffエンドポイントを呼び出してから2分以内に、DocuWare APIへの再接続が必要になることがあります。401エラーを回避するには、Cookieを使用してセッションを維持する代わりに、トークンを使用します。トークンは、/Organizations/LoginTokenエンドポイントをpostメソッドで呼び出すことで、ログオフ前に作成することができます。この呼び出しには、ターゲット製品、使用法(Multi、Single)、およびライフタイムが指定されたボディが必要です。

{

"TargetProducts":["PlatformService"],
"Usage": "Multi"

"Lifetime":"1.00:00:00"
}

レスポンスには、プラットフォームが提供するトークンが含まれます。その後、トークンを /Account/TokenLogOn にポストすることで認証を行うことができます。この認証方法では、ログオフする前に使用していたユーザーライセンスを再利用することができます。トークンには有効期限があり、トークンのリクエスト時に設定できます(Lifetimeパラメータ)。ほとんどのDocuWareアプリケーション(Desktop Appsなど)では、365日の有効期間を持つトークンが使用されます。このプロセスを繰り返すには、ログオフする前に新しいトークンを作成し、常に最新のトークンを使用してログイン操作を実行することが重要です。
 
KBAは、クラウドとオンプレミスの両方の組織に適用されます。
 
注意:この記事英語からの翻訳ですこの記事まれる情報オリジナルの英語版製品づくものです。翻訳版記事使用されている文法などには、細かいりがある場合があります。翻訳正確さを完全保証することは出来かねますがほとんどの場合、十分情報られるとわれます。万一、疑問じた場合、英語版記事えてごください