はじめに

日商エレクトロニクスのAzure担当エンジニア 渡邊です。

前回のブログからかなり間が空いてしまいましたが、またAzureに関する情報を発信していきたいと思います。

さて、今回は過去の記事「Active Directory?Azure Active Directory?混乱ポイントを整理!」でご紹介しているシングルサインオン(SSO)環境をAzure ADとGsuiteで実際に構成してみたいと思います。

Azure ADを利用することで簡単にSSO環境を構成できると感じていただければと思います。

※ここで紹介している内容は2020年2月時点のものです。Azureは常に変化しますので最新の情報を参照してください。

1.ゴールと準備環境

今回のゴールはオンプレで利用するアカウントとパスワードを使ってGsuiteへログイン可能な環境を構成することです。

オンプレミス環境を想定してAzure上にWindows ADを構築し、オンラインで解決可能なドメイン(図では@example.com)を設定します。Azure ADにはWindows ADと同様のドメインをカスタムドメインで登録しておきます。Azure AD Connectを構築し、Windows ADで作成したユーザー[SSO_User01]をAzure ADへ同期させ、SSO_User01でAzureにログイン可能な環境を準備します。
オンプレで利用する情報でGsuiteへログイン可能な環境を構成

Gsuite側はWindows ADと同一のドメイン設定を行い、事前にSSO_User01を作成しておきます。なお、ユーザー作成時はオンプレミス環境とは異なるパスワードを設定するとよりSSO環境が構成されていることが実感できると思います。
SSO環境構成イメージ

2.SSO環境構成

Azure AD、GsuiteでそれぞれSSO連携の設定を実施します。

2.1.Azure AD設定

Azureポータルへアクセスし、ログインします。左メニューから[Azure Active Directory]を選択します。
Azureポータル

Azure ADの[概要]が表示されたら、オプション内の[エンタープライズアプリケーション]をクリックします。
Azureポータル

[+ 新しいアプリケーション]をクリックします。
Azureポータルエンタープライズアプリケーション

[ギャラリーから追加する]内にある検索バーに[G suite]と入力し、表示された[Google Cloud / G Suite Connector by Microsoft]をクリックすると詳細が右側に表示されるため[追加]をクリックします。
Azureポータルアプリケーションの追加

[概要]が表示されるため、[シングルサインオン]をクリックします。
Google Cloud/G Suite Connector

シングルサインオンの構成方式を選択する画面が表示されます。今回は[SAML]を選択します。
Google Cloud/G Suite Connectorシングルサインオン

[SAMLによるシングルサインオンのセットアップ]として5つのステップが表示されます。GsuiteとAzure ADでSAML連携を行う場合はこの5つのステップを実施するだけで接続が可能となります。まず[基本的なSAML構成]の右側にある[鉛筆マーク]をクリックして編集を行います。
SAMLによるシングルサインオンのセットアップ

各必須事項を入力します。それぞれパターンが記載されているため、同じように入力を行います。図の中の[]はAzure ADのカスタムドメインとして登録しているドメインを入力してください。入力が完了したら[保存]をクリックします。
基本的なSAML構成

保存が完了したら表示が変更されます。次に[ユーザー属性とクレーム]を編集します。
SAMLによるシングルサインオンのセットアップ

[必要な要求]と[追加の要求]が表示されます。Azure ADとGsuiteで同一のドメインを使用するため、今回のクレームはUserPrincipalnameを使用します。そのため、[必要な要求]のみを残し、[追加の要求]は全て削除します。
ユーザー属性とクレーム

ステップの画面に戻り、[SAML署名証明書]の[証明書(Base64)]をダウンロードして保存しておきます。
SAML証明書のダウンロード

ステップ4の[ログインURL]、[ログアウトURL]をコピーし、Gsuiteの設定へ移ります。
Google Cloud/G Suite Connector by Microsoftのセットアップ

2.2.Gsuite設定

Gsuite管理コンソールへログインし、[セキュリティ]をクリックします。
Gsuite管理コンソール

[サードパーティのIDプロバイダを使用したシングルサインオン(SSO)の設定]をクリックします。
Gsuite管理コンソール セキュリティー

[サードパーティのIDプロバイダでSSOを設定する]を有効化し、[ログインページのURL]に[ステップ4]でコピーした[ログインURL]を貼り付けます。[ログアウトページのURL]に[ログアウトURL]を貼り付けます。[確認用の証明書]から先ほどダウンロードし保存した証明書をアップロードします。[ドメイン固有の発行元を使用]を有効化し、パスワード変更用URLへMicrosoftパスワード変更サイトのURLを入力します。なお、環境により[Microsoftパスワード変更サイト]からのパスワード変更が許可されていない場合がありますので、注意が必要です。入力が完了したら[保存]をクリックします。
Gsuite管理コンソール セキュリティー設定

これで設定は全て完了となります。

2.3.ログイン

SSOのテストを実施するために、ユーザーへアプリケーションの割り当てを行います。Azureポータルから[Azure AD]→[エンタープライズアプリケーション]を選択し、[Google Cloud / G Suite Connector by Microsoft]を選択し、[ユーザーとグループ]をクリックします。
Google Cloud / G Suite Connector by Microsoft概要

[+ ユーザーの追加]をクリックします。
Google Cloud / G Suite Connector by Microsoftユーザーとグループ

[ユーザー]をクリックし、[SSO_User01]を選択して[選択]をクリックします。
Google Cloud / G Suite Connector by Microsoft割り当ての追加

[割り当て]をクリックします。
Google Cloud / G Suite Connector by Microsoft割り当ての追加

[ユーザーとグループ]に選択したユーザーが表示されていることを確認します。
Google Cloud / G Suite Connector by Microsoftユーザーとグループ

マイアプリポータルへアクセスし、割り当てたユーザーでログインし、割り当てたGsuiteのアイコンをクリックします。
マイアプリポータル

Gsuiteを認証が行われることなく、Gmailの画面が表示されます。
Gmail画面

もちろんドライブなども使用できます。
Googleドライブ

このようにAzure ADで認証を行うことで、別のアプリケーションを認証無しで利用することが可能です。
※使用するブラウザによってID選択が必要な場合やAzure ADの構成によっては多要素認証が必要になる場合などもあります。

2.4.ログインに失敗した場合

もし上記手順でログインに失敗した場合は、実施していなかったステップ5の[Google Cloud / G Suite Connector by Microsoft でシングル サインオンをTest]を活用してください。
Google Cloud / G Suite Connector by Microsoft でシングル サインオンをTest

ここでは失敗した際に表示されるMicrosoftのエラー文を貼り付けることで、どの部分に問題があるのかのヒントを与えてくれます。失敗した際にはまずここでエラーの確認を行ってみてください。
Google Cloud / G Suite Connector by Microsoft でシングル サインオンをTest

さいごに

今回はGsuiteで実際にSSO環境を構築してみました。Azure ADで他にも様々なアプリケーションとの連携が用意されており、SaaSだけでなく会社で開発したアプリケーションの連携なども可能となっています。また、今回はユーザーを事前にGsuite側で作成しましたが、ユーザーの事前作成が不要な方式もありますので機会があればそちらもご紹介したいと思います。

 

Azure ADの概要を知りたい方は、以下の資料もご参考くださいね。

Azure AD 資料
無償ダウンロードする

この記事を書いた人

渡邊真悟
渡邊真悟
オンプレエンジニアとして活動するはずが、弊社Azure立ち上げを担い、気が付いたらクラウドエンジニアとなっていました。
新しいことに取り組むのが苦手だった自分を変え、常に最新の情報を取り入れられるように日々奮闘しています。
Azure Virtual DesktopやAzure Filesなど、IaaS/PaaS領域の機能検証や、Microsoft 365などのSaaS範囲まで組み合わせた情報をお伝えしていきます。
こんな検証ができないか、等ありましたら是非ご連絡ください!