質問
DocuWare APIを使用する際、フリーライセンスがないことに関する401エラーはどのように回避できますか?
Answer:
一般的には、2つの選択肢があります。クッキーを使用してセッションを維持するか、トークンを使用して古いセッションを再利用するかです。そのためのプロセスは、以下に説明されています。
一般的には、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日の有効期間を持つトークンが使用されます。このプロセスを繰り返すには、ログオフする前に新しいトークンを作成し、常に最新のトークンを使用してログイン操作を実行することが重要です。
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は、クラウドとオンプレミスの両方の組織に適用されます。
ご注意:この記事は英語からの翻訳です。この記事に含まれる情報は、オリジナルの英語版製品に基づくものです。翻訳版の記事で使用されている文法などには、細かい誤りがある場合があります。翻訳の正確さを完全に保証することは出来かねますが、ほとんどの場合、十分な情報が得られると思われます。万が一、疑問が生じた場合は、英語版の記事に切り替えてご覧ください。