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

目次

はじめに

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

動作環境

前提条件

  • 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
      • Web ブラウザー:Google Chrome

補足:SAML を使った認証の流れ

SAML を使った認証の流れは、次のとおりです。ここでは、AD FS が Identity Provider(IdP)に相当します。

  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 へのログイン状態となります。

手順1. Active Directory Domain Service(AD) の設定

インストール手順は、 Microsoft 社の情報 (External link) を確認してください。

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

設定項目 設定内容
コンピューター名 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」を選択し、[次へ]ボタンをクリックします。

  7. そのままウィザードを進め、インストールを行います。

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

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

  1. スタートメニューから、「Windows 管理ツール」を起動します。
  2. [インターネット インフォメーション サービス(IIS)マネージャー]をダブルクリックします。

  3. 左のツリービューより、サーバーのホスト名を選択し、[サーバー証明書]をダブルクリックします。

  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 認証を有効にする」を選択します。

  5. [Service Provider メタデータのダウンロード]をクリックし、メタデータファイル(spmetadata.xml)をダウンロードします。

AD FS の設定
証明書利用者信頼の設定
  1. スタートメニューから、「Windows 管理ツール」を起動します。
  2. [AD FS の管理]をダブルクリックします。

  3. [証明書利用者信頼の追加]をクリックします。

  4. ウィザードが表示されます。[開始]ボタンをクリックします。
  5. 「データソースの選択」で「証明書利用者についてのデータをファイルからインポートする」を選択します。
    [参照]から「 Service Provider メタデータのダウンロード」でダウンロードしたメタデータファイル(spmetadata.xml)を指定し、[次へ]ボタンをクリックします。

  6. 「表示名の指定」で「表示名」を入力し、[次へ]ボタンをクリックします。表示名は設定の識別に利用します。任意の値を入力してください。

  7. 「アクセス制御ポリシーの選択」で「すべてのユーザーを許可」を選択し、[次へ]ボタンをクリックします。

  8. そのままウィザードを進め、設定を完了します。
要求規則の編集
  1. 「AD FS 管理」の左ペインで、[証明書利用者信頼]を選択します。

  2. 先ほど作成した証明書利用者信頼を選択し、[要求発行ポリシーの編集]をクリックします。

  3. [規則の追加]ボタンをクリックします。

  4. 「規則の種類の選択」で「LDAP 属性を要求として送信」を選択し、[次へ]ボタンをクリックします。

  5. 「要求規則の構成」で、次のように入力します。入力が終わったら、[完了]ボタンをクリックします。

    設定項目 設定内容
    要求規則名 任意の値を入力
    属性ストア Active Directory
    LDAP 属性 SAM-Account-Name
    出力方向の要求の種類 名前 ID

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

ログアウト用のエンドポイントの作成
  1. 「AD FS の管理」の左ペインで、[証明書利用者信頼]を選択します。

  2. 先ほど作成した証明書利用者信頼をダブルクリックします。

  3. [エンドポイント]タブを選択し、[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)」を選択し、[次へ]ボタンをクリックします。

  6. 「エクスポートするファイル」に任意のファイルパスを入力します。
    入力が終わったら、[次へ]ボタンをクリックします(拡張子は入力不要です。自動で付与されます)。

  7. 「証明書のエクスポートウィザードの完了」で、[完了]をクリックします。指定したフォルダーに証明書が保存されます。
cybozu.com の設定
  1. cybozu.com 共通管理の管理者で、cybozu.com 環境にログインします。
  2. [cybozu.com 共通管理]をクリックします。
  3. [セキュリティ]を選択し、[ログイン]をクリックします。
  4. 「SAML 認証を有効にする」を選択します。
  5. 次のように入力します。入力が終わったら、[保存]ボタンをクリックします。

    設定項目 設定内容
    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 のユーザー作成

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

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

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

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

  1. クライアント PC で Active Directory にログインします。
  2. Web ブラウザーを起動し、cybozu.com 環境にアクセスします。
  3. シングルサインオンが行われ、cybozu.com 環境への認証が行われます。
  • cybozu.com 環境からログアウトしたときは、次の画面が表示されます。

cybozu.com にアクセスしたとき、「この接続ではプライバシーが保護されません」というエラーメッセージが表示される場合

  • [詳細設定]をクリックし、「{AD FS サーバーのアドレス} にアクセスする(安全ではありません)」をクリックすることでシングルサインオンできます。
    • AD FS に自己署名証明書を利用しているためです。
    • エラーを表示させたくない場合は、クライアント PC に証明書をインストールしてください。
  • cybozu.com 環境への認証時にエラーが発生した場合、 SAML 認証のトラブルシューティング (External link) も参照してください。

おわりに

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