Strategy One
Strategy Library OAuth2 の設定
Strategy One(2025年5月)より、環境をOAuth 2.0を使用してLibraryにログインするように設定できます。このオプションを使用して、Library サーバーで有効になっている認証モードに関係なく、Library サーバーを通じて Intelligence Server への認証方法を統合します。
この機能は Managed Cloud Enterprise でのみサポートされています。
Library OAuth2 を設定するには、次のトピックを参照してください:
前提条件
-
最新バージョンの Workstation がインストールされていることを確認してください。
-
環境の管理権限が必要です。
-
OAuth2 機能が有効になっていることを確認してください。
WEB-INF/classes/config/configOverride.propertiesファイルを確認し、auth.oauth2.server.enabled = trueが設定されていることを確認します。
OAuth2 クライアントの設定
- Workstation ウィンドウを開きます。
- ナビゲーション ペインで、環境を選択して利用可能な環境を表示します。環境が接続されていることを確認してください。
-
環境を右クリックして プロパティ を選択します。
-
左ペインで Library をクリックします。
- OAuth2 設定 のサーバーの下に、次のフィールドが表示されます:
- 認証エンドポイント:ユーザーがアプリケーションを認証するためにリダイレクトされる URL。
- トークン エンドポイント:アプリケーションが認証コードをアクセス トークンと交換する URL。
- OAuth 設定 で、クライアント の下の 作成 をクリックします。
-
表示名 にクライアントの名前を入力します。
-
クライアント タイプ ドロップダウン リストを展開してオプションを選択します。
シングル ページ アプリケーション または ネイティブ アプリケーション を選択した場合、Proof Key for Code Exchange (PKCE) が必要です。
-
コピー
をクリックして、クライアント ID と クライアント シークレット
をコピーします。クライアント シークレット は一度だけ表示されます。
-
リダイレクト URI を入力します。URI を追加するには、新規作成 をクリックします。
例:
https://example.com/oauth2/callback、http://localhost:8080/oauth2/callback、またはcustom.scheme://auth。非localhost URI には HTTPS が必要です。
- オプションで リフレッシュ トークン の横のチェックボックスを選択して、ユーザーの操作なしで新しいアクセス トークンを取得するリフレッシュ トークンを追加し、次のフィールドを設定します:
- リフレッシュ トークンの再利用:このチェックボックスを選択すると、リフレッシュ トークンを再利用して新しいアクセス トークンを取得します。このチェックボックスを選択しない場合、新しいアクセス トークンを取得するたびに新しいリフレッシュ トークンが発行されます。
- リフレッシュ トークンの有効期間:リフレッシュ トークンの期間を分単位で値を入力します。
- OK をクリックします。
- 設定が保存されたことを確認するには:
環境を右クリックして プロパティ を選択します。
Library をクリックして OAuth2 設定 セクションを確認します。
さらにクライアントを追加するには、追加
をクリックして手順 6 から 11 を繰り返します。
クライアント シークレット を再生成するには、再生成
をクリックします。OK をクリックします。
トラブルシューティング
/oauth2/authorize エンドポイントが 404 エラーを返す
WEB-INF/classes/config/configOverride.properties
ファイルを確認し、auth.oauth2.server.enabled = true が設定されていることを確認してください。
/oauth2/authorize エンドポイントが HTTP ステータス 400 - Bad Request を返す
Workstation の OAuth2 クライアント設定を確認し、/oauth2/authorize
リクエストのパラメータが次のパラメータを含めて一致していることを確認してください:
-
client_id:クライアント ID が一致していることを確認してください。 -
redirect_uri:リダイレクト URI が一致していることを確認してください。 -
response_type:レスポンス タイプはcodeです。 -
scope:scopeパラメータがoffline_accessの場合、リフレッシュ トークンが選択されていることを確認してください。 -
code_challenge:クライアント タイプがシングル ページ アプリケーションまたはネイティブ アプリケーションの場合、このフィールドにエントリがあることを確認してください。 -
code_challenge_method:クライアント タイプがシングル ページ アプリケーションまたはネイティブ アプリケーションの場合、このフィールドにエントリがあることを確認してください。
/oauth2/token レスポンスでリフレッシュ トークンが返されない
/oauth2/authorize リクエストに offline_access スコープがあり、クライアント設定で リフレッシュ トークン
オプションが選択されていることを確認してください。
OAuth2 クライアント タイプが シングル ページ アプリケーション または ネイティブ アプリケーション として設定されている場合でも、トークン交換リクエストに
client_secret が含まれていることを確認してください。このような場合、client_secret
はもはや機密ではありません。コードが侵害されるリスクを軽減するための追加のセキュリティ対策として、Proof Key for Code Exchange (PKCE) が実装されています。
/oauth2/token エンドポイントで {error: 'server_error'} が返される
Library サーバーと Intelligence Server
の間で信頼関係が確立されていることを確認してください。これを行うには、WEB-INF/classes/config/configOverride.properties
ファイルを確認し、iserver.trustToken フィールドに有効な値があることを確認してください。
信頼トークンが存在する場合は、Library Web 管理ページまたは Workstation で再生成してください。
信頼トークンを再生成した後、Library サーバーを再起動する必要があります。
リフレッシュ トークンを使用してアクセス トークンを交換すると 400 エラー:{"error" : "invalid_grant} が返される
リフレッシュ トークンが期限切れになっているか、OAuth2 サーバーが再利用しないように設定されている可能性があります。Workstation OAuth2 設定ページで リフレッシュ トークンの再利用 が選択されていることを確認してください。
Library OAuth2 サーバーが In-Memory トークン ストアを使用するように設定され、サーバーが再起動された可能性があります。サーバーが再起動されると、リフレッシュ
トークンが失われます。WEB-INF/classes/config/configOverride.properties ファイルの
auth.oauth2.server.storage フィールドを確認し、redis に設定されていることを確認してください。
