コンテンツ、知識、アプリケーションの共有と管理に使用される Microsoft 製品とテクノロジのグループ。
この回答は自動翻訳されています。そのため、文法上の誤りや不適切な表現が含まれている可能性があり、著者の意図した本来の意味や語調を完全に反映していない可能性があります
親愛なる @ShotaTsuji 様
Microsoft Q&A にお問い合わせいただきありがとうございます。
SharePoint REST API にアクセスしようとした際に、以下のエラーが発生していることを確認しました:
'Microsoft.IdentityModel.Tokens.AudienceUriValidationFailedException' の例外
このエラーは通常、リクエストに使用されたアクセストークンに、SharePoint Online が期待する正しい audience(aud)クレームが含まれていないことを示しています。調査と理解に基づき、以下の提案をさせていただきます。少しでもお役に立てれば幸いです。
- 正しいスコープまたはリソースの確認
OAuth 2.0 クライアント資格情報フローを使用してトークンを要求する場合、スコープまたはリソースは SharePoint Online サービスと一致している必要があります。
Azure AD v2.0 エンドポイントの場合: scope=https://{tenant}.sharepoint.com/.default
Azure AD v1.0 エンドポイントの場合: resource=https://{tenant}.sharepoint.com/
これにより、トークンが SharePoint Online 用に発行され、正しい aud クレームが含まれます。
参考スレッド:Microsoft Q&A – AudienceUriValidationFailedException
- トークンの検査
https://jwt.ms を使用してトークンをデコードし、aud クレームを確認してください。SharePoint REST API に対しては、期待される値は:
https://{tenant}.sharepoint.com
aud クレームが https://graph.microsoft.com やアプリケーションのクライアント ID に設定されている場合、SharePoint によりトークンは拒否されます。
参考スレッド:Microsoft Q&A – Access token for SharePoint API is not valid
- API エンドポイントの確認
API 呼び出しが有効な SharePoint サイトを対象としていることを確認してください:
サイトコレクションの場合: GET https://{domain}/sites/{site-name}/_api/web/lists
ルートサイトコレクションの場合: GET https://{domain}/_api/web/lists
参考スレッド:Microsoft Q&A – Error 401 AudienceUriValidationFailedException
- 権限の確認
以下のアプリケーション権限が正しく構成されていることを確認してください:
-
Sites.FullControl.All -
Sites.ReadWrite.All
また、管理者による同意が付与されている必要があります。これらの権限は、REST API を介して SharePoint リストにアクセスするには十分です。今回のエラーは audience の検証に関連しているため、問題はトークン取得プロセスにある可能性が高いです。
参考スレッド:Microsoft Q&A – Exception in SharePoint API
初期の回答がすぐに問題を解決しない場合や、シナリオに誤解がある場合もございますが、進捗のご報告や追加のご相談をいただければ幸いです。
この情報が少しでもお役に立てれば嬉しく思います。
敬具
この回答が役に立った場合は、「承認済み回答」としてマークしていただくようお願いいたします。これにより、同様の質問を持つ他のユーザーが、正確でタイムリーな解決策を見つけやすくなります。 コミュニティへのご参加に感謝申し上げます。今後もサポートさせていただきます。 注:このスレッドに関するメール通知を受け取りたい場合は、ドキュメントに記載されている手順に従ってメール通知を有効にしてください。