PendoのインサイトとガイダンスのCNAME

CNAME機能を使用すると、お客様独自のアプリケーションのドメインの下にホスト名を作成できます。このホスト名は、イベントの送信でもガイドコンテンツのダウンロードでも、Pendoのホスト名の代わりに使用されます。これにより、イベントを確実に収集し、広告ブロックソフト、ファイアウォール、ウェブフィルタなどの対象となるエンドユーザーにガイドを提供することができます。

CNAMEとは何の略ですか?

正規名レコード(CNAMEレコードと略されます)は、ドメインネームシステム(DNS)で定義されるそのドメインについての情報の種類の1つで、あるドメイン名やホスト名の別名を定義するものです。別名は「エイリアス」(alias)と呼ばれます。

注:お客様のPendoサブスクリプションのCNAMEを設定するには、Pendoサポートにお問い合わせください。

設定

product.example.comのような、企業ドメインのサブドメインを指定してください(「example」はお客様の企業ドメインです)。

Pendoは、作成する必要のある一連の必須DNSエントリを提供します。これは次のようなものです。

ドメイン CNAME 説明
product.example.com 1234567812345678-txt.example.pendo.io このレコードは、PendoがGoogle App Engine経由でdata.product.example.comを提供できることをGoogleに検証するために使用されます。
data.product.example.com 1234567812345678-data.example.pendo.io このレコードは、app.pendo.ioのエイリアスです。
content.product.example.com 1234567812345678-content.example.pendo.io このレコードは、お客様のPendoサブスクリプションのカスタムCDN構成のエイリアスです。
_0123456789abcdef.content.product.example.com _fedcab987654321.acm-validations.aws このレコードは、Amazonに対してサブドメインの所有権を検証し、SSL証明書を自動生成できるようにするために使用されます。


上記の例はプレースホルダーであり、実際に作成されるDNSエントリのセットはPendoが提供します。

注:Pendoのサブスクリプションキーごとに、固有のコンテンツドメインが必要です。

DNSエントリが設定されると、Pendoはインフラの設定を完了します。これには新しいホスト名用のSSL証明書の自動生成が含まれます。

Pendoは、サブスクリプション設定の「データホスト」と「コンテンツホスト」を、それぞれdata.product.example.comcontent.product.example.comを指すように更新します。

Pendoスニペットを更新する

Pendoアプリケーションは、新しい設定を使用して、サブスクリプションのPendoエージェントの書き換えをトリガーします。この時点から、Pendoとのコミュニケーションはすべて、提供されたエイリアスを介して行われます。

次に、新しい「コンテンツホスト」がインストールされている場所すべてでPendoスニペットを更新する必要があります。

ガイドを再保存する

既存のガイドのコンテンツが新しいエイリアスからプルされるように、各ガイドを再保存する必要があります。

以上の手順を、アクティブなガイドごとに繰り返します。

  1. ガイドの詳細で、[アプリ内の管理(Manage In-App)]を選択します。
  2. ビジュアルデザインスタジオの[ガイドの管理(Guide Management)]バーで[保存(Save)]を選択します。
  3. [終了(Exit)]を選択して、ビジュアルデザインスタジオを終了します。

CNAMEを有効にした後に公開される各ガイドにも同様の作業を行ってください。 ガイドが再保存されると、そのコンテンツはエイリアスドメインからプルされます。

Pendo MobileのCNAME

要件:Mobile CNAMEには、AndroidおよびiOS SDKバージョン2.5.1以上が必要です。

:以下に必要なハッシュ値は、証明書がインストールされた後にPendoから提供されます。

AndroidでのCNAMEの有効化

アプリのManifest.xmlの<application>タグ内に以下のエントリを追加します。

例:
<meta-data android:name="pnd_device_url" android:value="https://device_url.acme.com/"/>
<meta-data android:name="pnd_app_url" android:value="https://app_url.acme.com/"/>
<meta-data android:name="pnd_data_url" android:value="https://data_url.acme.com/"/>
<meta-data android:name="pnd_device_hash" android:value="sha256/035gh43/1Df3aP/dh3j7iHFk23gs7Upuf8R4gd=" />
<meta-data android:name="pnd_data_hash" android:value="sha256/03gp63/3Da143/k64vr5df526d7=" />

iOSでのCNAMEの有効化

info.plistに以下のマッピングを追加します。

<key>PNDCNames</key> 
<dict>
<key>PNDDeviceURL</key>
<string>https://device_url.acme.com</string>

<key>PNDAppURL</key>
<string>https://app_url.acme.com</string>

<key>PNDDataURL</key>
<string>https://data_url.acme.com</string>

<key>PNDDeviceHash</key>
<string>6fSJ7nrsv8A/65FAOBoGr34q3Ar63gjFy88FA7C84Av=</string>

<key>PNDDataHash</key>
<string>Ga+fa/Rsv/Sfh4AFsEkhA895hsdg4654FHSfd5SgO+df4=</string>
</dict>

よくある質問

CNAMEはCSPの構成に影響を与えますか?

はい。Pendoへのサービスを中断せずに維持するためには、CNAMEへの移行中およびCNAMEの配置後に、CSPディレクティブを変更する必要があります。CSPディレクティブの変更方法については、 コンテンツセキュリティポリシーの記事をご覧ください。

Segment.ioでCNAMEを使うことはできますか?

いいえ。CNAMEを設定するにはsrc URLを置き換えるためのPendoインストールスニペットにアクセスする必要があります。Pendoのスニペットは、Segment.ioのインストールでは変更できません。

自分でSSL証明書を用意することはできますか?

セキュリティ上のベストプラクティスとして、Pendoによる証明書署名要求(CSR)の生成を許可する必要があります。これにより、秘密鍵の共有を避けることができます。

PendoがCSRを生成している状態で、CSRの生成に適したテキストファイルを提供していただく必要があります。Pendoが、キーとCSRを生成します。CSRをお送りしたら、それを使ってCAから証明書を取得してください。これにより、当事者間で秘密鍵をやり取りする必要がなくなります。証明書チェーンは、プレーンテキストの電子メールで安全に送信できます。

CSR入力ファイルの例

[ req ] default_bits = 2048 prompt = no encrypt_key = no default_md = sha256 distinguished_name = dn req_extensions = req_ext [ dn ] commonName = Common Name (server FQDN; data.product.example.com)organizationName = Organization Name (eg, company) localityName = Locality Name (eg, city) stateOrProvinceName = State or Province Name (full name) countryName = Country Name (2 letter code) organizationalUnitName = Organizational Unit Name (eg, section) [ req_ext ] subjectAltName = @alt_names [ alt_names ] DNS.1 = data.product.example.com DNS.2 = content.product.example.com

PendoにSSL証明書を提供する必要がある場合は、データとコンテンツのホスト名の両方に適した単一のSSL証明書を提供することも、別々の証明書を提供することもできます。

鍵とCSRを生成し、CAから証明書を取得し、証明書チェーンと秘密鍵を含む暗号化されたアーカイブを弊社に送付してください。標準的な方法では、PGPで暗号化されたファイルをkeybase.io経由で、OPSチームのメンバーに送信します。独自の安全なファイル転送メカニズムをご希望の場合は、そのメカニズムを使用することができます。