スキップしてメイン コンテンツに移動

GmailユーザーでMicrosoft TeamsにMSアカウントを作成せずにゲスト参加させる方法。~AzureADB2BとGCP設定

 

はじめに

TeamsへのGmailアドレスによるゲストアクセスの機能を実装する方法を紹介します。
通常で、Gmailユーザーを招待できますが、Microsoftアカウントを作成する必要があります。
しかし、Azure AD B2BでIDプロバイダーとしてGCPに設定すれば、Microsoftアカウントの必要がなくなるので、Gmailユーザーを容易にTeamsに招待することが可能になります。


そもそも、Azure AD B2Bって何?

自分の組織にゲスト ユーザーを招待して安全に共同作業を行うための機能です。
詳しくは次をご参照ください。



何がうれしいのか?

招待される側が新たにMicrosoftアカウントを作らずに済みます。ですので、招待される側は普段利用しているGmailアカウントさえあればゲストとしてTeamsやSharePointなどの共同利用が可能になります。
また、グループ設定が容易になるので、管理がしやすくなります。例えば2要素認証必須にするなどの運用がやりやすくなります。

要するにどういうこと?

GmailユーザーがMicrosoft365サービスにシングルサインオン(フェデレーション)出来るように設定可能ということです。


条件

Azure AD Premium P1 又は P2を契約
Azure AD とGCPの管理権限所持
最初の 50,000 MAU までは無料


つまり、組織でTeamsを利用している場合、Azure AD Premium P1は契約上はいっているの場合が多いので基本的に実装可能かと思います。また、月にGmailユーザーがTeamに50,000ユーザー未満のアクセスであれば無料なので、ほとんどの組織が無料で運用できるのではないでしょうか。

手順

Microsoftの公開情報を参考に検証した手順を紹介いたします。


GCPにアクセス

新しいプロジェクトを作成

プロジェクト名を入力 例では、B2BAzureAD にしました。

メッセージから作成したプロジェクトを選択

APIの概要に移動

OAuth 同意画面 > 外部 > 作成

アプリ名を入力 例ではB2BAzureADにしています。
※注意ポイントとして、アプリのロゴは絶対に設定しないでください。アプリのURLが必須になり、Teamsサインインの目的が達成できなくなります。さらに削除できないといったオマケ付きなため、振り出しにもどります。


続いて、ユーザーサポートメールについて、Googleのグループメールを設定することで、Googleユーザーの追加と削除を柔軟に運用可能になります。
Googleグループにアクセスします。

グループを作成 > グループメール > グループのメール
を設定し、。
※もし、Google Workspace のアカウントで設定している場合は、グループメールのドメインがGoogleのテナントのドメインになっているかもしれませんが、外部のGmailユーザーをゲストとして登録するので、@googlegroups.comにて設定します。

概要 > グループアカウントを確認

GCP側に戻って、
ユーザーサポートメールに先ほどのグループメールのアカウントを登録

デベロッパーの連絡先情報に自分のメールアドレスを登録し、保存して次へ

認証情報 > 認証情報を作成 > OAuth クライアント ID

アプリケーションの種類をウェブアプリケーション > 名前
例ではAzure AD B2B

承認されたリダイレクト URI に、次の3つの URI を追加します。

https://login.microsoftonline.com
https://login.microsoftonline.com/te/<tenant ID>/oauth2/authresp
(<tenant ID> はご利用のテナントの ID です)
https://login.microsoftonline.com/te/<tenant name>.onmicrosoft.com/oauth2/authresp
(<tenant name> はご利用のテナント名です)

テナントの ID確認
Azure ADからプロパティ > テナントIDで確認できます。

Microsoft365 管理センターから確認できます。onmicrosoft.com‎が対象のテナント名です。

設定を完了させるとクライアントIDとクライアントシークレットが作成されます。
こちらをAzureAD側に登録します。

OAuth > アプリを公開します。



AzureADすべての ID プロバイダー > Google > クライアントID(先ほどのID)>クライアントシークレット(先ほどのシークレット) を設定し保存します。

以上で設定完了です。

これで、Googleグループに登録したGmailユーザーをTeamsのメンバーに追加し、URLを共有することでサインイン可能になります。

ゲスト招待する方法

実際にteamsに招待してサインインする流れを紹介したいと思います。

Teamsで、招待するチームを作成します。

Gmailユーザーを追加して招待します。以上です。


ゲスト招待されたGmailユーザーがサインインする方法

Gmailに招待メールが届くので、Open Microsoft Teamsからサインインします。

Gmailアカウント選択


承諾してサインインします。
メール、もしくはアプリでパスコードを必要とする場合があります。




ゲストとしてチームに参加できました。


うまくいかない場合

キャッシュの設定等でうまくいかない場合は、シークレットモードや別のブラウザ、もしくはスマホから同じように進めるとうまくいくかもしれません。

複数のTeamsに参加している場合は、切り替えるとうまくいくかもしれません。
こちらもご確認ください。


まとめ

AzureADB2BとGCP設定によるフェデレーションを紹介してみました。
サービスの連携についてはしっかりと検討し、適切に設定することでより安全に、より快適に利用できます。
実際やってみると、ちょっとしたことで詰まったり、沼にハマることもあるかと思いますが、出来ることから少しづつでも整備していけたらいいんじゃないかな?と考えたりしてます。
ドキュメントを補足する形で記事にしてみました。

コメント

このブログの人気の投稿

Google Workspaceのアカウントを個人スマホに追加して使おうとしたらアプリが使えないときの対処方法

はじめに 個人デバイスで仕事で利用しているGoogleWorkspaceを利用する場合、Androidスマホだとユーザーを別途用意してスマホにサインインするように運用したほうがセキュリティ上安全な場合があります。 ユーザー追加が終わり、アプリを利用しようとしたときにデータがスマホに同期されない原因の一つに、管理コンソール上の設定があります。 仕事用プロファイルを追加できません。 このデバイスには仕事用プロファイルを追加できません。ご不明な点がある場合は、IT管理者にお問い合わせください。 というメッセージが表示され、Gメールなどのアプリに情報が同期されず利用できないときの対処法を紹介します。 前提条件として、デバイスで仕事用プロファイルの設定が求められるといったケースです。 原因 管理コンソール上の端末管理設定が「詳細」になっているから。 解決策 モバイル管理の設定を「詳細」から「標準」に変更する。 「詳細」が選択されている場合は、Google Workspace のアカウントを利用時に仕事用プロファイルの設定が必須であり、より細かな制御が可能となります。 「標準」の設定であれば、細かな制御はできなくなってしまいますが、仕事用プロファイルの設定なくアカウント追加が可能になります。 手順 1.管理者アカウントで Google Admin にアクセス 2.デバイス>モバイルとエンドポイント>設定>一般設定>全般 3.全般>モバイル管理>標準(エージェント不要)に変更 ダウングレードの文字が出る場合があるが、OKで設定が適用されます。24時間反映にかかる場合があるみたいです。 4.既に個人のスマートフォンの [ 設定 ] > [ アカウント ] の欄に該当アカウントが存在している場合は、一度ログアウトさせてから再追加 まとめ BYODなどで、個人デバイスを業務利用するシーンが増えてきていると思います。 管理者に確認し、適切なセキュリティ運用を心がけてください。

GoogleアカウントだけでWEBアプリを作る方法。〜作成代行してもらったAppSheetを受け取る編

 はじめに Googleアカウントを持っていれば、Googleスプレッドシートをデータベースとしてアプリを作ることができるAppSheet。しかも、グーグルストアやアップルストアに登録する必要がなく、スマホ、タブレット、パソコンなど、色々なデバイスで利用可能な自分だけのアプリが作成可能です。 簡単にアプリを作ることが出来る ので手軽に始めることができるAppSheet。 ところが、このAppSheet。作りこみ次第ではデータからPDFを自動で作成し、指定のメールアドレスに一斉配信など、会社の 基幹システムレベルの構築が可能 であり、かなり奥の深いサービスだったりします。 作りこみを委託するケースも今後増えるんじゃないか?と思ったので、今回は 作成を代行してもらう方法 を紹介したいと思います。 手順 代行者側 Googleスプレッドシートでデータ作成 AppSheetでデータソースを紐付ける AppSheetの共同編集者に依頼者を設定する AppSheetのUsersからUser emailsに依頼者のGoogleアカウントを入力し、 私はロボットではありません をチェックします。 登録したユーザーの設定をします。 Can edit definition 、 Role:Admin、App version: Defaultにします。 Linksタブから、 アプリのURLをコピー して依頼者に共有します。 念の為、SAVEを忘れずしておきましょう。 URL共有時のメール例文 --- ○○さま お世話になっております。 アプリを作成したのでURLを送付いたします。 設定させていただいたGoogleアカウントによりアクセス可能です。 ご確認よろしくお願いいたします。 AppSheet https://www.appsheet.com/template/Apps アプリインストール用URL https://www.appsheet.com/newshortcut/○○○ ブラウザ利用におけるURL https://www.appsheet.com/start/○○○ 参考 GoogleアカウントだけでWEBアプリを作る方法。〜作成代行してもらったAppSheetを受け取る編 (goog-life.blogspot.com) --- 依頼者側 メールが届いたら、AppSheet

リビングの環境監視ダッシュボードを60分で作る方法をQiitaに投稿してから数年たった今のお話。

 数年前に、 Nature Remo を利用してリビングの環境監視する仕組みを作りました。たくさんの方から作り方を教えてほしいとの要望があったので、 Qiita に投稿したところ、Twitterで注目していただき、さらにNature株式会社公式ブログ( https://nature.global/blog/1072/#title1 )でも紹介していただき感動です。 その後もどうにか稼働しているので、その様子を少し紹介してみたいと思います。 リビングの環境監視ダッシュボードを60分で作る方法(Nature Remo Cloud APIとGoogleサービス連携) アップデート 1.複数台運用 寝室用にもう1台Nature Remoを購入したので、複数の部屋の環境を可視化してみました。 複数台のNature Remoを利用する方法については、mumunus様にコメントいただきました。本当に感謝です。 https://qiita.com/t-chi/items/01b9a9b98fbccef880c3#comment-5c5e624fb37745493b84 複数台運用では、データソースを部屋ごとに分けて運用することにしました。任意に振られた番号[0]、[1]・・・で指定することで、Googleスプレッドシートごとに運用できるみたいです。 ※セルの上限制約を意識して、今回は端末ごとにシートを分けて作成してみました。 2.職場のサーバー室の環境監視 小規模な職場に勤めているのですが、停電により空調が止まってしまい、サーバー室の温度が一気に上がりネットワーク機器が故障の危機に陥ったことがありました。 サーバー類はUPS(無停電電源装置)によりシャットダウンを防ぐことができるのですが、夜中に停電したりするとエアコンが切れてしまい、朝には高価なサーバー機器が故障している。なんてことになれば組織にとって大きな損失となってしまいます。 そこで、プライベートで実装した仕組みを活かして、サーバー室にNature Remoを設置して環境監視をすることにしました。 さらに、一定温度以上になれば、管理職と担当、副担当に自動でメールが発出する仕組みを構築しました。 簡易な仕組みですが、無料で運用できるため今まで何もなかったことからすれば一定の保険になるかと思います。 エラー発生の原因 数年にわた