質問
DocuWare APIを使用する際、フリーライセンスがないことに関する401エラーはどのように回避できますか?
回答:
一般的には、クッキーを使用してセッションを維持するか、トークンを使用して古いセッションを再利用するかの2つの選択肢があります。そのためのプロセスを以下に説明します。
一般的には、クッキーを使用してセッションを維持するか、トークンを使用して古いセッションを再利用するかの2つの選択肢があります。そのためのプロセスを以下に説明します。
認証:
クッキー/トークンを使う前に、最初のセッションが要求されます。したがって、アプリケーションはDocuWareにログインする必要があります。そのためには、認証データを含むpostリクエストを/Account/Loginエンドポイントに送信します。
LogOff:
/Account/LogOffエンドポイントを介してログオフが実行されると、ユーザーはDocuWareからログアウトします。現在のセッション・クッキーは無効になり、その後は使用できなくなります。つまり、新しいセッションを作成する必要があります。2分以内に再度ログインを試みても無料のライセンスがない場合、「None of the registered licenses are available for client [user name]」というメッセージとともに401 HTTPステータスコードが返されます。
401応答を回避する:
以下のいずれかのオプションを使用すると、上記の401ステータスコードを回避できます。
Cookieを使用してセッションを保持する:
ログオン後、.DWPLATFORMAUTH CookieをCookieコンテナに保存します。これで、CookieコンテナからのCookieは、DocuWare APIへの次のすべてのリクエストで使用できるようになります。ログオフが実行される限り、アプリケーションは再認証することなく古いセッションを使用でき、1つのクライアント・ライセンスしか使用しません。アプリケーションが不定期にDocuWare APIにリクエストを送信する場合は、この方法を使用してください。Cookieの有効期限は20年に設定されており、ログオフが実行されない限り機能するはずです。
トークンを使用して2分以内に再接続する:
/Account/LogOffエンドポイントを呼び出してから2分以内にDocuWare APIに再接続する必要がある場合があります。401エラーを回避するには、Cookieを使用してセッションを維持する代わりに、トークンを使用します。トークンは、/Organizations/LoginTokenエンドポイントをpostメソッドで呼び出すことで、ログオフ前に作成することができます。この呼び出しには、ターゲット製品、使用法(Multi、Single)、および有効期間を指定するボディが必要です。トークンを作成する JSON ボディの例を以下に示します:
LogOff:
/Account/LogOffエンドポイントを介してログオフが実行されると、ユーザーはDocuWareからログアウトします。現在のセッション・クッキーは無効になり、その後は使用できなくなります。つまり、新しいセッションを作成する必要があります。2分以内に再度ログインを試みても無料のライセンスがない場合、「None of the registered licenses are available for client [user name]」というメッセージとともに401 HTTPステータスコードが返されます。
401応答を回避する:
以下のいずれかのオプションを使用すると、上記の401ステータスコードを回避できます。
Cookieを使用してセッションを保持する:
ログオン後、.DWPLATFORMAUTH CookieをCookieコンテナに保存します。これで、CookieコンテナからのCookieは、DocuWare APIへの次のすべてのリクエストで使用できるようになります。ログオフが実行される限り、アプリケーションは再認証することなく古いセッションを使用でき、1つのクライアント・ライセンスしか使用しません。アプリケーションが不定期にDocuWare APIにリクエストを送信する場合は、この方法を使用してください。Cookieの有効期限は20年に設定されており、ログオフが実行されない限り機能するはずです。
トークンを使用して2分以内に再接続する:
/Account/LogOffエンドポイントを呼び出してから2分以内にDocuWare APIに再接続する必要がある場合があります。401エラーを回避するには、Cookieを使用してセッションを維持する代わりに、トークンを使用します。トークンは、/Organizations/LoginTokenエンドポイントをpostメソッドで呼び出すことで、ログオフ前に作成することができます。この呼び出しには、ターゲット製品、使用法(Multi、Single)、および有効期間を指定するボディが必要です。トークンを作成する JSON ボディの例を以下に示します:
{
"TargetProducts":["PlatformService"],
"Usage": "Multi"、
"Lifetime":"1.00:00:00"
}
"TargetProducts":["PlatformService"],
"Usage": "Multi"、
"Lifetime":"1.00:00:00"
}
レスポンスには、プラットフォームが提供するトークンが含まれます。その後、トークンを /Account/TokenLogOn にポストすることで認証を行います。この認証方法では、ログオフする前に使用していたユーザーライセンスを再利用することができます。トークンには有効期限があり、トークンのリクエスト時に設定することができます(Lifetimeパラメータ)。ほとんどのDocuWareアプリケーション(Desktop Appsなど)では、有効期間が365日のトークンを使用します。このプロセスを繰り返すには、ログオフする前に新しいトークンを作成し、常に最新のトークンを使用してログイン操作を実行することが重要です。
KBA は、クラウド組織とオンプレミス組織の両方に適用されます。
ご注意:この記事は英語からの翻訳です。この記事に含まれる情報は、オリジナルの英語版製品に基づくものです。翻訳版の記事で使用されている文法などには、細かい誤りがある場合があります。翻訳の正確さを完全に保証することは出来かねますが、ほとんどの場合、十分な情報が得られると思われます。万が一、疑問が生じた場合は、英語版の記事に切り替えてご覧ください。