Klaro Cookie & Consent Management
Klaro Consent Manager JavaScriptライブラリをDrupalに実装し、GDPR準拠のCookieおよび同意管理を提供します。
klaro
インストール
composer require 'drupal/klaro:^3.0'
概要
Klaro Cookie & Consent Managementモジュールは、オープンソースのKlaro同意管理JavaScriptライブラリをDrupalに統合し、Cookie、外部サービス、サードパーティ統合に対するユーザー同意を管理するための包括的なソリューションを提供します。
このモジュールにより、ウェブサイト管理者は、読み込み前にユーザーの同意が必要な外部サービス(Google Analytics、YouTube、Facebookなど)を設定できます。訪問者が個々のサービスまたは目的別にグループ化されたサービスグループに対して同意を許可または拒否できる、カスタマイズ可能な同意ダイアログを提供します。
主な機能には、外部リソースの自動検出とブロック、埋め込みコンテンツに対するコンテキスト同意ダイアログ、同意取り消し時の自動削除を含むCookie管理、多言語サイトの完全サポートが含まれます。このモジュールは、プライバシー・バイ・デフォルトの原則を実装することで、GDPRやePrivacy指令を含む欧州のプライバシー規制に準拠します。
Features
- 複数の表示モード(サイレント、通知、モーダル)を備えた、サイト訪問者向けの設定可能な同意/Cookieマネージャーダイアログ
- script、iframe、img、audio、videoタグを含む外部リソースの自動属性付与
- YouTube、Vimeo、Google Analytics、Google Tag Manager、Matomo、Facebook、Instagram、TikTok、LinkedInなど、25以上の事前定義サービスをサポート
- サービスの目的別グループ化(Analytics、Advertising、CMS、External Content、LiveChat、Security、Styling)
- 埋め込みコンテンツに対してサムネイルプレビュー付きのインラインブロッキングオーバーレイを表示するコンテキスト同意ダイアログ
- 正規表現マッチング、パス、ドメイン指定を含む設定可能な削除ルールを持つCookie管理
- CookieまたはブラウザのlocalStorageを使用し、有効期限をカスタマイズ可能なストレージオプション
- 特定のパスでKlaroの動作を制御するためのURL除外および無効化パターン
- テキストフォーマット内のコンテンツを処理するためのText Filterプラグイン
- Configuration Translationモジュールによる完全な翻訳サポート
- Olivero、Claro、Gin管理テーマとのテーマ統合によるカスタマイズ可能なスタイリング
- ARIAラベルとキーボードナビゲーションサポートを含むアクセシビリティ機能
- サービスごとのカスタム統合ロジック用JavaScriptコールバックコード実行
- 未カバーの外部統合を特定するための不明なリソースの検出とログ記録
Use Cases
基本的なGDPR Cookie同意
Klaroをインストールし、匿名ユーザーに「Use Klaro! UI」権限を有効にし、dialog_modeを「notice」に設定します。埋め込み動画を使用している場合はYouTubeとVimeoサービスを有効にし、Google AnalyticsやMatomoを使用している場合は「Analytics」サービスを追加します。訪問者には同意通知が表示され、設定を管理できます。
外部埋め込みコンテンツのブロック
YouTube、Vimeo、ソーシャルメディアサービスを有効にします。自動属性付与設定で「Process preprocess_field」と「Process final HTML」を有効にします。外部のiframeと埋め込みは、ユーザーが承認するまでサムネイル付きのコンテキスト同意オーバーレイを表示します。
コンテキスト同意のみのサイレントモード
dialog_modeを「silent」に設定して同意ポップアップを無効にします。ユーザーはブロックされた外部コンテンツに遭遇した場合にのみコンテキスト同意ダイアログを見ることになります。サードパーティコンテンツをブロックしながら最小限の介入を求めるサイトに有用です。
同意必須モーダルによる厳格な同意
閲覧前に操作が必要な完全な同意モーダル用にdialog_modeを「manager」に設定します。拒否オプションが必要な国での準拠のために「閉じるボタンを追加」を有効にします。適切な目的を持つすべてのサービスを設定します。
不明な外部リソースの検出
「不明なリソースをログに記録」を有効にすると、マッチングするサービスがない外部リソースをKlaroがログに記録します。Drupalログを確認してサービス設定が必要な統合を特定します。オプションで「不明な外部リソースをブロック」を有効にして、未設定のすべての外部コンテンツをブロックします。
カスタムサービス統合
カスタム外部統合用の新しいサービスを作成します。「ソース」フィールドにソースURL/パターンを追加し、適切な目的を設定し、削除用のCookieパターンを追加し、オプションでカスタム同意処理ロジック用のコールバックJavaScriptコードを追加します。
Tips
- 匿名ユーザーに「Use Klaro! UI」権限を付与してください - これは訪問者に同意ダイアログを表示するために必要です
- YouTubeとVimeoサービスはデフォルトで有効になっています。サイトに必要に応じて他のサービスを確認し有効にしてください
- 「不明なリソースをログに記録」オプションを一時的に使用して、サービス設定が必要な外部統合を発見してください
- メニューベースの同意マネージャーアクセスには、rel="open-consent-manager"、href="#klaro"、またはclass="open-consent-manager"を持つリンクを追加します
- Text Filterはテキストエディタで追加されたコンテンツに使用できますが、フィールド固有の前処理が推奨されます
- Matomoを使用する場合、matomo_cookiesサービスを使用し、Cookieのみのブロック用にMatomo設定に_paq.push(['requireCookieConsent']);を追加してください
- 最終HTMLの処理は実験的です - 不正なHTMLは問題を引き起こす可能性があるため、十分にテストしてください
- モジュールはテーマ固有のスタイリング用にアクティブなテーマ名をクラスとして追加します(例:klaro-theme-gin)
Technical Details
Admin Pages 6
/admin/config/user-interface/klaro
Klaro同意マネージャーのメイン設定ページ。ダイアログの動作、ボタンオプション、ストレージ設定、自動属性付与プロセッサ、不明なリソースの処理、スタイリングオプションを設定します。
/admin/config/user-interface/klaro/texts
Klaro同意ダイアログに表示されるすべてのテキスト文字列を設定します。すべてのテキストは多言語サイト用に翻訳可能です。
/admin/config/user-interface/klaro/services
ユーザーの同意が必要なKlaroサービス(アプリケーション)を管理します。サービスは、同意が得られるまでブロックされる外部リソースを定義します。
/admin/config/user-interface/klaro/services/add
外部統合の同意を管理するための新しいKlaroサービス設定を作成します。
/admin/config/user-interface/klaro/purposes
同意マネージャーでサービスをグループ化するための目的カテゴリを管理します。
/admin/config/user-interface/klaro/purposes/add
サービスを整理するための新しい目的カテゴリを作成します。
権限 2
Hooks 3
hook_preprocess_field
モジュールがフィールド出力を前処理できるようにします。Klaroはこれを使用して、iframe、oembed、html、video_embed_field_video、simple_gmapフィールドフォーマッタを自動的に装飾します。
hook_js_alter
JavaScriptファイルが出力される前に変更します。Klaroはこれを使用して、同意ベースの読み込み用にスクリプトファイルをマークします。
hook_page_attachments_alter
ページ添付を変更します。Klaroはこれを使用して、設定された添付識別子に基づいて手動で添付されたJSファイルを処理します。
Security Notes 4
- 「Administer Klaro!」権限は「restrict access」がtrueに設定されており、信頼できる管理者にのみ付与する必要があります
- サービス用に入力されたコールバックコードはJavaScriptとして実行されます - 信頼できる管理者のみがサービスを設定する必要があります
- Text Filterは、信頼できるコンテンツ編集者が使用するテキストフォーマットでのみ有効にする必要があります
- コンテキスト同意テキストフィールドにはXSSフィルタリングが適用され、a、em、strongタグのみが許可されます