プラットフォームのカスタマイズ

Things Cloud のエンタープライズテナント(親テナント)では、さまざまな側面で要件に応じてプラットフォームをカスタマイズできます。

さまざまな 構成 設定とは別に、個別の ブランディング や個別の ドメイン名 を使用することができます。

これらの設定にアクセスするには、設定 メニューの エンタープライズテナント(親テナント) をクリックします。

構成設定

構成 タブでは、テナントのさまざまなプロパティを構成できます。

必要条件

アプリケーションアクセス:

ユーザーはエンタープライズテナント(親テナント)の管理アプリケーションへのアクセス権を持つ必要があります。

ロールと権限:

  • 設定を表示する:「オプション管理」権限タイプの読み取り権限
  • 既存のすべての設定を管理する(作成、編集、更新):「オプション管理」権限タイプの管理者権限

テナントの作成時に、上記の権限のサンプル構成として使用できるデフォルトのロールが利用できます。

  • テナントマネージャー: アプリケーション、テナントオプション、データ保持ルールのようなテナント全体の構成を管理できます。
備考
いくつかのプロパティでは、さまざまな目的に合わせてメールテンプレートを構成できます。対応するメールは、コンテンツタイプとして「text/html」で送信されることに注意してください。

プレースホルダー

構成 タブには、次のプレースホルダーがあります。

プレースホルダー                             説明
 
{host} このプレースホルダーの値は、“https://” + “<<tenantId>>” + “<<base-domain>>” です。例えば、「tenantId」が自動生成される場合、ホストは https://t12345678.je1.thingscloud.ntt.com になります。
{tenant-domain} テナントにアクセスできる場所です。これは、“https://” + “<<tenantDomainName>>” と同等です。例えば、{tenant-domain}は https://myTenant.je1.thingscloud.ntt.com となります。エンタープライズテナント(親テナント)の場合、{tenantDomain} プレースホルダーには異なる値を指定できます。テナントドメインの例は https://myTenant.myhost.com です。
{token} パスワードリセット用に自動的に生成されるシステムトークンです。ユーザーがパスワードのリセットをリクエストすると、新しいランダムなトークンが生成されます。このトークンは特定のユーザのみに関連付けられ、1 回のパスワードリセットアクションを可能にします。このプレースホルダーを使用する標準的な方法は、{tenant-domain} プロパティと共に「{tenant-domain}/?token={token}」として使用することです。
{email} ユーザー設定に保存されている受信者ユーザーのメールアドレスに置き換えられます。UI の一部のビューはこのパラメーターを認識し、パスワードリセットのプロセス中などに、それぞれのフィールドにこの値を事前入力します。
{username} ユーザー構成で指定されたユーザー名プロパティの値に置き換えられます。詳細は ユーザーオプションと設定 を参照してください。
{binaryId} ダウンロードリンクで使用されるバイナリアーテファクトの binaryId に置き換えられます。
{exportApi} エラーが発生した API に置き換えられます。
{size} ストレージ使用率の値に置き換えられます。
備考
上記のプレースホルダーは、テンプレートによっては適用できない場合があります。コンテンツを準備する際には、UI で提供される情報に注意してください。

二要素認証

二要素認証 では、ユーザーに送信される SMS テンプレートを変更できます。

サポートリンク セクションでは、ユーザーメニューの サポートをリクエスト オプションのデフォルトリンクとして使用される URL を指定できます。この値を “false” に設定すると、ユーザーメニューの サポートをリクエスト オプションは非表示になります。サポートリンク フィールドを空のままにすると、リンクの URL はテナントオプションから取得されます。ただし、アプリケーションは「supportUrl」アプリケーション オプションを定義することで、この設定を上書きできます。

パスワードリセット

パスワードリセット セクションでは、パスワードリセットのメールテンプレートに関連するすべての設定を変更できます。

上部では、不明なメールアドレスへのメール送信を許可するかどうかを選択できます。

パスワードリセットの E メールテンプレート フィールドに、アドレスが既知の場合に使用するメールテンプレートと、アドレスが不明な場合に使用するメールテンプレートを入力します。パスワードをリセットするためのリンクは、{tenant-domain}/apps/devicemanagement/index.html?token={token}&email={email} のようになります。

E メールの件名 フィールドには、パスワードリセットに関連するすべての E メールの件名を入力します。

次の2つのフィールドには、パスワード変更の確認で使用するメールテンプレートと、招待メールのテンプレートが提供されます。

E メールサーバー

E メールサーバー セクションでは、カスタムのメールサーバー設定を構成できます。

プロトコルおよび暗号化 フィールドで、ドロップダウンリストからプロトコル/暗号化の種類を選択します。次のいずれかになります。

  • SMTP(暗号化なし): email.protocol=smtp and email.connection.encrypted=false
  • SMTP(STARTTLS): email.protocol=smtp and email.connection.encrypted=true
  • SMTPS(SSL/TLS): email.protocol=smtps and email.connection.encrypted=true

E メールサーバーのホスト、ポート、ユーザー名、パスワード、送信者アドレスを指定します。空のパスワード設定は、エンタープライズテナント(親テナント)でサポートされています。

データエクスポート

データエクスポート セクションでは、データエクスポート用の E メールの件名と E メールのテンプレートを設定し、ユーザーが承認されていない場合のエラーメッセージ を指定できます。

ストレージ制限

ストレージ制限 セクションでは、ストレージ制限を超えた際にデータが削除される「前」 (警告) と、データ削除が実行された「後」 (制限超過) に送信される E メールの件名とメールテンプレートを指定できます。

テナントを一時停止中

テナントを一時停止中 セクションでは、テナントの一時停止時に送信される E メールの設定を行うことができます。

上部で、一時停止されたテナントの管理者にメールを送信するかどうかを選択し、追加のメール受信者を指定できます。その下で、テナント一時停止メールの件名とテンプレートを設定します。

設定を保存するには、下部の 保存 をクリックします。

備考

追加の構成設定の一部は、マネジメントテナントでグローバルに指定できます。詳細については、運用チームにお問い合わせください。

ブランディング

ブランディング機能を使用して、テナントの外観を好みに合わせて完全にカスタマイズできます。

必要条件

アプリケーションアクセス:

ブランディング機能は、エンタープライズテナント(親テナント) にデフォルトで付属しており、管理アプリケーションで利用できます。

ブランディング機能は、「feature-branding」アプリケーションをサブスクライブすることで有効になります。

ロールと権限:

  • ブランディング構成を管理し、適用する:
    • 「アプリケーション管理」権限タイプに対するREAD、ADMIN権限が必要です。

テナントの作成時に、上記の権限のサンプル構成として使用できるデフォルトのロールが利用できます。

  • テナントマネージャー: アプリケーション、テナントオプション、データ保持ルールのようなテナント全体の構成を管理できます。

ブランディング設定の構成

ブランディング ページでは、複数のブランディング バリアントを管理できます。ブランディング バリアントの 1 つが常にグローバル ブランディングとして構成されます。グローバル ブランディングは、デフォルトでテナントとサブテナントのすべてのアプリに適用されます。

ブランディングバリアント一覧

グローバル ブランディングに加えて、特定のアプリケーションにのみ適用されるブランディング バリアントもあります。これにより、アプリケーションに異なるブランディングを適用できます。

ブランディング バリアントごとに、プラットフォーム全体で使用されるロゴ、色、フォントタイプなどのさまざまなパラメータを構成できます。 パラメータ は、ブランディング ページで使用できる複数のタブから構成できます。ほとんどのパラメータは、現在のウィンドウにプレビューとしてすぐに適用されます。

ブランディング バリアントの 1 つに変更を加える場合、まず対応するブランディング バリアントを複製し、複製したバリアントに変更を加えることをお勧めします。保存した変更はすぐに適用されます。この方法により、グローバル ブランディングとして設定したり、対象アプリケーションに適用したりする前に、最初にすべてのアプリケーションでブランディング バリアントのプレビューを確認して編集できます。

ブランディング バリアントを編集するには、次のタブを構成できます。

  • Generic: すべてのテーマで同じ内容のブランディングの一般的なパラメータを変更できます。
  • Light theme: ライトテーマのブランディング パラメータを編集できます。
  • Dark theme: ダークテーマのブランディング パラメータを編集できます。ダークテーマのサポートは、Generic タブで最初に有効にする必要があります。
  • Custom CSS: 独自のカスケーディング スタイルシートを提供することで、アプリケーションの外観をさらにカスタマイズできます。
  • Advanced branding: テキストエディタを使用して、ブランディングJSONオブジェクトを直接変更できます。これは、ブランディングエディタですぐにサポートされない Web SDK が提供する ApplicationOptions の一部を設定する場合に便利です。

設定の詳細なプレビューを表示するには、プレビューを開く をクリックして、プラットフォーム全体でのブランディング設定の外観と雰囲気を確認します。プレビューでは、アプリケーションを操作したり、切り替えたりすることもできます。ブランディング ページで行ったすべての変更は、保存 をクリックするとすぐに プレビュー ページに適用されます。

最終的なブランディング設定をテナントに保存するには、下部の保存をクリックします。これにより、ブランディング バリアントが適用される場所に適用されます。

デフォルト設定に戻すには、トップメニューバーで Delete all variants をクリックします。この操作により、すべてのブランディング バリアントが削除されます。そのため、事前に既存のバリアントをエクスポートすることをお勧めします。

パラメータの編集

各ブランディング パラメータは複数の方法で構成できます。

Genericタブ

Genericタブでは、すべてのブランディング テーマに適用されるブランディング バリアントの一般設定を編集できます。

一般ブランディングタブ
Title & favicon

Title & favicon で、次の項目を指定します。

  • タイトル: ブラウザのアドレスバーに表示されます。
  • favicon: ブラウザのアドレスバーに表示されます。選択 をクリックして、ファイルシステムからファイルを選択します。サポートされているfavicon形式はICOです。
Dark theme

ここで、このブランディング バリアントでダークテーマサポートを有効にできます。 有効にすると、Dark themeタブが利用可能になります。

Typography

Typography で、ブランディング バリアントのフォント設定を指定します。

基本フォントと見出しフォントのスタックを選択し、ナビゲータ フォントスタックのオプションを選択できます。これは、基本フォントと同じか、または見出しフォントと同じです。使用する既存のリモートフォントへのリンクを追加することもできます。

Cookie バナー で、Cookie の使用情報とともにバナーの設定を指定します。ここで無効にしない限り、ユーザーが 同意して続行します をクリックするまで、現在のテナントおよびサブテナントのすべてのユーザーに対してバナーが表示されます。

Cookie バナーを無効にすると、現在のテナントとすべてのサブテナントに対する Gainsight による製品エクスペリエンスの追跡も無効になります。

次のパラメータを指定できます。

  • タイトル: Cookie バナーのタイトル
  • テキスト: Cookieの使用とその使用例に関する一般的な説明を含む Cookie バナーのテキスト
  • プライバシーポリシーへのリンク: プライバシーポリシーを含むページへのリンク
  • プライバシーポリシーのバージョン: プライバシーポリシーのバージョン(日付など)。バージョンが変更された場合、既存のすべてのユーザーの同意は無効になります。

Light & Dark theme タブ

同じパラメータセットがLight themeとDark themeの両方で利用可能で、対応するタブで変更できます。 これらのパラメータに関する詳細は、Codexの ブランディング および カラーパレット セクションで確認できます。

ブランディング バリアントでDark themeを有効にすると、右側のドロワーにあるテーマスイッチャーを使用して、Light themeとDark themeを切り替えることができます。

ライトテーマブランディングタブ ダークテーマブランディングタブ
ロゴ

ロゴ セクションで、次の項目を指定します。

  • ブランドロゴ: アプリケーションの読み込み中に表示されます。選択をクリックして、ファイルシステムからファイルを選択します。サポートされている形式は PNG、SVG、JPGです。
  • ブランドロゴの高さ
  • ナビゲータロゴ: ナビゲータパネルの上部に表示されます。選択 をクリックして、ファイルシステムからファイルを選択します。サポートされている形式は PNG、SVG、JPGです。
  • ナビゲータロゴの高さ
ブランドカラー

ブランドカラー セクションでは、ブランディング バリアントで使用する色を指定します。

HEX、RGB、RGBA 値を指定して、次のパラメータを構成できます。

  • ブランドプライマリ
  • ブランドライト: 主に 2 色アイコンに使用されます。
  • ブランドダーク: 主に 2 色アイコンに使用されます。
  • ブランドプライマリ カラーに基づいて生成できる 8 つの色合いのセット。色合いを生成するには Reset shades をクリックします。色合いは、さまざまなアプリケーションのさまざまな場所で使用されます。
ステータスカラー

ステータスカラー セクションでは、さまざまなステータスを表示するために使用される色を指定します。

各ステータス(情報警告危険成功)に対して、3つの色(「デフォルト」、「light」、「dark」)を指定できます。

Generic

Generic セクションでは、一般的な場所で使用される色を指定します。

HEX、RGB、RGBA 値を指定して、次のパラメータを指定できます。

  • 本体の背景色
  • テキスト色
  • テキストを暗くした色
  • リンクカラー
  • リンクのホバーカラー

さらに、Button border-radiusも指定できます。

アクションバー

アクションバー セクションでは、アクションバーのパラメータを指定します。

HEX、RGB、RGBA 値を指定して、次のパラメータを指定できます。

  • 背景色
  • テキストカラー
  • アイコンカラー
  • ボタンカラー
  • ボタンのホバーカラー
メインヘッダー

メインヘッダー セクションでは、メインヘッダーのパラメータを指定します。

HEX、RGB、RGBA 値を指定して、次のパラメータを指定できます。

  • 背景色
  • テキストカラー
  • ボタンのホバーカラー

ナビゲータ セクションでは、ナビゲータのパラメータを指定します。

HEX、RGB、RGBA 値を指定して、次のパラメータを指定できます。

  • 背景色
  • テキストとボタンの色
  • セパレータの色
  • ヘッダーの背景色
  • タイトルの色
  • アクティブな背景色: ナビゲータ内の現在の項目の背景色
  • アクティブな区切り線色: ナビゲータ内の現在の項目の区切り線色
  • アクティブなテキスト色: ナビゲータ内の現在の項目のテキスト色
右ドロワー

右ドロワー セクションでは、右ドロワーのパラメータを指定します。

HEX、RGB、RGBA 値を指定することで、次のパラメータを指定できます。

  • 背景色
  • テキストの色
  • テキストを暗くした色
  • セパレータの色
  • リンク色
  • リンクのホバーカラー

Custom CSS

Custom CSSタブでは、独自のカスケーディング スタイルシートを提供することで、アプリケーションの外観をさらにカスタマイズできます。

これを使用して、Light/Dark theme タブで提供されるダイアログウィンドウでカバーされていない場所の色を変更できます。

カスタムCSSブランディングタブ

高度なブランディング

高度なブランディング タブでは、通常は他のタブによってバックグラウンドで入力されるブランディング JSON オブジェクトをテキストエディタで直接変更できます。これは、ブランディング エディタに含まれるフォームですぐにはサポートされない Web SDK が提供する ApplicationOptionsの一部を設定する場合に便利です。これらのオプションに関する詳細については、Codexで確認できます。

高度なブランディングタブ

ドメイン名

エンタープライズテナント(親テナント) の重要な機能は、カスタムドメイン名を使用して Things Cloud プラットフォームを運用できることです。これは、デフォルトの URL であるThings Cloud ではなく、*.iot.mycompany.com などの選択したホスト名を使用して、自社やお客様にサービスを提供するようにプラットフォームを構成できることを意味します。さらに、お持ちのドメインを使ってサブテナントを作成できるようになります。これらは、ホスト名として <subtenantName>.iot.mycompany.com を使用します。

必要条件

アプリケーション アクセス:

ドメイン管理機能は、エンタープライズテナント(親テナント)テナントにデフォルトで付属しており、管理アプリケーションで利用できます。

ドメイン管理機能は、「sslmanagement」マイクロサービスを登録することで有効になります。

ロールとアクセス権限:

  • 証明書をアップロードする:
    • 「インベントリ」権限タイプの読み取り、管理者権限
    • 「オプション管理」権限タイプの読み取り、管理者権限
    • 「アプリケーション管理」権限タイプの読み取り、管理者権限

テナント作成時には、上記の権限のサンプル構成として使用できるデフォルトのロールがあります。

  • テナントマネージャー: アプリケーション、テナントオプション、データ保持ルールのようなテナント全体の構成を管理できます。

前提条件

カスタム ドメインを使用するには、次の 3 つの前提条件があります。

  1. ドメインをアクティブにするには、ワイルドカードドメインをカバーする有効なライセンスが必要です。 ドメインのライセンスをインストールするには、製品サポートにお問い合わせください。
  2. IoTドメイン用の有効なワイルドカードSSL証明書を取得しています。例:*.iot.mycompany.com の証明書
  3. *.iot.mycompany.com へのすべてのリクエストが Things Cloud にルーティングされるようにする、ドメインの有効な DNS 構成があります(下記参照)。

SSL証明書の要件

エンタープライズテナント(親テナント)機能で使用する SSL 証明書は、次の基準を満たす必要があります。

  • 証明書が現在有効であり、有効期限が切れていないこと。具体的には、validFrom は過去のある時点を指し、validTo は将来のある時点を指します。
  • 証明書が確立された認証局(CA)から発行されていること。自己署名証明書は明示的にサポートされていません。
  • 証明書がドメイン *.iot.mycompany.com に対して発行されたワイルドカード証明書であること。ワイルドカード証明書の使用は、エンタープライズテナント(親テナント)から作成されたサブドメインにも使用されるため必須です。
  • チェーン内のすべての証明書が、X509 フォーマットで提供されます。
  • プライマリ証明書(チェーンの最初の証明書)の件名にあるコモンネーム(CN)には、ワイルドカードドメイン名の値が保持される(例: CN=*.iot.mycompany.com)。

Things Cloudは、ルート CA によって署名された単一の証明書と、1 つ以上の中間証明書を含むフルチェーン証明書をサポートします。

備考
カスタムドメイン名機能は、Things Cloud クラウドインストールまたはカスタムロードバランサーを使用しないオンプレミス インストールでのみ利用可能です。

PKCS #12 での SSL 証明書のパッケージ化

Things Cloud で SSL 証明書を使用するには、PKCS #12 ファイル形式を使用して、証明書とその秘密キーを 1 つのファイルでプラットフォームにアップロードする必要があります。

ほとんどの認証局は証明書と対応する秘密鍵を PEM ファイル形式で提供し、証明書チェーンと秘密鍵に 2 つの別々のテキストファイルを使用します。秘密鍵がパスワード/パスフレーズで保護されていないことを確認してください。

このような PEM ファイルは、OpenSSL を使用して #PKCS #12 に簡単に再パッケージ化できます。次の例では、OpenSSL を使って証明書チェーン(chain.cert)と対応する鍵(privkey.pem)を、Things Cloud で使用できる PKCS #12 キーストア ファイル(out_keystore.p12)に結合します。

openssl pkcs12 -export -out out_keystore.p12 -inkey privkey.pem -in cert.pem -certfile chain.pem

エンタープライズ ドメインの DNS 要件

カスタムドメインの DNS エントリは、すべてのリクエストが Things Cloud プラットフォームにルーティングされるように構成する必要があります。

この目的のために、ワイルドカード CNAME エントリを使用することを強く推奨します。CNAME は、NAME フィールドに証明書のワイルドカードドメインを含む必要があります。CNAME エントリの VALUE フィールドは Things Cloud のホスト名を指す必要があります。このターゲットホスト名は、現在のテナント URL を見れば簡単にわかります。テナント URL が http://mytenant.je1.thingscloud.ntt.com の場合、ターゲットホスト名は mytenant.je1.thingscloud.ntt.com です。また、競合する A エントリを必ず削除してください。

例:

エンタープライズ サブテナントに *.iot.mycompany.com を使用する場合、および mytenant.je1.thingscloud.ntt.com で Things Cloud を使用している場合、 次の CNAME エントリを DNS ゾーンに追加する必要があります。

NAME                   TYPE   VALUE
----------------------------------------------------
*.iot.mycompany.com.   CNAME  mytenant.je1.thingscloud.ntt.com.

次の理由により、代替 DNS 構成の使用はお勧めしません。

  • 「ワイルドカード A エントリ」は、value フィールドにプラットフォームの IP アドレスを取るため、ホスト名ではなく、指定された IP に基づいてすべてのリクエストをリダイレクトします。これは、将来 IoT プラットフォームの IP アドレスが変更された場合に大きな問題となります。
  • DNS ワイルドカードの代わりに「単数 A エントリまたは単数 CNAME エントリ」を使用すると、作成される各エンタープライズ ドメインに単一の DNS エントリが必要になります。これは非常にエラーになりやすく、常に DNS 設定を改ざんすることなくサブテナントを作成することを妨げます。

証明書のアップロードとドメインのアクティブ化

DNS 構成が完了し、所定の要件を満たす証明書が利用可能な場合、プラットフォームに簡単にアップロードできます。

エンタープライズテナント(親テナント) ページの ドメイン名 タブで、Upload certificate をクリックします。ファイルシステムから証明書を選択し、Upload をクリックします。

その後、名前を一度クリックしてドメインをアクティブ化できます。ドメインがアクティブ化されると、新しいドメイン名を使用してエンタープライズテナント(親テナント)にリダイレクトされます。アクティベーションに関する情報が記載されたメールも届きます。マネジメントテナント ドメイン名は静的であることに注意してください。例えば、ワイルドカード ドメインが「*.iot.mycompany.com」の場合、マネジメントテナント ドメインは「management.iot.mycompany.com」になります。

備考
アクティベーションが完了すると、Things Cloud ドメイン名を使用してテナントにアクセスできなくなります。代わりに、カスタムドメイン名を使用してください。

証明書の更新

証明書の有効期限が切れたら、新しい有効な証明書に更新する必要があります。証明書を更新するときは、証明書が次の要件を満たしていることを確認する必要があります。

  • 初めてアップロードしたときと同様に有効
  • 現時点で有効(validFromが過去の日時で validTo が未来の日時)
  • 現在有効な証明書と全く同じ共通名(ドメイン名)を持っている
備考
証明書を置き換えた後、新しい証明書がユーザー/ブラウザに反映されるまでに数分かかる場合があることに注意してください。

証明書の無効化

Things Cloud の古いドメインに戻りたい場合、証明書を無効化してください。

重要
注意して使用してください。顧客は、サブテナントにアクセスできなくなります。

トラブルシューティング

カスタムドメインを使用して Things Cloud にアクセスできない場合、次のチェックを実行して DNS 設定を確認することをお勧めします。

入力した DNS が正しいかどうかを確認する

次のコマンドを実行します。

host management.<your domain name>

次の結果が返されます。

management.<your domain name> is an alias for <instance domain name>
<instance domain name> has address <ip address>

API が応答しているかどうかを確認する

次のコマンドを実行します。

curl -v -u '<tenant ID>/<your user>:<your password>' --head http://management.<your domain name>/inventory/managedObjects

次の結果が返されます。

...
HTTP/1.1 200 OK
...
備考
DNS エントリを変更した後、新しい入力値が伝達されるまで最大 24 時間かかる場合があることに注意してください。