外部ユーザーが SharePoint Online または OneDrive for Business にアクセスしようとすると発生するエラー

現象

外部ユーザーとして SharePoint Online または OneDrive for Business にアクセスしようとすると、次のいずれかのエラー メッセージが表示されます。

  • アクセス拒否
  • このサイトにアクセスするためのアクセス許可が必要です
  • ディレクトリにユーザーが見つかりません

原因

多くのシナリオでこれらのメッセージを生成できます。 最も頻繁な原因は、ユーザーまたは管理者のアクセス許可が正しく構成されていないか、まったく構成されていないことです。

解決方法

エラー メッセージが表示される状況として、適切な方法を使用します。

外部ユーザーがサイトにアクセスしている

外部ユーザーが別のアカウントを使用して SharePoint Online の招待を受け入れる

外部ユーザーがサイトにアクセスしている

  1. ユーザーが サイトに対 して必要とするアクセス許可レベル (メンバー、所有者など) を決定します。 さらに、次のように、[権限の 確認] 機能で 権限を確認します。

    1. User.aspx ページに移動します。 これを行うには、右上隅にあるギア アイコンを選択し、[サイトの権限] を 選択して、[高度なアクセス許可の設定 ] を選択します

      たとえば、完全な URL は次のようになります。https://contoso.sharepoint.com/_layouts/15/user.aspx

    2. リボンで [アクセス許可の確認 ] を選択します

    3. [ユーザー ] または [ グループ ] フィールド に、ユーザー名を入力し、[今すぐチェックイン ] を選択します

      注意

      このコマンドは、ユーザーがサイトに対して持つアクセス許可の種類と、アクセス許可の派生元となるセキュリティ グループを表示します (該当する場合)。

  2. ユーザーが適切なアクセス許可を持っていない場合は、そのユーザーに対してファイルまたはサイトへのアクセス許可を付与します。

  3. ユーザーが引き続きエラー メッセージを受信する場合は、次の手順に従ってサイトからそのユーザーを削除します。

    注意

    このオプションは、ユーザーが以前にサイト コレクションを参照した場合にのみ使用できます。 ユーザーにはアクセス権は付与されているがサイトにアクセスしない場合は表示されません。

    1. サイトを参照し、URL の末尾に次の文字列を追加して編集します。 /_layouts/15/people.aspx?MembershipGroupId=0

      たとえば、完全な URL は次のようになります。 https://contoso.sharepoint.com/_layouts/15/people.aspx/membershipGroupId=0

    2. 一覧でユーザーを選択し、[アクション] メニューを開き、[サイト コレクションからユーザー の削除] を選択します

    3. ファイルまたはサイトへのアクセス許可をユーザーに付与します

  4. 前の手順の後もアカウントにエラーが残っている場合は、M365 からゲスト アカウントを完全に削除することをお勧めします。

    1. グローバル管理者または SharePoint 管理者として https://admin.microsoft.com にログインします。

    2. 左側のウィンドウで、[Users Guest > users] を選択します

    3. [ ユーザーの削除] を選します

    4. ユーザーを選び、選択して [ 削除] を選します

      上記の操作が完了したら、そのユーザーと共有しているサイト コレクションからアカウントが完全に削除されたことを確認します。

    5. サイトを参照し、URL の末尾に次の文字列を追加して編集します。 /_layouts/15/people.aspx?MembershipGroupId=0

      たとえば、完全な URL は次のようになります。 https://contoso.sharepoint.com/_layouts/15/people.aspx/membershipGroupId=0

    6. 一覧でユーザーを選択し、[アクション] メニューを き、[サイト コレクションからユーザー の削除] を選択します

    7. ファイルまたはサイトへのアクセス許可をユーザーに付与します

外部ユーザーが別のアカウントを使用して SharePoint Online の招待を受け入れる

この問題を解決するには、招待を承諾したアカウントを判別し、正しくないアカウント (必要な場合) を削除し、ユーザーをリソースにもう一度招待します。

重要

この記事の多くの例ではプレースホルダー <contoso> として使用されています。 シナリオでは、 <contoso> には、組織用に使用するドメインが入ります。

外部ユーザーとしてアクセスできるアカウントを決定する

正しくない外部ユーザーとしてサイトにアクセスできる場合は、次の手順を実行します。

  1. 招待を承諾するために使用した外部ユーザー アカウントとしてサインインします。
  2. 右上隅にあるプロファイル画像を選択し、[個人用設定] を 選択します
  3. [アカウント] フィールドで、電子メールアドレスを確認します。 たとえば、 i:0#.f|membership|JonDoe@contoso.com。

    注意

    この例では、<JonDoe@contoso.com> はユーザーの招待を受け入れた電子メールアカウントです。

  4. アドレスが正しくない場合は、「誤った外部ユーザーアカウントを削除する」のセクションに移動します。

正しくない外部ユーザーとしてサイトにアクセスできない場合は、次の手順を実行します。

  1. SharePoint Online 管理者として、外部ユーザーと共有されていたサイト コレクションにサインインします。

  2. [設定] メニューの歯車アイコンをクリックし、[サイトの設定] をクリックします。

  3. [ユーザーと 権限] セクションで 、[ユーザーとグループ ] を選択します

  4. ブラウザー ウィンドウの URL の末尾で、 URL の people.aspx? 部分の後にMembershipGroupId=<number>MembershipGroupId=0 に置き換えて、Enter キーを押します。

  5. ユーザーの一覧で、外部ユーザーの名前を見つけます。 ユーザー名を右クリックし、ショートカットをコピーします。

  6. 新しいブラウザー ウィンドウまたはタブで、前の手順でコピーした URL をアドレス ボックスに貼り付けます。 「&** force=1」を** URL の末尾に追加し、Enter キーを押します。

  7. [アカウント] フィールドで、電子メールアドレスを確認します。 例: i:0#.f|membership|JonDoe @ contoso.com。

    注意

    この例では、<JonDoe@contoso.com> はユーザーの招待を受け入れた電子メールアカウントです。

  8. アドレスが正しくない場合は、「誤った外部ユーザーアカウントを削除する」のセクションに移動します。

正しくない外部ユーザーアカウントを削除する

外部ユーザーはサイト コレクション単位で管理されます。 そのアカウントへのアクセス権が与ていた各サイト コレクションから外部ユーザー アカウントを削除する必要があります。 これは、Office 365 のバージョンに応じて、SharePoint Online のユーザー インターフェイスまたは SharePoint Online 管理シェルを使用して実行することができます。

Office 365 Small Business サブスクリプションの場合は、 SharePoint Online UI を使用します。 これを行うには、次の手順を実行します。

  1. Office 365 管理センターに移動します https://portal.office.com
  2. サービス設定で、組織全体の設定の管理をクリックします。
  3. 左側のメニューから [サイトとドキュメントの共有] をクリックし、[個々の外部ユーザーの削除] をクリックします。
  4. 削除する必要のある外部ユーザーを選択し、[削除] アイコンをクリックします。

他のすべてのサブスクリプションは、次の手順に従って SharePoint Online 管理シェルを使用する必要があります。

注意

このオプションは、Office Small Business (P) 組織には適用されません。

  1. ShareSharePoint Online 管理シェルをダウンロードし、インストールします。 詳細については 、「SharePoint Online 管理シェルの概要」を参照してください

  2. SharePoint Online 管理シェルを起動します。

  3. 次のコマンドレットを入力します。

    $cred = Get-Credential
    
  4. [セキュリティ資格情報 Windows PowerShell ボックス で、管理者アカウントとパスワードを入力し 、[OK] を選択します。

  5. SharePoint Online に接続し、次の cmdlet を入力します。

    Connect-SPOService -Url https://<contoso>-admin.sharepoint.com -Credential $cred
    
  6. 各サイト コレクションからユーザーを削除します。 これを行うには、次のコマンドレットを入力し、1 つで Enter キーを押します。

    $ExtUser = Get-SPOExternalUser -filter <account@contoso.com>
    
     Remove-SPOExternalUser -UniqueIDs @($ExtUser.UniqueId)
    

    注意

    最初のコマンドレットで、影響を受 <account@contoso.com> けつつアカウントに置き換えます。

次の手順は、SharePoint Online にアクセスする外部ユーザーの機能を削除します。 ただし、そのユーザーは、ユーザー検索と SharePoint Online 管理シェル の Get-SPOUser コマンドレットの中に表示 されます。 SharePoint Online からユーザーを完全に削除するには、UserInfo リストからそのユーザーを削除する必要があります。 これを行うには、次のいずれかの方法を使用します。

  • SharePoint Online の UI を使用します。 これを行うには、ユーザーが以前にアクセスしたサイトコレクションを参照し、次の手順を実行します。

    1. サイト コレクションで、 URL の末尾に次の文字列を追加して URL を編集します。

      _layouts/15/people.aspx/membershipGroupId=0
      

      たとえば、完全な URL は次のようになります。

      https://<contoso>.sharepoint.com/_layouts/15/people.aspx/membershipGroupId=0
      
    2. 一覧からユーザーを選択します。

    3. リボンで [ユーザー権限の 削除] を選択します

  • SharePoint Online 管理シェル を使用します。

このツールの使用方法の詳細については 、「SharePoint Online 管理シェルの概要」を参照してください

注意

このオプションは、 Small Business サブスクリプションには適用されません。

  1. SharePoint Online 管理シェルを起動します。

  2. 次のコマンドレットを入力します。

    $cred = Get-Credential
    

    [Windows PowerShell 資格情報の要求] ウィンドウで、管理者アカウントとパスワードを入力し、[OK] をクリックします。

  3. SharePoint Online に接続し、次の cmdlet を入力します。

    Connect-SPOService -Url https://<contoso>-admin.sharepoint.com -Credential $cred
    
  4. 各サイト コレクションからユーザーを削除します。 これを行うには、次のコマンドレットを入力し、1 つで Enter キーを押します。

    Get-SPOUser -Site https://<contoso>.sharepoint.com | FT –a
    
    Remove-SPOUser -Site https://<contoso>.sharepoint.com -LoginName live.com#jondoe@company.com
    

    注意

    最初のコマンドレットで、返された結果に外部ユーザー のログイン 名が表示されます。 外部ユーザーの場合、Microsoft アカウントの場合、"live.com#" プレフィックスを含む場合があります。

    2 つ目のコマンドレットで、シナリオ <live.com#jondoe@company.com> のユーザーに置き換えます。

次に、 Azure Active Directory からアカウントを削除する必要があります。 これを行うには、次の手順を実行します。

  1. Azure Active Directory PowerShell モジュールとその必須コンポーネントをダウンロードしてインストールします。 これを行うには、「Azure を使用して Azure ADをWindows PowerShell。

  2. Azure Active Directory PowerShell モジュールを開き、次のコマンドを実行します。

    Connect-MSOLService
    

    管理者の資格情報をダイアログボックスに入力します。

    Get-MsolUser -ReturnDeletedUsers -UnlicensedUsersOnly | ft -a
    
  3. 削除した外部ユーザーを特定し、それらが一覧に表示されたことを確認します。

    Remove-MsolUser -RemoveFromRecycleBin -UserPrincipalName 'jondoe_contoso.com#EXT#@yourdomaint.onmicrosoft.com'
    

    注意

    このコマンドで、シナリオ内 <jondoe_contoso.com#EXT#@yourdomain.onmicrosoft.com> の特定のユーザーに置き換える必要があります。

ブラウザー キャッシュをクリアする

SharePoint Online では、ユーザー選択ウィンドウなどのいくつかのコンポーネントでブラウザー キャッシュが使用されます。 システムから完全に削除されたユーザーは、ブラウザー キャッシュに残る可能性があります。 ブラウザー キャッシュをクリアすると、この問題が解決します。 ブラウザーの履歴をInternet Explorerする手順に 従います

キャッシュをクリアする場合は、[Cookie と Web サイトのデータ] オプションも選択してください。

外部ユーザーを再度招待する

これらの手順を実行した後、目的の電子メールアドレスを使用して、外部ユーザーをサイトに再招待します。 ユーザーが適切なメール アドレスで受け入れることを確認するには、招待状のリンクをコピーして InPrivate ブラウズ セッションに貼り付けることをお勧めします。 これにより、招待を承諾するのにキャッシュされた資格情報を使用しないことを確実にします。

詳細情報

外部ユーザーの招待では、最初に送信された電子メールアドレスで承諾する必要はありません。 これは、1 回の招待です。 他のユーザーが招待を承諾した場合、または招待を受け入れたユーザーが招待を送信した電子メールアドレス以外のアカウントを使用してサインアップした場合、アクセス拒否メッセージが表示されることがあります。

たとえば、ユーザーが Microsoft アカウントを使用してブラウザーを介してサインインし、ユーザーがユーザーの電子メールアプリケーションでユーザーの外部ユーザーアカウントに対して電子メール招待状を受信したとします。 その後、ユーザーは招待状に同じようにリンクを選択します。 ただし、ユーザーのブラウザーの Cookie に基づいて、ユーザーが正しくない ID を使用して招待を間違って受け入れるようにします。

ユーザーがユーザーの外部ユーザー アカウントを使用してリソースにサインインすると、そのユーザーがディレクトリにないことを示すエラー メッセージが表示されます。

SharePoint Online のアクセス許可レベルの詳細については、「アクセス許可レベル について」を参照してください

SharePoint または OneDrive for Business での "アクセスが拒否されました" エラーの詳細については、次の記事を参照してください。

さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。