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) も参照してください。

cybozu.comからログアウトできない場合

cybozu.comからログアウトし、同じWebブラウザーで再度cybozu.comにアクセスすると、ログイン後の画面が表示されることがあります。
AD FSにCookieが残っているためです。

cybozu.comからログアウトできない場合は、Webブラウザーを再起動してから、cybozu.comにアクセスしてください。

おわりに

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