Microsoft Teams で社外のユーザーをチームに招待し利用することも多くありますよね。そうしたときに、相手がすでに Office 365 を利用していたり、または、個人用の Microsoft アカウントを利用していた場合には、それらのアカウントを招待しゲストとしてチームのメンバーに加えることができます。

問題になるのは、相手が Office 365 も利用しておらず、Microsoft アカウントも持っていない場合です。従来は、ゲストとして招待された後で Microsoft Teams にサインインするときに Microsoft アカウントの作成を求められたりしました。

拡張された Microsoft Teams の外部ユーザー招待機能(ゲストアクセス)を試してみた
https://idea.tostring.jp/?p=3420

招待されただけの Microsoft Teams を利用するために、Microsoft アカウントを作成して、パスワードも覚えておかなきゃいけないなんて苦痛でしかないというわけだったんです。それを解決できるかもしれないのがワンタイムパスコード認証です。

ワンタイムパスコード認証

このワンタイムパスコード認証は、招待されたユーザーが Microsoft Teams などにアクセスする際、その都度メールによってワンタイムパスコードが発行されます。そのワンタイムパスコードをパスワード代わりのように利用しサインインできるというわけです。

ワンタイムパスコード認証の対象

ワンタイムパスコードの対象となるのは、次の条件を全て満たしている場合です。

  • Azure AD アカウントを持っていない(Office 365 を利用していない)
  • Microsoft アカウントを持っていない
  • 招待側が Google などにフェデレーション設定をしていない

例えば、招待されたユーザーが Yahoo メールなどを利用している場合ですね。

ワンタイムパスコード認証を有効化する

このワンタイムパスコード認証を利用するには、招待する側のテナントの管理者が機能を有効化しておく必要があります。

Azure ポータルにアクセスし、[Azure Active Directory] – [External Identities] と開き、[外部コラボレーションの設定] にアクセスしましょう。

これまで機能を有効化したことがないテナントの場合は次のように表示されていますので、「ゲストのメール ワンタイム パスコードが有効になりました。」を選択して設定を保存します。

ここの選択肢にある通り、この機能は 2021 年 3 月以降に自動的に有効になるように設定されているのが既定値です。また、一度設定を行うと、有効化・無効化のトグルに設定メニューが変わります。

どうしても「2021 年 3 月以降、ゲストのメール ワンタイム パスコードが自動的に有効になります。」の既定値に戻したい場合には、Microsoft Graph API を利用して戻す必要がありました。

ワンタイムパスコード認証でゲストを招待する

設定を変更したらさっそく対象となるゲストを招待してみましょう。Microsoft Teams にいつも通りゲストを招待します。

ここで招待した側の Azure AD のユーザー一覧を確認してみると、さきほどゲストとして招待したユーザーが「ゲスト」ユーザーとしてテナントに登録されているのが確認できます。

さて、招待された側のユーザーの操作も確認してみましょう。

ワンタイムパスコード認証によってサインインする

それでは、招待された側のユーザーで、ワンタイムパスコード認証を利用してサインインしてみましょう。

まずは、いつも通り招待メールが届いているので、リンクをクリックしてアクセスしてみます。

サインイン画面で [コードの送信] ボタンを押します。

すると今度はワンタイムパスコードがメールで届くので、それを確認しサインイン画面に入力します。

テナントに対する権限付与の承諾画面が表示されるので承諾しましょう。

これで Microsoft Teams にサインインできました。

2 回目からは、サインイン画面にメールアドレスを入力することで、ワンタイムパスコードを発行できるようになります。招待される側の最大のメリットは、Microsoft アカウントなどを新たに作成する必要がなく、そのためのパスワードを覚えておく必要なども無いという点ですね。

このユーザーの詳細を Azure AD 側で確認すると、「ID」の「ソース」項目が「OTP」となっているのを確認できます。これによってこのユーザーがワンタイムパスコード認証の対象だということが確認できます。

ここを見ることで、管理者はどのユーザーがワンタイムパスワード認証を利用しているかを確認することができます。

運用上の留意点

おそらく運用上の疑問点が、すでに招待しているゲストをワンタイムパスコード認証に切り替えられるかという点や、ワンタイムパスコード認証を利用しているユーザーが Office 365 を利用し始めたときはどうなるのかという点かと思います。

こちらはどうやら、最初に設定された認証方法が引き続き利用されるようです。ワンタイムパスコード認証のユーザーが Office 365 を利用し始めた場合など、ゲスト招待の認証方法を切り替えるためには、ゲストアカウントを削除し、再度招待し直す必要があるみたいです。

ちなみに、Microsoft アカウントを作成してしまうと、アカウントの削除申請を行ってから完全に削除されるまで 60 日間猶予が設けられます。その間に再びゲスト招待されると、削除申請中の Microsoft アカウントを利用再開することになるみたいでした。このあたりは検証に時間がかかりそうなので動作を確認できず。

SharePoint や OneDrive for Business の外部共有は別途設定が必要

SharePoint や OneDrive for Business は、独自のワンタイムパスコードによる共有機能を実装しています。これを今回の Azure AD の新たなワンタイムパスコード認証に切り替えるためには、Azure AD とは別に SharePoint 側にも設定が必要です。

SharePoint および OneDrive の Azure AD B2B (プレビュー) との統合
https://docs.microsoft.com/ja-jp/sharepoint/sharepoint-azureb2b-integration-preview

Azure AD のワンタイムパスコード認証に切り替えるメリットとしては、Azure AD の条件付きアクセスの対象にできることでしょうか。

さいごに

といったわけで、Microsoft Teams へのゲスト招待のシナリオで、Azure AD のワンタイムパスコード認証の動作を確認してみました。途中でも触れたとおり、2021 年 3 月以降は既定で有効になる機能ですので、管理者の方は事前に確認しておくと良いですね。

公式のドキュメントはこちらです。合わせて確認してみてください。

B2B ゲスト ユーザーのワンタイム パスコード認証 – Azure AD | Microsoft Docs
https://docs.microsoft.com/ja-jp/azure/active-directory/external-identities/one-time-passcode

確実にメリットがある機能だとは思いますので、ぜひ試してみてください。