鍋綿ブログ

C#・SharePoint・SharePoint Framework・Office365を中心に扱うブログです。

SharePointの外部ユーザー招待に失敗した話

SharePoint Onlineで外部ユーザーを招待した後、招待された側がサイトにアクセスできないという事象がありました。もう一度招待しようにも、Azure ADの管理画面上では既にゲストユーザーが存在する状態ですし、SharePoint サイトのユーザーとしても存在していたのでゴミの削除に手間取りました。備忘として手順を残しておきます。

 

 

事象

何度かやり直すと、以下どちらかが発生しました。

  • このサイトにアクセスするための権限が必要です。
  • 申し訳ございません。(ドメイン名) のディレクトリに (メールアドレス) が見つかりません。問題の修正を試みておりますので、後でもう一度やり直してください。

正しい招待の手順を確認

まずは正しい招待の手順を確認します。間違った操作をしてしまった場合は、現在の設定状態を確認の項を参照してやり直します。

1.[招待する側の操作] 招待状を送信

外部ユーザーを招待したいSharePoint サイトで、右上歯車 > サイトの設定 > サイトの権限 をクリックします。
更にリボンから アクセス許可の付与 をクリックし、外部ユーザーのアカウントを入力します。「(メールアドレス) は組織外のユーザーです」という注意書きが表示されることを確認し、「オプションの表示」リンクをクリックしてユーザーに割り当てる権限を選択します。新規に外部ユーザーを招待する場合、「電子メール招待状を送信する」チェックボックスの切り替えが出来ず、必ず招待状が送られますので、招待状に記載したい事項があればテキストボックスに入力します。最後に「共有」ボタンをクリックすれば操作は完了です。

f:id:micknabewata:20180811102456j:plain

権限の選択し忘れに注意

2.[招待される側の操作] 招待状に記載のリンクをクリック

招待状はメールで届きます。招待した側もCCに入りますので、メールが送信されたことを確認してください。
招待された側は、メールに記載のリンクをクリックし、自分のアカウントでログインを行うことで招待を受諾することができます。この時注意すべきことは、SharePoint サイトへの権限が「ログインしたアカウント」に付与されるということです。「招待したアカウント」に付与される訳ではありませんので、ユーザーが複数のアカウントを利用している場合にはご注意ください。(ユーザー自身が組織アカウントと別にMicrosoftアカウントを作成している等の場合もあり得ますのでご注意ください。)
これは非常に分かりづらい(というかセキュリティ上危ない?)挙動ですので、テナントの設定で制御しておくことをお勧めします。

現在の設定状態を確認

上から順に設定状態を確認します。プロの方以外は手順をスっ飛ばしてはいけません。

1.招待が受諾されたことの確認

SharePoint サイトで、右上歯車 > サイトの設定 > アクセスの依頼と招待状 をクリックします。
外部ユーザーの招待 欄は、まだ受諾されていない招待状の一覧です。招待を完了するには、ユーザーの操作が必要です。招待状を再送するには、「…」をクリックして 再送信 ボタンを使用します。

招待された側の操作が終わっているものは、 履歴の表示 内に表示されています。
正しく招待が受諾されたならば、〇〇 さんが承諾 と表示されています。
この一覧の表示が正しくない場合、ユーザーが操作を誤った可能性が高いです。(違うアカウントでログインした等)

2.サイトにユーザーが存在することの確認

SharePoint は、一度でもサイトにアクセスしたアカウントを記憶します。以下の手順で想定外のアカウントが居ないこと(招待状を別のアカウントで受諾していないこと)と、招待したアカウントが居ることを確認します。

まず、SharePoint サイトで右上歯車 > サイトの設定 > ユーザーとグループ をクリックします。次にブラウザに表示されたURLを確認し、「MembershipGroupId=(id)」の部分を「MembershipGroupId=0」に変更します。「すべてのユーザー」画面が表示され、SharePoint サイト内のユーザーを一覧することができます。

招待状を別のアカウントで受諾してしまっている場合には、想定外のアカウントが居るはずです。ユーザーに問い合わせるなりして裏を取り、該当アカウントを削除して招待をやり直します。

招待したアカウントが居ない場合には、残念やり直しです。

3.権限が付与されていることの確認

SharePoint サイトで、右上歯車 > サイトの設定 > サイトの権限 をクリックします。
更にリボンから 権限の確認 をクリックして該当のユーザーアカウントを入力します。
「今すぐ確認する」ボタンを押して表示された権限が想定通りであることを確認してください。

権限が想定通りでない場合、ユーザーに割り当てられた権限を変更することで問題が解決するはずです。既にSharePoint上にユーザーが存在する状態ですので、招待をやり直す必要はありません。

この画面でエラーが出る場合には、残念やり直しです。

4.Azure ADにゲスト ユーザーが存在することの確認

Azure ADの管理画面で、左メニュー > Azure Active Directory > ユーザー をクリックし、招待したアカウントが存在することを確認します。

この手順は、外部ユーザーを招待するとAzure ADにゲスト ユーザーが出来るんだということを認識して頂くための手順です。どんな状態にせよ上から順にここまで来てしまったならば残念やり直しです。

5.残念、やり直しです

すべての設定が画面上は正しく行われていても、事象が発生することがあります。(私の場合がそうでした。) どうも内部の設定が中途半端になってしまうことがあるようです。以下の修正手順を参照してゴミを全部手動で消し、一からやり直します。

修正手順

1.SharePoint サイトからユーザーを削除

SharePoint サイトで右上歯車 > サイトの設定 > ユーザーとグループ をクリックします。次にブラウザに表示されたURLを確認し、「MembershipGroupId=(id)」の部分を「MembershipGroupId=0」に変更します。「すべてのユーザー」画面が表示され、SharePoint サイト内のユーザーを一覧することができます。

この画面で該当の外部ユーザーアカウントを削除します。すると、SharePoint サイトからユーザーが削除されたことになります。他のSharePoint グループ内から一々ユーザーを削除して回るようなことは必要ありません。

2.Azure ADからユーザーを削除

Azure ADの管理画面で、左メニュー > Azure Active Directory > ユーザー をクリックし、招待したアカウントを選択して削除します。

3.Azure ADのゴミ箱からもユーザーを削除

続いて 削除済みのユーザー をクリックし、招待したアカウントを選択して削除します。これでユーザーの痕跡は全て消えました。

4.外部ユーザーを再度招待

正しい招待の手順を確認を参照して外部ユーザーの招待をやり直します。

 

以上、参考になれば幸いです。