OneDrive for Business / SharePoint :「共有リンクの有効期限」の思ってたのと違う点&要注意

※本記事の内容は僕は全然気にしていなかった観点だったけど、SNS上でアウトプットをしてくれた方がいらして、その方の情報を基に僕も実際に確認してみた内容の記事です。先人のアウトプットに感謝です!


先日、 OneDrive for Business (以下 ODfB )や SharePoint の共有リンクで有効期限の設定が以前より幅広く使えるようになった記事を書きました。

OneDrive for Business / SharePoint :共有リンクの有効期限が幅広く使えるようになった

この「共有リンクの有効期限」ですが、おそらく多くの人は「有効期限が切れると共有リンクも無効になりアクセス権も無効になる」と思うでしょう。しかし実際は本当に「共有リンクだけの有効期限」だったようです。つまり Microsoft の各種説明やアナウンスは全く間違っておらず、勝手に僕も含めたユーザーがそういうもんだと思い込んでしまっていた事かと思います。これに対して気付きを与えてくれたブログ記事が以下です。

Deep Dive: Microsoft 365 Apps 共有リンクの有効期限の仕組み
https://zenn.dev/ymasaoka/articles/deep-dive-on-m365apps-shared-link-expiration?fbclid=IwY2xjawEg-8FleHRuA2FlbQIxMAABHT2mSx59f5bNhmcrVqxV_UWkyXc5lFXPnvPoxNKmMVEqqc400hknL3tCqg_aem_cywjkdSl801qOnGJZR51cQ

先日、Japan Microsoft 365 Users Group のイベントでも登壇してくださった まっぴぃ さんのブログ記事です。こちらでは共有リンクの有効期限の仕組みをかなり深掘りしていて、特にIT部門など管理者にとっては非常に有益で、僕の苦手な PowerShell での確認の手順まで記載されています。しかし、一般の利用者にとっては難しい内容となっているため、僕のこの記事では実際にユーザー視点で試してみた事とその結果を書いていきます。

■有効期限の設定をして共有リンクを作成し共有する

▼ODfB 内のファイルを共有します

▼リンクの設定をクリックし、

▼有効期限の設定をします

▼リンクをコピーします

▼例えば Microsoft Teams のチャットで共有リンクのリンクを貼り付けて共有しました

さて、この直後、まだ誰も共有リンクをクリックしていない時のファイルのアクセス許可を見てみます。

▼ユーザーは誰もアクセスしていないので所有者の1名のみ

▼共有リンクは1つあります

■共有リンクから有効期限内にドキュメントを開く

1人のユーザー(怒り ます代さん)が共有リンクから有効期限内にドキュメントを開いてみます。

▼怒り ます代 さんが共有リンクを開くと、

▼共有リンクからドキュメントが開き利用できました

すると、共有者がアクセス許可の設定を見ると、

▼ユーザーが増える

つまり、共有リンクを相手に共有するだけではアクセス許可は付与されません。相手が共有リンクをクリックして表示した段階でアクセス許可が付与される挙動です。

■共有リンクから有効期限後にドキュメントを開く

もう1人のユーザー(悲しみ ます子さん)は共有リンクはチャットで案内されたけど、有効期限内にドキュメントを開かなかったとします。この場合は、共有者がアクセス許可の設定を見ると、

▼アクセス許可の設定のユーザー数には変化がない

共有リンクは設定した時点で対象にアクセス権が付与されるわけではなく、共有リンクをクリックするとアクセス権が付与される仕組みというわけですね。

では、このまま有効期限内には一度も共有リンクをクリックせず、有効期限が過ぎたあとに共有リンクをクリックしたらどうなるでしょうか?

▼有効期限内に共有リンクをクリックしなかった 悲しみ ます子 さんが、有効期限後に共有リンクのドキュメントを開くと、

▼ Sorry, the link has expired.

英語ですが有効期限が切れていますという内容でした。有効期限切れでドキュメントを利用できません。つまりこちらも想定される挙動です。

■有効期限内に共有リンクからドキュメントを開いたユーザーが有効期限後にドキュメントを開こうとすると

ここまでは想定の挙動です。有効期限中に共有リンクをクリックすればドキュメントは利用でき、有効期限が過ぎたあとにはじめてクリックしたらドキュメントは利用できない。共有リンクの有効期限としては想定の挙動ですね。

ただ、おそらく多くの人は「有効期限」と聞けば、有効期限内にはドキュメントは利用できるけど、有効期限が過ぎたらドキュメントは利用できなくなると想定するんじゃないかと思います。

では、共有リンクから有効期限中にドキュメントを開いたユーザー(怒り ます代さん)が有効期限が過ぎたあとに共有リンクを開いてみたらどうでしょうか?

▼有効期限内にドキュメントを開いた 怒り ます代 さんが有効期限後に共有リンクからドキュメントを開いてみると、

▼Sorry, the link has expired.

こっちも有効期限切れのエラーでドキュメントが開けません。うんうん、そうだよね、共有リンクをクリックしているわけだから、共有リンクは有効期限切れていますからね。

あれ?じゃ想定の挙動じゃん!と思いますが、このドキュメントへのアクセス方法は他にもありますよね。

▼ OneDrive for Business のホーム

最近のアクティビティの部分にこのドキュメントが表示されています。

▼また、「共有」を開いてもこのドキュメントは表示されています

他にも Microsoft 365 ホームなど、色々な箇所に自分のアクティビティとして最近開いたドキュメントが表示されると思います。

これらをクリックしてみると?

▼うん、利用できました

これが想定外の挙動だと思う人も少なくはないんじゃないかと思います。じゃ、今一度、共有したユーザーがアクセス許可を見てみると、

▼共有リンクの有効期限は過ぎたのに、ユーザーには 怒り ます代 さんが「まだ」いる

という事で、共有リンクの有効期限とは、その名の通り共有リンク自体の有効期限です。だからウソはついてない。ただ何となくの思い込みとして「共有リンクの有効期限でしょ?有効期限が過ぎたらそのドキュメントのアクセス権が切れるんでしょ?」とも思ってしまいがちですよね。でもあくまでも共有リンクの有効期限は共有リンクの有効期限であって、連動してアクセス権が消去されるわけではありませんでした。

これ、でも共有リンクとアクセス権は連動してほしいですよね。もしくは選択できるようにしてほしいですよね。

共有リンクからはアクセスできないから、例えば上述のように Microsoft Teams のメッセージに貼り付けた共有リンクからは行けなくなりますが、有効期限内に一度でも共有リンクをクリックしてアクセスしたことのあるユーザーなら、その後もそのドキュメントが削除されない限りは検索結果にも出てくるし Copilot for Microsoft 365 のライセンスがあれば、 Copilot の対象にもなります。

という事でもし認識が違っていた方は注意しましょう。そして僕も全然に気にしていませんでした。気付きをあたえてくれた まっぴぃ さん、ありがとうございました!


あ、最後に一つ気になる事を発見しました。

▼従来からできた「すべてのユーザー」で有効期限を設定して共有リンクを作ると、

▼その後、アクセス許可の管理からその共有リンクを確認すると有効期限も表示されるけど、

▼最近対象が増えた「組織のユーザー」や「選択したユーザー」で有効期限を設定して共有リンクを作ると、

▼その後、アクセス許可の管理からその共有リンクを確認すると有効期限は表示されない…

開発チームがこのアップデートでここに有効期限を表示させる事を忘れちゃっているんじゃないかなと思います。そのうちシレっと表示されるかもしれません。ただ現在困りますね。例えば今回も検証するにあたってしっかり有効期限を設定したか?いつに設定したか?を確認しようとしても確認できる手段がなかったんです。また、あとから有効期限を変更したくてもできませんよね。ここは早く直ってほしいです。