cybozu.com と Active Directory フェデレーションサービスの認証設定
はじめに
この記事では、Active Directory フェデレーションサービス 2.0(以下、AD FS)を使って、cybozu.com へのシングルサインオンを行う手順を説明します。
動作環境
前提条件
- Active Directory Domain Service(以下、AD)と AD FS は、同一のサーバー上で稼働するものとします。
- 検証のため、同一サーバー構成としています。実際の運用における構成は、Microsoft 社の情報を確認してください。
- インターネット インフォメーション サービス(IIS)が必要です。証明書の作成に利用します。
- インストール方法は「
IIS 10.0 のインストール
」をご参考ください。
- インストール方法は「
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 認証のトラブルシューティング
も参照してください。
おわりに
この記事では、Active Directory フェデレーションサービスを使って、cybozu.com へシングルサインオンを行う手順を説明しました。
他社サービスとの認証の設定は
こちら をご参考ください。