外部ユーザーが別のアカウントを使用して SharePoint Online の招待を承諾した場合のエラー
問題
外部共有リソースにアクセスしようとすると、次のいずれかのエラー メッセージが表示されます。
- アクセスが拒否されました。
- このサイトへのアクセスが必要な理由をお知らせください。
- ディレクトリ内にユーザーが見つかりません。
- このサイトにアクセスするには、アクセス許可が必要です。
ソリューション
この問題を解決するには、次の手順を実行します。
- どのアカウントが招待を受け入れたかを確認します。
- 間違ったアカウントと正しいアカウントを削除してください。
- ユーザーをリソースに再招待します。
注:
この記事の多くの例では、プレースホルダーとして <contoso> を使用します。 シナリオでは、contoso> を、organizationに使用するドメインに置き換えます<。
外部ユーザーとしてアクセスできるアカウントを決定する
正しくない外部ユーザーとしてサイトにアクセスできる場合は、次の手順を実行します。
招待を承諾するために使用した外部ユーザーアカウントとしてサインインします。
右上隅のプロファイル画像をクリックし、[ マイ設定 ] をクリックします。
[アカウント] フィールドで、電子メールアドレスを確認します。 たとえば、 i:0#.f|membership|JonDoe@contoso.com。
注:
この例では、JonDoe@contoso.com はユーザーの招待を受け入れた電子メールアカウントです。
アドレスが正しくない場合は、「誤った外部ユーザーアカウントを削除する」のセクションに移動します。
正しくない外部ユーザーとしてサイトにアクセスできない場合は、次の手順を実行します。
SharePoint Online 管理者として、外部ユーザーと共有されていたサイト コレクションにサインインします。
[設定] メニューの歯車アイコンをクリックし、[サイトの設定] をクリックします。
[ユーザーと権限] セクションで [ユーザーとグループ] をクリックします。
ブラウザー ウィンドウの URL の末尾で、 URL の people.aspx? 部分の後に MembershipGroupId=<number> を MembershipGroupId=0 に置き換えて、Enter キーを押します。
ユーザーの一覧で、外部ユーザーの名前を見つけます。 ユーザー名を右クリックし、ショートカットをコピーします。
新しいブラウザー ウィンドウまたはタブで、前の手順でコピーした URL をアドレス ボックスに貼り付けます。 URLの末尾に &force=1を追加し、Enter キーを押します。
[アカウント] フィールドで、電子メールアドレスを確認します。 たとえば、i:0#.f|membership|JonDoe@contoso.com。
注:
この例では、JonDoe@contoso.com はユーザーの招待を受け入れた電子メールアカウントです。
アドレスが正しくない場合は、「誤った外部ユーザーアカウントを削除する」のセクションに移動します。
正しくない外部ユーザーアカウントを削除する
外部ユーザーはサイトコレクションごとにサイトコレクションから管理されます。 外部ユーザー アカウントは、アクセス権が与えられたアカウントの各サイト コレクションから削除する必要があります。 これは、Microsoft 365 のバージョンに応じて、SharePoint Online のユーザー インターフェイスまたは SharePoint Online 管理シェルを使用して実行することができます。
Microsoft 365 Small Business サブスクリプションの場合は、 SharePoint Online UI を使用します。
https://portal.office.comで Office 365 管理センターを参照します。
サービス設定で、組織全体の設定の管理をクリックします。
左側のメニューから [サイトとドキュメントの共有] をクリックし、[個々の外部ユーザーの削除] をクリックします。
削除する必要のある外部ユーザーを選択し、[削除] アイコンをクリックします。
他のすべてのサブスクリプションは、次の手順に従って SharePoint Online 管理シェルを使用する必要があります。
注:
このオプションは、Office Small Business (P) 組織には適用されません。
SharePoint Online 管理シェルをダウンロードしてインストールします。 詳細については、SharePoint Online 管理シェルの概要を参照してください。
SharePoint Online 管理シェルを起動します。
次の cmdlet を入力します。
$cred = Get-Credential
「Windows PowerShell 資格情報が必要です」ダイアログボックスで、管理者アカウントとパスワードを入力し、[OK] をクリックします。
SharePoint Online に接続し、次の cmdlet を入力します。
Connect-SPOService -Url https://-admin.sharepoint.com -Credential $cred
各サイト コレクションからユーザーを削除します。 次の 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 方法がつあります。
SharePoint Online の UI を使用します。 これを行うには、ユーザーが以前にアクセスした各サイト コレクションを参照し、次の手順を実行します。
サイト コレクションで、 URL の末尾に次の文字列を追加して URL を編集します。
_layouts/15/people.aspx/membershipGroupId=0
たとえば、完全な URL は次のようになります。
https://<contoso>.sharepoint.com/_layouts/15/people.aspx/membershipGroupId=0
リストからユーザーを選択します。
リボンから [ユーザー権限の削除] をクリックします。
SharePoint Online 管理シェルを使用します。 SharePoint Online 管理シェルの使用方法の詳細については、SharePoint Online 管理シェルの概要を参照してください。
注:
このオプションは、 Small Business サブスクリプションには適用されません。
SharePoint Online 管理シェルを起動します。
次の cmdlet を入力します。
$cred = Get-Credential
[Windows PowerShell 資格情報の要求] ウィンドウで、管理者アカウントとパスワードを入力し、[OK] をクリックします。
SharePoint Online に接続し、次の cmdlet を入力します。
Connect-SPOService -Url https://<contoso>-admin.sharepoint.com -Credential $cred
次のコマンドレットを入力して、各サイト コレクションからユーザーを削除します。
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 をシナリオのユーザーに置き換えます。
次に、アカウントをMicrosoft Entra IDから削除する必要があります。
Azure Active Directory PowerShell モジュールとその必須コンポーネントをダウンロードしてインストールします。 そのためには、[Windows PowerShellを使用してMicrosoft Entra IDを管理する] に移動します。
Azure Active Directory PowerShell モジュールを開き、次のコマンドを実行します。
Connect-MSOLService
管理者の資格情報をダイアログボックスに入力します。
Get-MsolUser -ReturnDeletedUsers -UnlicensedUsersOnly | ft -a
削除した外部ユーザーを検索し、表示されていることを確認します。
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 参照セッションに貼り付けることをお勧めします。 これにより、招待を承諾するのにキャッシュされた資格情報を使用しないことを確実にします。
More information
外部ユーザーの招待では、最初に送信された電子メールアドレスで承諾する必要はありません。 これは 1 回限りの招待です。 他のユーザーが招待を承諾した場合、または招待を受け入れたユーザーが招待を送信した電子メールアドレス以外のアカウントを使用してサインアップした場合、アクセス拒否メッセージが表示されることがあります。
たとえば、ユーザーが Microsoft アカウントを使用してブラウザーを介してサインインし、ユーザーがユーザーの電子メールアプリケーションでユーザーの外部ユーザーアカウントに対して電子メール招待状を受信したとします。 次に、ユーザーがリンクをクリックして招待を承諾します。 ただし、ユーザーのブラウザー Cookie に基づいて、ユーザーは誤った ID を使用して招待を誤って承諾しています。
ユーザーの外部ユーザー アカウントを使用してリソースにサインインすると、ユーザーがディレクトリ内に見つからないというエラーが表示されます。
さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。