Teams/SharePointでの外部コラボレーション設定方法

# はじめに
本稿はTeams、SharePoint Onlineにおいて自組織以外のユーザとコラボレーションするための設定を記したものです。
顧客、ベンダーと自社のSharePoint、Teamsでコラボレーションしたい、ファイルを共有したいという場合の設定です。

## 設定方法
## 条件
+ ゲストユーザーは特定のドメインのみ
+ ゲストユーザーとコラボレーションするのは特定のSharePointサイト、Teamsチャネルのみ

### AzureAD(初回のみ)
[Azure Active Directory admin center](https://aad.portal.azure.com/)で設定を行います。これは1回のみの設定です。
ダッシュボード - External Identities - 外部コラボレーションの設定をクリックします。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/cbfb75e4-9fb8-9363-f350-b6f06ddb5eb1.png)

+ ゲストユーザーのアクセス
当社では「ゲスト ユーザーのアクセスは、各自のディレクトリ オブジェクトのプロパティとメンバーシップに制限されます (最も制限が多い)」を設定しています。これで問題無いと思います。

+ ゲスト招待の制限
ゲストを誰が招待出来るかの設定になります。
「ゲストと非管理者を含む組織内のすべてのユーザーがゲスト ユーザーを招待できる (最も包括的)」だとゲスト含め誰でも招待ができてしまうようです。
「メンバー アクセス許可を持つゲストを含むメンバー ユーザーと特定の管理者ロールに割り当てられたユーザーがゲスト ユーザーを招待できる」これは例えばSharePointサイトの管理者であれば、ゲストユーザを招待できるようです。メンバーやゲストユーザはゲストユーザを招待出来ないようです。
「特定の管理者ロールに割り当てられているユーザーのみがゲスト ユーザーを招待できる」「管理者を含む組織内のすべてのユーザーがゲスト ユーザーを招待できない (最も制限的)」これは管理者ロールを付与されているひとのみゲストユーザを招待できるようです。最も制限的ですが、ゲストユーザを招待する度に管理者に依頼しなければなりません。

+ コラボレーションの制限
「招待を任意のドメインに送信することを許可します (許可の範囲が最大)」これはドメイン制限無く、ゲストユーザーとして招待できるようです。
残り２つはホワイトリストorブラックリストでドメインの制限を行うことができます。通常であればホワイトリストで制限をかけた方が良いでしょう。

### AzureAD(許可するドメインごとの設定）
この設定は許可するドメインが増えた(減った)場合の設定になります。引き続きAzure Active Directory admin centerの「外部コラボレーションの設定」で設定を行います。
上記の「コラボレーションの制限」でドメイン指定の設定を行った場合、許可(拒否)するドメインを指定することが出来ます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/ff15e9cc-0477-b7a4-1dc5-1d816faa0f4c.png)
ドメインを追加(または削除)して、最後に「保存」ボタンをクリックして終了です。

### SharePointの設定
SharePointサイトにゲストユーザを招待するには、SharePoint管理センターでサイト毎に設定します。

SharePoint管理センターのメニューからサイト - アクティブなサイトをクリックしてサイトの一覧を表示します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/a450422b-f473-b2f2-8d07-ddcb68375c27.png)
サイト名をクリックすると、右側にサイトごとの設定画面が表示されます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/973143ba-70ac-c850-cf06-73ca35529635.png)
ポリシーをクリックし、「外部共有」の下の編集リンクをクリックします。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/64322669-f8cd-7e6f-f569-9b7c18238085.png)

+ 外部共有
「新規および既存のゲスト」を選択します。

+ 外部共有の詳細設定
「ドメインごとに共有を制限する」をチェックして許可するドメインを追加します。

### Teamsの設定
Teams管理センターで許可するドメインの設定を行います。Teamsの場合はチャネルごとの設定は出来ないようです。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/4becbc7d-7e48-be16-3832-ad084caad025.png)
左メニューの組織全体の設定 - 外部アクセスをクリックします。許可(ブロック)するドメインを追加します。

これで設定は完了です。

## ゲストユーザーの招待
### ゲストユーザーが出来ること
+ ゲストユーザーはOffice Onlineを使用することが出来ます。
+ ゲストユーザーMicrosoft365ライセンスは必要ありません。

### ゲストユーザーの招待
ゲストユーザーを招待したいSharePointサイトを表示します。
画面右の↓からはゲストユーザーは招待することができません。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/4a088b28-f5e7-8af0-1f66-587e08f13c1e.png)
画面右側の歯車マークをクリックして、サイトのアクセス許可をクリックします。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/d93dc691-f4d6-c546-de0a-03b58db3e1b9.png)
「Advanced permissions setteings(高度なアクセス許可の設定)」をクリック。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/10888738-c9ac-0bfd-a8c9-40af161c9f60.png)
「Team site メンバー」をクリック。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/969fff3f-871a-ab28-b44a-0e5815b34507.png)
新規をクリックし、ユーザの追加をクリック。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/9eff8064-3403-34d4-0305-66b5699b4a2a.png)
招待したい外部ユーザのメールアドレスを入力してください（複数可）。最後に「共有」ボタンをクリックするとゲストユーザーに招待メールが送られます。ゲストユーザーは招待メールにログインの方法が記載されているので、そのとおり行います。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/388e6812-4cb0-0df9-4b42-8204a4d39ea1.png)
Teamsの場合は、組織内のユーザーと同様の手順で招待出来ます(SharePointで招待した場合でもTeamsでの招待も必要)。

### ゲストユーザーのAzureAD上の状態
ゲストユーザーを招待すると、AzureAD上ではゲストユーザー用のアカウントが作成されます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/ba235118-2021-5976-cea5-4cab4f1de0fb.png)
ユーザープリンシパルでは"#EXT#"という文字列が付与され、ユーザータイプはゲストになります。アカウントを削除すると、そのゲストユーザーは共有が解除され、再度招待する必要があります。

### ゲストユーザ永続的セッションブロック
ゲストユーザーのセッションを強制的に削除することが可能です。
Azure Active Directory admin centerを開きセキュリティ - 条件付きアクセスをクリックしてポリシーを追加します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/245365/9c8a59c3-5cce-99a1-a458-7c65e60fa7f4.png)
上図の場合は５日後にログインセッションが切れ、再度ログインし直す必要があります。
アクティブなユーザーは５日間隔でログインし直すので、AzureAD上のログイン履歴に残ります。使用していないゲストユーザーはログイン履歴が残らないので、それを条件にしてゲストユーザーを棚卸しすることが可能だと思います。