cybozu developer network

カテゴリー内の他の記事

cybozu.com と Active Directory フェデレーションサービスの認証設定

Index

はじめに

この記事では、Active Directory フェデレーションサービス 2.0(以下、AD FS)を使って、cybozu.com へのシングルサインオンを行う手順を説明します。

ADFSの構成

動作環境

前提条件

  • Active Directory Domain Service(以下、AD)とAD FS は、同一のサーバー上で稼働するものとします。
    • 検証のため、同一サーバー構成としています。実際の運用における構成は、Microsoft 社の情報をご確認ください。
  • インターネット インフォメーション サービス(IIS)が必要です。証明書の作成に利用します。
  • 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)に相当します。

SAML認証の流れ

  1. ユーザーが cybozu.com にアクセスします。
  2. cybozu.com が SAML リクエスト(認証要求メッセージ)を生成します。
  3. ユーザーが cybozu.com から SAML リクエストを受け取り、Identity Provider(IdP)へ送ります。
  4. Idp が SAML リクエストを受け取り、ユーザーを認証します。
  5. IdP が SAML レスポンス(認証応答メッセージ)を生成します。
  6. ユーザーが IdP から SAML レスポンスを受け取ります。
  7. cybozu.com が SAML レスポンスを受け取り、検証します。
  8. SAML レスポンスの内容に問題がない場合は、ユーザーが cybozu.com にログインした状態になります。

インストール手順は、Microsoft 社の情報をご確認ください。

本環境では、次のように設定しています。

設定項目 設定内容
コンピューター名 adfs
ドメイン名 example.local

手順2. Active Directory フェデレーションサービス(AD FS)の設定

(1) AD FS のインストール

アイデンティティ・プロバイダー(IdP)となる AD FS 2.0 のインストールを行います。

  1. スタートメニューから、「サーバーマネージャー」を起動します。
  2. 左ペインで[ダッシュボード]を選択し、[役割と機能の追加]をクリックします。
    [役割と機能の追加]をクリック
  3. ウィザードが表示されます。[次へ]ボタンをクリックします。
  4. 「インストールの種類の選択」で、「役割ベースまたは機能ベースのインストール」を選択し、[次へ]ボタンをクリックします。
    「役割ベースまたは機能ベースのインストール」を選択
  5. 「対象サーバーの選択」で、インストールするサーバーを選択し、[次へ]をクリックします。
    インストールするサーバーを選択
  6. 「サーバーの役割の選択」で、「Active Directory Federation Services」を選択し、[次へ]ボタンをクリックします。
    「Active Directory Federation Services」を選択
  7. そのままウィザードを進め、インストールを行います。

(2) サーバー証明書の作成

AD FS で必要となるサーバー証明書を作成します。本環境では、IIS を使って自己証明書を作成します。

  1. スタートメニューから、「Windows 管理ツール」を起動します。
  2. [インターネット インフォメーション サービス(IIS)マネージャー]をダブルクリックします。
    [インターネット インフォメーション サービス(IIS)マネージャー]をダブルクリック
  3. 左のツリービューより、サーバーのホスト名を選択し、[サーバー証明書]をダブルクリックします。
    [サーバー証明書]をダブルクリック width=
  4. [自己署名入り証明書の作成]をクリックします。
    [自己署名入り証明書の作成]をクリック
  5. ダイアログが表示されます。
    証明書のフレンドリ名を入力します。フレンドリ名は証明書の識別に利用する値です。任意の値を入力してください。
    証明書のフレンドリ名を入力
  6. [OK]ボタンをクリックし、証明書を作成します。

(3) フェデレーションサーバーの構成

  1. スタートメニューから、「サーバーマネージャー」を起動します。
  2. [通知]フラグ(旗マーク)をクリックします。
  3. [このサーバーにフェデレーションサービスを構成します]をクリックします。
    [このサーバーにフェデレーションサービスを構成します]をクリック
  4. ウィザードが表示されます。
    「フェデレーションサーバーファームに最初のフェデレーションサーバーを作成します」を選択し、[次へ]ボタンをクリックします。
    「フェデレーションサーバーファームに最初のフェデレーションサーバーを作成します」を選択
  5. 「AD DS への接続」で、[次へ]ボタンをクリックします。
  6. 「サービスのプロパティの指定」で、「SSL証明書」にサーバー証明書の作成で作成した証明書が選択されていることを確認し、[次へ]ボタンをクリックします。
    サーバー証明書の作成で作成された証明書が選択されていることを確認
  7. そのままウィザードを進め、インストールを行います。

(4) cybozu.com と AD FS 2.0 の認証設定

Service Provider メタデータのダウンロード

  1. cybozu.com 共通管理の管理者で、cybozu.com 環境にログインします。
  2. [cybozu.com 共通管理]をクリックします。
  3. [セキュリティ]を選択し、[ログイン]をクリックします。
  4. 「SAML認証を有効にする」を選択します。
    SAML認証を有効にする
  5. 「Service Provider メタデータのダウンロード」をクリックし、メタデータファイル(spmetadata.xml)をダウンロードします。
    メタデータファイルをダウンロード

AD FS の設定

証明書利用者信頼の設定

  1. スタートメニューから、「Windows 管理ツール」を起動します。
  2. [AD FSの管理]をダブルクリックします。
    [AD DSの管理]をダブルクリック
  3. [証明書利用者信頼の追加]をクリックします。
    [証明書利用者信頼の追加]をクリック
  4. ウィザードが表示されます。[開始]ボタンをクリックします。
  5. 「データソースの選択」で「証明書利用者についてのデータをファイルからインポートする」を選択します。
    [参照]から「Service Provider メタデータのダウンロード」でダウンロードしたspmetadata.xml を指定し、[次へ]ボタンをクリックします。
    ダウンロードしたメタデータファイルを指定
  6. 「表示名の指定」で「表示名」を入力し、[次へ]ボタンをクリックします。表示名は設定の識別に利用します。任意の値を入力してください。
    表示名を入力
  7. 「アクセス制御ポリシーの選択」で「すべてのユーザーを許可」を選択し、[次へ]ボタンをクリックします。
    「すべてのユーザーを許可」を選択
  8. そのままウィザードを進め、設定を完了します。

要求規則の編集

続いて、要求規則の編集を行います。

  1. 「AD FS 管理」の左ペインで、[証明書利用信頼]を選択します。
  2. 先ほど作成した証明書利用者信頼を選択し、[要求発行ポリシーの編集]をクリックします。
    [要求発行ポリシーの編集]をクリック
  3. [規則の追加]ボタンをクリックします。
    [規則の追加]をクリック
  4. 「規則の種類の選択」で「LDAP 属性を要求として送信」を選択し、[次へ]ボタンをクリックします。
    「LDAP 属性を要求として送信」を選択
  5. 「要求規則の構成」で、次のように入力します。入力が終わったら、[完了]ボタンをクリックします。
    「要求規則の構成」の項目を入力
    設定項目 設定内容
    要求規則名 任意の値を入力
    属性ストア Active Directory
    LDAP 属性 SAM-Account-Name
    出力方向の要求の種類 名前 ID

    ※ Active Directory に作成したユーザーの「ユーザー ログオン名」と 、cybozu.com に作成したユーザーの「ログイン名」が一致することで、認証の連携が行われます。
    ADFSで設定したユーザーログオン名とcybozu.comに作成したユーザーのログイン名が一致

ログアウト用のエンドポイントの作成

  1. 「AD FSの管理」の左ペインで、[証明書利用者信頼]を選択します。
  2. 先ほど作成した証明書利用者信頼をダブルクリックします。
    作成した証明書利用者信頼をダブルクリック
  3. [エンドポイント]タブを選択し、[SAML の追加]ボタンをクリックします。
    [SAML の追加]ボタンをクリック
  4. 「エンドポイントの追加」で、次のように入力します。入力が終わったら、[OK]をクリックします。
    「エンドポイントの追加」の項目を入力
    設定項目 設定内容
    エンドポイントの種類 SAML ログアウト
    バインディング POST
    URL https://{AD FSサーバーのFQDN}/adfs/ls?wa=wsignout1.0
    応答 URL 空白
  5. [OK]をクリックし、プロパティを閉じます。

トークン署名証明書のエクスポート

  1. 「AD FSの管理」の左ペインで、[サービス]を展開し、[証明書]を選択します。
  2. トークン証明書の証明書を右クリックし、[証明書の表示]を選択します。
    [証明書の表示]を選択
  3. [詳細]タブを開き、[ファイルにコピー]ボタンをクリックします。
    [ファイルにコピー]ボタンをクリック
  4. ウィザードが表示されます。[次へ]ボタンをクリックします。
  5. 「エクスポート ファイル形式」で「DER encoded binary X.509 (.CER)」を選択し、[次へ]ボタンをクリックします。
    「DER encoded binary X.509 (.CER)」を選択
  6. 「エクスポートするファイル」に任意のファイルパスを入力します。
    入力が終わったら、[次へ]ボタンをクリックします(拡張子は入力不要です。自動で付与されます)。
    エクスポートするファイルを指定
  7. 「証明書のエクスポートウィザードの完了]で、[完了]をクリックします。指定したフォルダーに証明書が保存されます。

cybozu.com の設定

  1. cybozu.com 共通管理の管理者で、cybozu.com 環境にログインします。
  2. [cybozu.com 共通管理]をクリックします。
  3. [セキュリティ]を選択し、[ログイン]をクリックします。
  4. 「SAML認証を有効にする」を選択します。
  5. 次のように入力します。入力が終わったら、[保存]ボタンをクリックします。
    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 のユーザー作成

  1. スタートメニューから、「サーバーマネージャー」を起動します。
  2. ダッシュボードの左上メニューから[ツール]をクリックし、[Active Directory ユーザーとコンピューター]を選択します。
  3. 左のツリービューより、サーバーのホスト名を展開し、[User]を選択します。
  4. ツールバーの[現在のコンテナーに新しいユーザーを追加]をクリックします。
  5. ウィザードが表示されます。
    ユーザー情報を入力します。入力が終わったら、[次へ]ボタンをクリックします。
    ※ ユーザーログオン名には cybozu.com で登録するログイン名と同じ値を入力します。
    ユーザー情報を入力
  6. そのままウィザードを進め、ユーザーを追加します。

(2) cybozu.com のユーザー作成

ヘルプサイトの「ユーザーを追加する」を参考にユーザーを追加します。
※ ログイン名は、Active Directory に追加したユーザーのユーザーログオン名と一致させます。

手順4. クライアント PC の設定

  1. スタートメニューから、「コントロールパネル」を開きます。
  2. [インターネットオプション]を選択します。
  3. [セキュリティ]タブをクリックします。
  4. [ローカル イントラネット]をクリックし、[レベルのカスタマイズ]ボタンをクリックします。
  5. 「ユーザー認証」 > 「ログオン」で、「現在のユーザー名とパスワードで自動的にログオンする」を選択します。
  6. [OK]ボタンをクリックします。

動作確認(cybozu.com へのアクセス)

  1. クライアントPC で Active Directory にログインします。
  2. ウェブブラウザーを起動し、cybozu.com 環境にアクセスします。
  3.  シングルサインオンが行われ、cybozu.com 環境への認証が行われます。
  • cybozu.com 環境からログアウトしたときは、次の画面が表示されます。
    cybozu.com 環境からログアウト
  • cybozu.com にアクセスしたとき、「この接続ではプライバシーが保護されません」というエラーメッセージが表示される場合があります。
    [詳細設定]をクリックし、「{AD FSサーバーのアドレス} にアクセスする(安全ではありません)」をクリックすることでシングルサインオンできます。
    • AD FS に自己署名証明書を利用しているためです。
    • エラーを表示させたくない場合は、クライアント PC に証明書をインストールしてください。
  • cybozu.com 環境への認証時にエラーが発生した場合、SAML認証のトラブルシューティングもご参照ください。

おわりに

この記事では、Active Directory フェデレーションサービスを使って、cybozu.com へシングルサインオンを行う手順を説明しました。
他社サービスとの認証の設定はこちらをご参考ください。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
中村

情報公開ありがとうございます

お伺いしたいのですが

証明書の既定の期限が一年ですが、一年毎に再発行する必要があるのでしょうか?

 

あと

「SAML認証を有効にする」を選択すると、以降はシングル・サインオンのみとなり

社外から通常のIDとパスワードのみのログインはできなくなるのでしょうか?

ご教示頂けますと幸いです。

Avatar
cybozu Development team

コメントいただきありがとうございます。
cybozu developer network 運営事務局です。

サーバー証明書につきましては、恐れ入りますがMicrosoft社へお問い合わせいただきますようお願いいたします。

 

「SAML認証を有効にする」を選択すると、以降はシングル・サインオンのみとなり
社外から通常のIDとパスワードのみのログインはできなくなるのでしょうか?

SAML認証を無効にするURLからアクセスすることで、標準の認証を利用してログインすることが可能です。
https://(サブドメイン名).cybozu.com/login?saml=off

詳細は以下のヘルプページをご確認ください。

サインインしてコメントを残してください。