外部ユーザーが別のアカウントを使用して 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 をアドレス ボックスに貼り付けます。 URLの末尾に &force=1 を追加し、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. SharePoint Online 管理シェルをダウンロードしてインストールします。 詳細については、SharePoint Online 管理シェルの概要を参照してください。

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

  3. 次の cmdlet を入力します。

    $cred = Get-Credential
    
  4. Windows PowerShell 資格情報が必要です」ダイアログボックスで、管理者アカウントとパスワードを入力し、[OK] をクリックします。

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

    Connect-SPOService -Url https://-admin.sharepoint.com -Credential $cred
    
  6. 各サイト コレクションからユーザーを削除します。 次の cmdlet を入力し、 Enter キーを押します。

    $ExtUser = Get-SPOExternalUser -filter <account@contoso.com>
    

    注意

    この cmdlet では、 account@contoso.comを影響を受けるアカウントに置き換えます。 その後、ユーザーを削除するには、次の cmdlet を入力して Enter キーを押します:

    Remove-SPOExternalUser -UniqueIDs @($ExtUser.UniqueId)
    

次の手順では、外部ユーザーが SharePoint Online にアクセスする機能を削除します。 ただし、ユーザーは、他のユーザーの検索や SharePoint Online 管理シェルの Get-SPOUser cmdlet 内にも表示されます。 ユーザーを SharePoint Online から完全に削除するには、 UserInfo リストからユーザーを削除する必要があります。 これを実現するには、次の 2 つの方法があります。

  1. 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. リボンから [ユーザー権限の削除] をクリックします。

  2. SharePoint Online 管理シェルを使用します。 SharePoint Online 管理シェルの使用方法の詳細については、SharePoint Online 管理シェルの概要を参照してください。

    注意

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

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

    2. 次の cmdlet を入力します。

      $cred = Get-Credential
      

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

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

      Connect-SPOService -Url https://<contoso>-admin.sharepoint.com -Credential $cred
      
    4. 各サイト コレクションからユーザーを削除します。 それには、次の cmdlet を入力します。

      Get-SPOUser -Site https://<contoso>.sharepoint.com | FT –a
      

    返された結果に外部ユーザーのログイン名があることを確認します。 外部ユーザーとして、 Microsoft アカウントである場合は、"live.com#" というプレフィックスが存在する場合があります。

    次の cmdlet を入力します。

    Remove-SPOUser -Site https://<contoso>.sharepoint.com -LoginName live.com#jondoe@company.com
    

    注意

    live.com#jondoe@company.com をシナリオのユーザーに置き換えます。

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

  1. Azure Active Directory PowerShell モジュールとその必須コンポーネントをダウンロードしてインストールします。 これについては、「Windows PowerShell を使用して Azure AD を管理する」を参照してください。

  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 コミュニティにアクセスしてください。