cybozu.comとActive Directoryフェデレーションサービスの認証設定
はじめに
この記事では、Active Directoryフェデレーションサービス2.0(以下、AD FS)を使って、cybozu.comへのシングルサインオンを行う手順を説明します。
動作環境
前提条件
- Active Directory Domain Service(以下、AD)とAD FSは、同一のサーバー上で稼働するものとします。
- 検証のため、同一サーバー構成としています。実際の運用における構成は、Microsoft社の情報を確認してください。
- インターネット インフォメーション サービス(IIS)が必要です。証明書の作成に利用します。
- インストール方法は「 IIS 10.0のインストール 」をご参考ください。
- cybozu.com環境が必要です。
- 環境がない場合は、「 サイボウズドットコム ストア 」から試用環境を申し込んでください。
- 「お試しになるサービス」は、任意のサービスを選択してください。
- AD FSとの連携認証には、SAML認証を利用します。
本記事の検証環境
- 本記事における動作の確認環境は次のとおりです。
- ADサーバーのOS:Microsoft Windows Server 2019(Windows Server 2008 R2で検証した記事は こちら )
- サーバーおよびクライアントPC間のWindowsファイアウォールの設定:無効
- クライアントPC
- OS:Windows 10
- Webブラウザー:Google Chrome
補足:SAMLを使った認証の流れ
SAMLを使った認証の流れは、次のとおりです。ここでは、AD FSがIdentity Provider(IdP)に相当します。
- ユーザーがcybozu.comにアクセスします。
- cybozu.comがSAMLリクエスト(認証要求メッセージ)を生成します。
- ユーザーがcybozu.comからSAMLリクエストを受け取り、Identity Provider(IdP)へ送ります。
- IdPがSAMLリクエストを受け取り、ユーザーを認証します。
- IdPがSAMLレスポンス(認証応答メッセージ)を生成します。
- ユーザーがIdPからSAMLレスポンスを受け取ります。
- cybozu.comがSAMLレスポンスを受け取り、検証します。
- SAMLレスポンスが正常な場合、ユーザーはcybozu.comへのログイン状態となります。
手順1. Active Directory Domain Service(AD) の設定
インストール手順は、 Microsoft社の情報 を確認してください。
本環境では、次のように設定しています。
設定項目 | 設定内容 |
---|---|
コンピューター名 | adfs |
ドメイン名 | example.local |
手順2. Active Directoryフェデレーションサービス(AD FS)の設定
(1) AD FSのインストール
アイデンティティ・プロバイダー(IdP)となるAD FS 2.0のインストールを行います。
- スタートメニューから、「サーバーマネージャー」を起動します。
- 左ペインで[ダッシュボード]を選択し、[役割と機能の追加]をクリックします。
- ウィザードが表示されます。[次へ]ボタンをクリックします。
- 「インストールの種類の選択」で、「役割ベースまたは機能ベースのインストール」を選択し、[次へ]ボタンをクリックします。
- 「対象サーバーの選択」で、インストールするサーバーを選択し、[次へ]をクリックします。
- 「サーバーの役割の選択」で、「Active Directory Federation Services」を選択し、[次へ]ボタンをクリックします。
- そのままウィザードを進め、インストールを行います。
(2) サーバー証明書の作成
AD FSで必要となるサーバー証明書を作成します。本環境では、IISを使って自己証明書を作成します。
- スタートメニューから、「Windows管理ツール」を起動します。
- [インターネット インフォメーション サービス(IIS)マネージャー]をダブルクリックします。
- 左のツリービューより、サーバーのホスト名を選択し、[サーバー証明書]をダブルクリックします。
- [自己署名入り証明書の作成]をクリックします。
- ダイアログが表示されます。
証明書のフレンドリ名を入力します。フレンドリ名は証明書の識別に利用する値です。任意の値を入力してください。
- [OK]ボタンをクリックし、証明書を作成します。
(3) フェデレーションサーバーの構成
- スタートメニューから、「サーバーマネージャー」を起動します。
- [通知]フラグ(旗マーク)をクリックします。
- [このサーバーにフェデレーションサービスを構成します]をクリックします。
- ウィザードが表示されます。
「フェデレーションサーバーファームに最初のフェデレーションサーバーを作成します」を選択し、[次へ]ボタンをクリックします。
- 「AD DSへの接続」で、[次へ]ボタンをクリックします。
- 「サービスのプロパティの指定」で、「SSL証明書」に
サーバー証明書の作成で作成した証明書が選択されていることを確認し、[次へ]ボタンをクリックします。
- そのままウィザードを進め、インストールを行います。
(4) cybozu.comとAD FS 2.0の認証設定
Service Providerメタデータのダウンロード
- cybozu.com共通管理の管理者で、cybozu.com環境にログインします。
- [cybozu.com共通管理]をクリックします。
- [セキュリティ]を選択し、[ログイン]をクリックします。
- 「SAML認証を有効にする」を選択します。
- [Service Providerメタデータのダウンロード]をクリックし、メタデータファイル(spmetadata.xml)をダウンロードします。
AD FSの設定
証明書利用者信頼の設定
- スタートメニューから、「Windows管理ツール」を起動します。
- [AD FSの管理]をダブルクリックします。
- [証明書利用者信頼の追加]をクリックします。
- ウィザードが表示されます。[開始]ボタンをクリックします。
- 「データソースの選択」で「証明書利用者についてのデータをファイルからインポートする」を選択します。
[参照]から「 Service Providerメタデータのダウンロード」でダウンロードしたメタデータファイル(spmetadata.xml)を指定し、[次へ]ボタンをクリックします。
- 「表示名の指定」で「表示名」を入力し、[次へ]ボタンをクリックします。表示名は設定の識別に利用します。任意の値を入力してください。
- 「アクセス制御ポリシーの選択」で「すべてのユーザーを許可」を選択し、[次へ]ボタンをクリックします。
- そのままウィザードを進め、設定を完了します。
要求規則の編集
-
「AD FS管理」の左ペインで、[証明書利用者信頼]を選択します。
-
先ほど作成した証明書利用者信頼を選択し、[要求発行ポリシーの編集]をクリックします。
-
[規則の追加]ボタンをクリックします。
-
「規則の種類の選択」で「LDAP属性を要求として送信」を選択し、[次へ]ボタンをクリックします。
-
「要求規則の構成」で、次のように入力します。入力が終わったら、[完了]ボタンをクリックします。
設定項目 設定内容 要求規則名 任意の値を入力 属性ストア Active Directory LDAP属性 SAM-Account-Name 出力方向の要求の種類 名前ID Active Directoryに作成したユーザーの「ユーザー ログオン名」と 、cybozu.comに作成したユーザーの「ログイン名」が一致することで、認証の連携が行われます。
ログアウト用のエンドポイントの作成
-
「AD FSの管理」の左ペインで、[証明書利用者信頼]を選択します。
-
先ほど作成した証明書利用者信頼をダブルクリックします。
-
[エンドポイント]タブを選択し、[SAMLの追加]ボタンをクリックします。
-
「エンドポイントの追加」で、次のように入力します。入力が終わったら、[OK]をクリックします。
設定項目 設定内容 エンドポイントの種類 SAMLログアウト バインディング POST URL https://{AD FSサーバーのFQDN}/adfs/ls?wa=wsignout1.0 応答URL 空白 -
[OK]をクリックし、プロパティを閉じます。
トークン署名証明書のエクスポート
- 「AD FSの管理」の左ペインで、[サービス]を展開し、[証明書]を選択します。
- 「トークン署名」の証明書を右クリックし、[証明書の表示]を選択します。
- [詳細]タブを開き、[ファイルにコピー]ボタンをクリックします。
- ウィザードが表示されます。[次へ]ボタンをクリックします。
- 「エクスポート ファイルの形式」で「DER encoded binary X.509(.CER)」を選択し、[次へ]ボタンをクリックします。
- 「エクスポートするファイル」に任意のファイルパスを入力します。
入力が終わったら、[次へ]ボタンをクリックします(拡張子は入力不要です。自動で付与されます)。
- 「証明書のエクスポートウィザードの完了」で、[完了]をクリックします。指定したフォルダーに証明書が保存されます。
cybozu.comの設定
- cybozu.com共通管理の管理者で、cybozu.com環境にログインします。
- [cybozu.com共通管理]をクリックします。
- [セキュリティ]を選択し、[ログイン]をクリックします。
- 「SAML認証を有効にする」を選択します。
- 次のように入力します。入力が終わったら、[保存]ボタンをクリックします。
設定項目 設定内容 Identity ProviderのSSOエンドポイントURL https://{AD FSサーバーのFQDN}/adfs/ls cybozu.comからログアウト後に遷移するURL https://{AD FSサーバーのFQDN}/adfs/ls?wa=wsignout1.0 Identity Providerが証明に使用する公開鍵の証明書 「トークン署名証明書のエクスポート」でエクスポートした証明書
手順3. ユーザーアカウントの作成
Active Directoryとcybozu.comにユーザーアカウントを作成します。
(1) Active Directoryのユーザー作成
- スタートメニューから、「サーバーマネージャー」を起動します。
- ダッシュボードの左上メニューから[ツール]をクリックし、[Active Directoryユーザーとコンピューター]を選択します。
- 左のツリービューより、サーバーのホスト名を展開し、[User]を選択します。
- ツールバーの[現在のコンテナーに新しいユーザーを追加]をクリックします。
- ウィザードが表示されます。
ユーザー情報を入力します。入力が終わったら、[次へ]ボタンをクリックします。
ユーザーログオン名にはcybozu.comで登録するログイン名と同じ値を入力します。 - そのままウィザードを進め、ユーザーを追加します。
(2) cybozu.comのユーザー作成
ヘルプサイトの「
ユーザーを追加する
」を参考にユーザーを追加します。
ログイン名は、Active Directoryに追加したユーザーのユーザーログオン名と一致させます。
手順4. クライアントPCの設定
- スタートメニューから、「コントロールパネル」を開きます。
- [インターネットオプション]を選択します。
- [セキュリティ]タブをクリックします。
- [ローカル イントラネット]をクリックし、[レベルのカスタマイズ]ボタンをクリックします。
- 「ユーザー認証」内の「ログオン」設定で、「現在のユーザー名とパスワードで自動的にログオンする」を選択します。
- [OK]ボタンをクリックします。
動作確認(cybozu.comへのアクセス)
- クライアントPCでActive Directoryにログインします。
- Webブラウザーを起動し、cybozu.com環境にアクセスします。
- シングルサインオンが行われ、cybozu.com環境への認証が行われます。
- cybozu.com環境からログアウトしたときは、次の画面が表示されます。
cybozu.comにアクセスしたとき、「この接続ではプライバシーが保護されません」というエラーメッセージが表示される場合
- [詳細設定]をクリックし、「{AD FSサーバーのアドレス} にアクセスする(安全ではありません)」をクリックすることでシングルサインオンできます。
- AD FSに自己署名証明書を利用しているためです。
- エラーを表示させたくない場合は、クライアントPCに証明書をインストールしてください。
- cybozu.com環境への認証時にエラーが発生した場合、 SAML認証のトラブルシューティング も参照してください。
cybozu.comからログアウトできない場合
cybozu.comからログアウトし、同じWebブラウザーで再度cybozu.comにアクセスすると、ログイン後の画面が表示されることがあります。
AD FSにCookieが残っているためです。
cybozu.comからログアウトできない場合は、Webブラウザーを再起動してから、cybozu.comにアクセスしてください。
おわりに
この記事では、Active Directoryフェデレーションサービスを使って、cybozu.comへシングルサインオンを行う手順を説明しました。
他社サービスとの認証の設定は
こちらをご参考ください。