Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Active Directory (SAML)

最終更新 Markdown で表示Agent セットアップ

Active Directory は、Microsoft が Windows ドメインネットワーク向けに開発したディレクトリサービスです。ほとんどの Windows Server オペレーティングシステムに、一連のプロセスとサービスとして含まれています。Active Directory は、Security Assertion Markup Language(SAML)を使って Cloudflare Access と連携します。

始める前に

次のものが必要です。

  • すべてのユーザーに email 属性がある Active Directory Domain Controller
  • Access の ID プロバイダー(IdP)で Generic SAML が有効であること
  • Active Directory Federation Services(AD FS)をインストールした Microsoft サーバー。この手順のスクリーンショットは Server 2012R2 です。新しいバージョンでも同様の手順で進められます。
  • Active Directory Federation Services(AD FS)用の、ブラウザーが信頼する証明書

上記の要件を満たしたら、設定を始められます。Active Directory Federation Services(AD FS)のインストールと基本設定は、このガイドの範囲外です。詳細は Microsoft KB を参照してください。

次に、Cloudflare Access と AD FS を接続するため、AD FS で Relying Party Trust を作成します。

Relying Party Trust を作成する

Add Relying Party Trust ウィザードを実行し、SAML による AD と Cloudflare Access の連携を開始します。

Relying Party Trust を作成するには、次の手順を実行します。

  1. Windows ServerADFS Management ツールを起動します。

  2. Relying Party Trusts フォルダーを選択します。

  3. Actions サイドバーで Add Relying Party Trust を選択します。Add Relying Party Trust Wizard が起動します。

  4. 左メニューで Select Data Source を選びます。

  5. Enter data about the relying party manually を選択します。

  6. Next を選択します。

  7. Display name を入力します。わかりやすい名前を使うことを推奨します。この接続に関する情報は Notes 欄に記入します。

  8. Next を選択します。Choose Profile の手順が表示されます。

  9. AD FS profile を選択します。

  10. Next を選択します。Configure Certificate の手順が表示されます。

  11. Certificate のオプションはデフォルトのままにします。

  12. Next を選択します。Configure URL の手順が表示されます。

  13. Enable support for the SAML 2.0 WebSSO protocol を選択します。

  14. Relying party SAML 2.0 SSO service URL 欄に、次の URL を入力します。

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

    チーム名は、Cloudflare ダッシュボードSettings > Team name and domain > Team name で確認できます。

  15. Next を選択します。Configure Identifiers の手順が表示されます。

    開いているフォーム欄にコールバック URL を貼り付けた Add Relying Party Trust ウィザード
  16. Relying party trust identifier 欄にコールバック URL を貼り付けます。

  17. Next を選択します。Configure Multi-factor Authentication Now? の手順で、多要素認証を設定できます。

  18. Next を選択します。Choose Issuance Authorization Rules の手順が表示されます。

  19. Permit all users to access this relying party を選択します。

  20. Next を選択します。Ready to Add Trust の手順が表示されます。

  21. 設定内容を確認します。

  22. Next を選択します。これで Cloudflare はユーザー ID の認可を AD FS に委ねます。

Edit Claim Rules for CF Login 画面が自動で表示されます。

クレームルールを作成する

次に、AD FS が Cloudflare から情報を受け取り、Access ポリシー を作成できるよう、クレームルールを 2 つ作成します。

Add Relying Party Trust ウィザードを閉じた場合は、エクスプローラーで Relying Party Trusts フォルダーを開き、作成した RPT ファイルを選択し、Action サイドバーで Edit Claim Rules を選択します。

クレームルールを作成するには、次の手順を実行します。

  1. Edit Claim Rules for CF Login ウィンドウで Add Rule を選択します。Choose Rule Type の手順が表示されます。

  2. Claim rule template で、ドロップダウンから Send LDAP Attributes as Claims を選択します。

  3. Next を選択します。Edit Rule — Send Email の手順が表示されます。

  4. わかりやすい Claim rule name を入力します。

  5. Attribute store のドロップダウンから Active Directory を選択します。

  6. LDAP AttributeOutgoing Claim Type のドロップダウンから E-mail-Addresses を選択します。

  1. OK を選択します。Choose Rule Type の手順に戻ります。

  2. 2 つ目のルールを作成するため、Claim rule template のドロップダウンから Transform an Incoming Claim を選択します。

  3. Next を選択します。Edit - Create Transient Name Identifier ウィンドウが表示されます。

  4. わかりやすい Claim rule name を入力します。

  5. Incoming claim type のドロップダウンから E-Mail Address を選択します。

  6. Outgoing claim type のドロップダウンから Name ID を選択します。

  7. Outgoing name ID format のドロップダウンから Transient Identifier を選択します。

  8. Pass through all claim values が選択されていることを確認します。

  9. OK を選択します。

両方のクレームルールを、Cloudflare Access アカウントへエクスポートできるようになりました。

証明書をエクスポートする

AD FS から token-signing certificate を取り出し、Cloudflare が AD FS を認識できるように設定します。

証明書をエクスポートするには、次の手順を実行します。

  1. AD FS 管理コンソールで、AD FS の Service を選択し、エクスポートする証明書がある Certificates フォルダーを開きます。

  2. Certificates カードで Token-signing の項目を右クリックし、View certificate を選択します。Certificates ウィンドウが表示されます。

    token-signing 証明書を選択した Certificates ウィンドウ
  3. Details タブを選択し、Copy to File を選択します。

  4. Certificate Export Wizard が表示されます。

  5. Next を選択します。Export File Format ウィンドウが表示されます。

  6. Base-64 encoded X.509 (.CER) を選択します。

  7. Next を選択します。

  8. ファイル名を入力します。

  9. Next を選択します。

  10. Finish を選択します。

    あとで使うため、ファイルパスを控えておきます。

SAML レスポンスに署名するよう AD FS を設定する

Cloudflare との通信時に AD FS がレスポンス全体に署名するよう、ローカルの PowerShell を開き、次のコマンドを入力します。

Set-ADFSRelyingPartyTrust -TargetName "Name of RPT Display Name" -SamlResponseSignature "MessageAndAssertion"

Cloudflare One を設定する

AD FS から送られるクレームとアサーションを Cloudflare One が受け入れるようにするには、次の手順を実行します。

  1. Cloudflare ダッシュボードZero Trust > Integrations > Identity providers を開きます。

  2. Your identity providersAdd new identity provider を選択します。

  3. SAML を選択します。

  4. IdP の Name を入力します。

  5. Single Sign On URL に次を入力します。

    https://hostnameOfADFS/adfs/ls/

    これはデフォルトの場所です。federation service identifier は AD FS で確認できます。

  6. IdP Entity ID or Issuer URL 欄に、Cloudflare Zero Trust のチームドメインを入力し、パスの末尾に /cdn-cgi/access/callback を付けます。例:

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback
  7. Signing certificate に、エクスポートした証明書を貼り付けます。

    テキスト欄にスペースや改行を入れないでください。

  8. Save を選択します。

接続を確認するには、Integrations > Identity providers を開き、テストする ID プロバイダーの横の Test を選択します。

SP メタデータをダウンロードする(任意)

一部の IdP では、管理者は SP(サービスプロバイダー)のメタデータファイルをアップロードできます。

Cloudflare のメタデータファイルを取得するには、次の手順を実行します。

  1. 次の URL から、固有の SAML メタデータファイルをダウンロードします。

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/saml-metadata

    Cloudflare Access では、Edit a SAML identity provider ダイアログにこの URL へのリンクがあります。リンク先は、SAML SP データを XML 形式で返す Web ページです。

  2. ファイルを XML 形式で保存します。

  3. XML ドキュメントを Active Directory アカウントにアップロードします。

API 設定の例

{
	"config": {
		"issuer_url": "https://<your-team-name>.cloudflareaccess.com/",
		"sso_target_url": "https://adfs.example.com/adfs/ls/",
		"attributes": ["email"],
		"email_attribute_name": "",
		"sign_request": false,
		"idp_public_cert": "MIIDpDCCAoygAwIBAgIGAV2ka+55MA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJVUzETMBEG\nA1UEC.....GF/Q2/MHadws97cZg\nuTnQyuOqPuHbnN83d/2l1NSYKCbHt24o"
	},
	"type": "saml",
	"name": "adfs saml example"
}

役に立ちましたか?