コンテンツ、知識、アプリケーションの共有と管理に使用される Microsoft 製品とテクノロジのグループ。
注:この返信は翻訳ツールを用いて翻訳されています。文法や意味に誤りがある場合はご容赦ください。ご理解のほどよろしくお願いいたします。返信に不明な点がございましたら、コメントを残していただければ、できるだけ早くご返信いたします。
親愛なる @大矢 恭輔 ,
Microsoft Q&A フォーラムにご質問を投稿いただきありがとうございます。これはよくある問題ですので、トラブルシューティングをお手伝いいたします。
委任された API 権限 Sites.ReadWrite.All は、サインインしたユーザーに代わってアプリケーションがすべてのサイトコレクションを読み取りおよび変更できるようにするため、技術的には Get-PnPSite コマンドレットを使用するのに十分ですが、「Unauthorized」エラーが表示される場合は、Azure AD で権限が適切に承認されていないか、別の条件付きアクセス ポリシーまたはセキュリティ制限によってアクセスがブロックされている可能性があります。
このエラーはほとんどの場合、設定の問題を示しています。以下の項目のいずれかが原因である可能性が高いため、ご確認ください。
(これらの手順を実行するには、グローバル管理者に依頼する必要があります。)
1. 管理者の同意を与える
これがエラーの最も一般的な原因です。Sites.ReadWrite.All のような高い権限の委任権限では、管理者が組織を代表して明示的に同意を与える必要があります。
- アクション: Azure AD ポータルにアクセスし、[アプリの登録] をクリックしてアプリケーションを選択します。
- [API アクセス許可] に移動します。
ステータス列が表示されます。緑色のチェックマークが表示されず、「[組織名] に許可済み」と表示されていない場合は、「[組織名] に管理者の同意を与える」ボタンをクリックする必要があります。この操作は Azure AD 管理者が行う必要があります。
ユーザーと管理者を支援するために、SharePoint アプリのみと委任されたアクセス許可に関するトピックを扱った公式の Microsoft ドキュメントを以下に示します。Microsoft Learn: SharePoint アプリのみを使用したアクセスの許可 (委任されたアクセス許可に同意するための原則は同様です)。
2. ゲストユーザーのアクセス設定
ゲストユーザーについて具体的にご質問いただきましたが、これは非常に重要です。ゲストユーザーとして接続する場合、API権限だけでは不十分です。SharePoint独自の外部共有設定によって、それらの権限は無効になります。
アクション: 管理者は SharePoint Online の共有設定を確認する必要があります。
- **テナントレベルの設定:**SharePoint管理センターで、「ポリシー」>「共有」に移動します。設定でゲストユーザーとの共有が許可されていることを確認してください。「組織内のユーザーのみ」に設定されている場合、ゲストはブロックされます。
- **サイトレベルの設定:**接続しようとしている特定のSharePointサイトに移動します。「サイトの権限」>「サイトの共有」で、その共有設定がテナント全体のポリシーよりも制限が厳しくないことを確認してください。
これらのいずれかのレベルで外部アクセスが無効になっている場合、ゲスト アカウントはアクセスを拒否され、「権限がありません」というエラーが発生します。
あなたと管理者を支援するために、SharePoint 共有設定の管理に関するトピックを扱った Microsoft の公式ドキュメントを以下に示します。Microsoft Learn: SharePoint の共有設定の管理
3. 条件付きアクセスポリシー
組織によっては、管理されていないデバイス、特定の場所、または特定の種類のアプリケーションからのアクセスをブロックするAzure AD条件付きアクセスポリシーが設定されている場合があります。PnP PowerShellアプリケーションは、これらのポリシーのいずれかの対象となる可能性があります。
- Azure ポータルで Active Directory テナントを開き、条件付きアクセスを開きます。
- 条件付きアクセス設定で、
- 管理対象外デバイス、レガシー認証プロトコル、または PowerShell アプリケーションに適用されるポリシーを探します。
- PnP PowerShell またはブラウザー以外のクライアントへのアクセスをブロックするポリシーがないか確認します。
- ポリシーが原因であると疑われる場合、管理者は以下の対応を取ることができます。
- ユーザーアカウントを一時的にポリシーから除外する。
- 信頼できるデバイスまたはアプリからのアクセスを許可するようにポリシーを変更する。
重要: 条件付きアクセス ポリシーを変更する場合は、組織のセキュリティが侵害されないように慎重に行う必要があります。
あなたと管理者を支援するために、これらのトピックをカバーする公式の Microsoft ドキュメントがあります。Azure Active の構成: Azure Active Directory 条件付きアクセスの構成 - Visual Studio App Center | Microsoft Learn
要約すると、要求された API 権限は正しいものの、問題は管理者の同意がない、または SharePoint の外部共有ポリシーによってゲストユーザーがブロックされていることに起因している可能性があります。
この詳細なガイダンスが、問題の迅速な特定と解決に役立つことを願っています。
回答が役に立った場合は、「回答を承認」をクリックし、高評価をお願いします。この回答についてご質問がある場合は、「コメント」をクリックしてください。
注:このスレッドに関するメール通知を受け取るには、弊社のドキュメント に記載されている手順に従ってメール通知を有効にしてください。