REST API スコープのトラブルシューティング

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:4分
  • トラブルシューティングのアクションは、REST API スコープの設定や実行時の一般的な問題解決に役立ちます。

    表 : 1. トラブルシューティング
    問題 アクション
    REST API が認証スコープにリンクされているのに、ベアラートークン認証を使用しても実行時に認証スコープのチェックが行われない。
    • sys_api_access_policy レコードがアクティブであることを確認します。ランタイムでは非アクティブなレコードが無視されます。
    • プロパティ com.glide.rest.api.auth.scope.check.enable が false に設定されているかどうかを確認します。
    • OAuth トークンに useraccount 認証スコープがあるかどうかを確認します。
    REST API が auth_scope1にリンクされているのに、auth_scope2 があるアクセストークンでも REST API にアクセスできてしまう。
    • このレコードがアクティブかどうかを確認します。
    • この REST を確認して、API が同じでありながら異なるメソッド、バージョン、またはリソースを適用する他のレコードがあるかどうかを確認します。
    REST API が認証スコープにリンクされているのに、basicAuthmutualAuth に対して実行時に認証スコープのチェックが行われない。 REST API 認証スコープは OAuth アクセストークンまたは OIDC トークンにのみ適用されるため、これは予想どおりの動作です。BasicAuth、セッション Cookie、および証明書ベースの認証は適用されません。
    OAuth アクセストークンを使用すると、REST API の呼び出しで 403 が返される。 「必要な API アクセススコープがありません (Missing required api access scope)」というエラーメッセージがあるかどうか確認してください。もしあれば、この REST API の認証スコープのチェックは失敗します。
    事前定義した useraccount が削除されて復元できない。 useraccount を他のインスタンスから xml としてエクスポートしてインポートするか、useraccount を作成して、システムプロパティ glide.oauth.token.scope.useraccount を新しく作成された sys_id レコードに変更します。

    よく寄せられる質問

    REST API 認証スコープを使用する際によく寄せられる質問を以下に示します。

    1 つの OAuth トークンを複数の認証スコープにリンクすることはできますか。
    はい。1 つの oauth_entity を複数の認証スコープとリンクすることができます。この oauth_entity によって発行されるすべての OAuth トークンに同じ認証スコープが設定されます。
    認証スコープが異なる別々の OAuth トークンで同じ REST API にアクセスできますか。
    はい。異なる認証スコープで同じ REST API に対してアクセスできます。1 つの認証スコープが一致する限り、認証スコープから結果が返されます。
    useraccount 認証スコープのある OAuth アクセストークンで任意の REST API にアクセスできますか。
    はい。useraccount には認証スコープへのフルアクセス権があります。
    OAuth アクセストークンの OAuth スコープは動的に変更できますか。
    はい。oauth_credential テーブルでは認証スコープがアクセストークンでハードコードされていません。代わりに、実行時にリンクされた oauth_entity から認証スコープが取得されます。
    OAuth トークンは更新後も同じ認証スコープを保持できますか。
    はい。oauth_adminoauth_entityにリンクされた認証スコープを変更しない限り、トークンの更新後も認証スコープは変更されません。
    事前定義された useraccount 認証スコープのレコードが削除されました。useraccount という名前の新しい認証スコープを作成できますか。
    同じ useraccount で新しい認証スコープを作成することはできません。ランタイムでは、名前の代わりに sys_id を使用して認証スコープのチェックを行い、システムプロパティ glide.oauth.token.scope.useraccount を新しく作成された sys_id レコードに変更します。
    oauth_entity にリンクされた認証スコープをアドミニストレーターが変更すると、この OAuth エンティティによって発行された既存のすべての OAuth アクセストークンも変更されますか。
    はい。認証スコープは OAuth アクセストークンに直接リンクされておらず、実行時に oauth_entity から取得されます。
    同じ oauth_entity によって発行された別々の OAuth アクセストークンに異なる認証スコープを設定することはできますか。
    いいえ。トークンへのすべてのアクセスが同じ oauth_entity によって発行されているため、認証スコープは常に同じになります。
    ユーザーが特定のエンドポイントに対して複数の異なる認証スコープを定義することはできますか。
    いいえ。特定の REST API エンドポイントに対しては一意の制約チェックがあります。ただし、同じ REST API エンドポイントに対しては、複数の一致する認証スコープが存在する場合があります。
    認証スコープのチェックは BasicAuth にも使用されますか。
    いいえ、認証スコープのチェックは OAuth アクセストークンと OIDC トークンのみであり、basicAuthmutualAuthには適用されません。