SharePointで外部の人とファイルを共有


はじめに

PPAPを無くしたいな、という思いから記事を作成しました。PPAPを知りたい方は↓を参照してください。
機密情報が大拡散!? 「パスワード後送します」はなぜ“ダサく”なったのか?
上記の記事では解決策がかかれていませんが、ファイル共有サービスがその一つかと思います。ただ「宅ふぁいる便」のように情報漏洩してしまうとかでは困ります。当社ではOffice365を使っているので、それで何か出来ないかと調査した結果、いい感じに出来るようになりました。ところで、宅ふぁいる便はサービス終了してしまったんですね。

全体設定

Microsoft365管理センターからSharePointの管理センターを開きます。

左メニューの「共有」をクリックします。さらに画面最下部の「外部共有を特定の・・・」リンクをクリックします。

外部共有の設定画面が表示されます。一つずつ設定を見ていきましょう。
SharePointでは外部と共有するためのリンクのことを「匿名リンク」と呼ぶようです。

匿名リンクを許可するためには「認証済み外部ユーザーとの共有と匿名アクセス リンクの使用を許可する」にチェックを入れます。匿名リンクの有効期限を設定できますので、任意の日数を入力しておきます。実際にユーザが使用する場合は、この有効期限以上の日数を設定出来ません。有効期限以下なら設定できます(最短当日+1日。当日だけっていうのは出来ない)。画像だと3日に設定しているので、共有先の方は本日+3日間だけアクセスすることが出来ます。
共有先の権限を設定できます。ファイル、フォルダそれぞれで振る舞いが設定できます。ファイルについては表示or表示+編集、フォルダについては表示or表示+編集+アップロードが選択できます。例では表示のみ許可するようにしています。この設定は実際のユーザは変更できません。
アップロードを出来るようにすると、自社→外部だけではなく、外部⇔自社双方向のファイル共有が出来そうです。当社では許可していませんが。


匿名リンクを作成できるグループを指定できます。ユーザbyNameは出来ないようです。


残りの設定です。共有する際のデフォルトの振る舞いを設定できます。そこは良しなに。匿名リンクの共有先のドメインを指定できるようです。
設定が終わったら画面最下部の「OK」をクリックします。


「匿名リンク」の作成を許可してしまうと、自動的にSharePointの制限が緩くなってしまうようです(最も制限が少ない)。この設定になると、SharePointを新規に作成した際の共有先が、「新規および既存のゲスト」になってしまいます。「すべてのユーザー」ではないので特に問題無いと思います。組織によってはそれすらも許可していない場合があるので、その場合は匿名リンクを諦めるしかありません。
当社の場合は「新規および既存のゲスト」で問題無いですが、定期的に各SharePointの設定を変更しています。

(余談)PowerShellでSharePointの共有設定変更

SharePointに管理者モードでログインします。

$adminUPN="<<管理者アカウント>>"
$orgName="<<組織名>>"
$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password."
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $userCredential

初回だけ以下を実行します。

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

まずは各サイトの外部共有の設定状態を見てみます。

Get-SPOSite |ft Title,SharingCapability
Title                                              SharingCapability
-----                                              -----------------
xxxxx                                              Disabled
xxxxx                                              Disabled
xxxxx                                              ExternalUserSharingOnly
(以下、省略)

SharingCapabilityプロパティの意味が何となくわかるとは思いますが以下です。

設定値 意味
Disabled 自分の組織内のユーザのみ
ExternalUserSharingOnly 新規および既存のゲスト
ExternalUserAndGuestSharing すべてのユーザー

サイトの共有設定を変更するには以下のコマンドを実行します。SharePoint管理センターでも変更できます。

Set-SPOSite -Identity <<SharePointのURL>> -SharingCapability Disabled

一気に全サイトの設定を変更したいのであれば、こんな感じ。

$sites = Get-SPOSite
foreach($site in $sites) {
    if ($site.SharingCapability -ne "Disabled") {
        echo $site.Title
        Set-SPOSite -Identity $site.Url -SharingCapability Disabled
    }
}

外部共有するSharePointの設定

SharePointの管理センターからアクティブなサイトの一覧を表示して、外部共有の設定を変更したいサイト名をクリックします。右側にサイトのプロパティが表示されるので、外部共有の「編集」をクリックします。

ここで「すべてのユーザー」にチェックを入れると、このサイトでは匿名リンクが作られるようになります。

匿名リンクのつくりかた

SharePointのドキュメントライブラリで共有したいファイルをチェックして「共有」をクリックします。

「指定したユーザーが・・」をクリックします。

「リンクを知っている・・」をクリックすると、有効期限やパスワードを設定する項目が表示されます。あとは良しなに設定して、「適用」をクリックします。その後は共有先のメールアドレスを入力すれば、共有先に匿名リンクが記載されたメールが送信されます。
こんな感じです。

あとは別プロトコルで設定したパスワードを共有先に伝えれば終わりです。