REST API スコープのトラブルシューティング
トラブルシューティングのアクションは、REST API スコープの設定や実行時の一般的な問題解決に役立ちます。
| 問題 | アクション |
|---|---|
| REST API が認証スコープにリンクされているのに、ベアラートークン認証を使用しても実行時に認証スコープのチェックが行われない。 |
|
| REST API が auth_scope1にリンクされているのに、auth_scope2 があるアクセストークンでも REST API にアクセスできてしまう。 |
|
| REST API が認証スコープにリンクされているのに、basicAuth と mutualAuth に対して実行時に認証スコープのチェックが行われない。 | 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_adminがoauth_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 トークンのみであり、basicAuth と mutualAuthには適用されません。