Azure Active Directoryには無印(いわゆるAzure AD)の他に、
- 組織外のユーザ向けのAzure AD B2B
- コンシューマ向けのAzure AD B2C
と言われるオプションというか機能があります。
Azure AD B2CについてはTech Summitなどでお話しさせていただいたり、このブログでも取り上げてきたLINEやYahoo! JAPANなどのIDを使ったサービスへのログインの話ですが、今回はAzure AD B2Bの話です。
実はOffice365を使っている方は以前からAzure AD B2Bの機能を使っていました。いわゆる外部共有(招待)の機能の事です。
この機能を使うと組織のディレクトリ内に存在しない人を招待してゲストユーザとしてディレクトリへ登録し、組織のリソース(アプリケーションなど)へアクセスさせることが可能になります。
注意して使わないと危ないよ、という話は以前書かせていただいた通りですので、一読いただけるとよいと思います。
Office365管理者は要対応。外部共有により不要なアクセス権が付与される
http://idmlab.eidentity.jp/2017/01/office365.html
本日は、Office365ではないアプリケーションを外部ユーザへ共有したい、という場合のAzure AD B2Bの使い方を紹介したいと思います。
具体的には、
- 外部のコンサルや開発ベンダのアカウントをアプリケーションを使わせたい
- アプリケーションのSSOを構成するとAzure ADで全員を認証しないといけなくなってしまい、全ユーザがAzure AD上に登録されている必要がある
- 外部ユーザのID管理を管理者が行うのは面倒なので、責任範囲を明確にする意味でも当該のアプリケーションの管理者に権限委譲をしたい(Azure ADの管理者権限は渡さずに)
というようなケースを想定した使い方です。
早速やってみたいと思います。
◆必要なステップ
全体の流れとして、以下のステップで準備を行う必要があります。- [全体]招待するユーザを入れるためのセキュリティ・グループの作成
- [全体]セルフサービスグループ管理の有効化
- [アプリケーション単位]セルフサービスアクセス要求の有効化
- [アプリケーション単位]セキュリティ・グループの割り当て
後は、アプリケーション管理者でアクセスパネルから外部ユーザを招待するとメールで招待が行き、外部ユーザがサインアップしてアプリケーションが使えるようになります。
◆設定してみる
では、早速やってみましょう。
1.[全体]招待するユーザを入れるためのセキュリティ・グループの作成
手動でメンバ管理を行うグループを作成します。
2.[全体]セルフサービスグループ管理の有効化
次に、ディレクトリのセルフサービス設定で、グループ管理を有効化します。(無効の場合は有効にします)
3.[アプリケーション単位]セルフサービスアクセス要求の有効化
次はゲストに使わせたいアプリケーションの設定で、セルフサービスアクセス要求と承認の設定を行います。ここで承認者として設定した人がアプリケーション管理者となり、ゲストを招待することが出来るようになります。
4.[アプリケーション単位]セキュリティ・グループの割り当て
後は、3で指定したグループをアプリケーションへ割り当てます。
これで準備は完了です。割とシンプルですね。
◆招待しゲストにアクセスさせる
では、早速動かしてみましょう。
まずは、アプリケーション管理者でアクセスパネル(https://myapps.microsoft.com)を開き、ゲストに使わせたいアプリケーションを選択して「アプリの管理」を開きます。
するとアプリケーションへユーザを追加することが出来るようになっているので、「+」をクリックしてゲストを招待します。
外部ユーザのメールアドレスを入力すると招待メールの文面を入れる画面が自動的に出てきますので、何かメッセージを入れて招待を行います。
これで外部ユーザには招待メールが届きます。
「はじめに」というリンクをクリックするとサインアップ画面へ遷移します。
パスワード、表示名、国を指定してゲストユーザ登録を完了します。
メールへ確認コードが飛んでくるので確認画面で入力してアカウント確認を行います。
登録が完了すると登録したパスワードで認証が走り、アクセスパネルが表示され、アプリケーションが利用できるようになります。
今回は、アプリケーション管理者により外部ユーザをAzure AD上に招待することにより少なくとも認証は全員Azure ADを使う様に構成することが出来ました。このことで条件付きアクセスなど、アプリケーション利用ポリシーをAzure ADで一括で管理することが出来るので、セキュリティ面でも安心できると思います。
ちなみに、管理者によりゲストユーザを作成したり招待することも可能ですし、APIを使って一括で外部のディレクトリからユーザを引き込む、というようなことも可能です。(大規模なM&Aや業務提携などの場合はカスタムアプリケーションを作って自動同期をするように構成することが多いようです)