Index
はじめに
この記事では、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
- ウェブブラウザー: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 にログインします。
- ウェブブラウザーを起動し、cybozu.com 環境にアクセスします。
- シングルサインオンが行われ、cybozu.com 環境への認証が行われます。
- cybozu.com 環境からログアウトしたときは、次の画面が表示されます。
- cybozu.com にアクセスしたとき、「この接続ではプライバシーが保護されません」というエラーメッセージが表示される場合があります。
[詳細設定]をクリックし、「{AD FSサーバーのアドレス} にアクセスする(安全ではありません)」をクリックすることでシングルサインオンできます。- AD FS に自己署名証明書を利用しているためです。
- エラーを表示させたくない場合は、クライアント PC に証明書をインストールしてください。
- cybozu.com 環境への認証時にエラーが発生した場合、SAML認証のトラブルシューティングもご参照ください。
おわりに
この記事では、Active Directory フェデレーションサービスを使って、cybozu.com へシングルサインオンを行う手順を説明しました。
他社サービスとの認証の設定はこちらをご参考ください。
情報公開ありがとうございます
お伺いしたいのですが
証明書の既定の期限が一年ですが、一年毎に再発行する必要があるのでしょうか?
あと
「SAML認証を有効にする」を選択すると、以降はシングル・サインオンのみとなり
社外から通常のIDとパスワードのみのログインはできなくなるのでしょうか?
ご教示頂けますと幸いです。
コメントいただきありがとうございます。
cybozu developer network 運営事務局です。
サーバー証明書につきましては、恐れ入りますがMicrosoft社へお問い合わせいただきますようお願いいたします。
SAML認証を無効にするURLからアクセスすることで、標準の認証を利用してログインすることが可能です。
https://(サブドメイン名).cybozu.com/login?saml=off
詳細は以下のヘルプページをご確認ください。