Skip to main content

パート5:オプションと詳細設定

このセクションでは、オプション機能のインストールと設定、および詳細設定について説明します。

コマンドライン インターフェイス

Incentives CLIは、モデル内のさまざまなアクションを完了するために使用できるコマンドラインインターフェイスです。

コマンドライン インターフェイスのインストール

Incentives コマンドラインインターフェイス(CLI)を使用する前に、CLIアプリケーションをインストールする必要があります。

  1. 新しいインストーラ(バージョン10.1.1.102.0以降で使用可能)を使用していない場合は、タイムアウト値を設定する前にアプリケーションをインストールする必要があります。

    1. リリースフォルダ内のICM-cli.exeインストールファイルをダブルクリックします。

    2. インストールウィザードの手順を完了します。

  2. IBM Cognos ICM CLI.exe.configファイルを開き、タイムアウト値を大きな値に設定します。

    たとえば、タイムアウト値を90000000に設定します。

  3. ファイルを保存します。

オンプレミスのICM向けSAML 2.0統合

Thèé ôón Prèémîïsèé (Incentives) æãdmîîn wëëb æãpplîîcæãtîîòòn sýüppòòrts SÅML 2.0 îîntëëgræãtîîòòn.

SAML 2.0統合の要件

IncentivesとSAML 2.0を統合する前に、次の設定を行う必要があります。

  • テナントサービスおよび管理者Webアプリケーションは、同じドメインとポートで実行する必要があります。つまり、同じサーバと同じホストポートで実行されるということです。

  • テナントサービス、REST API、管理者Webアプリケーションもすべて同じサーバーでホストすることをお勧めします。

  • Webアプリケーションのインストールが完了しました。これでIncentivesに正常にログインできます。

SAML 2.0設定

SAML 2.0統合用に、正しく設定する必要があるファイルがIncentivesに3つあります。

テナントサービス

???のセクションで概説されている手順に従って、default.jsonファイルを設定します。

REST API

RESTAPI.appSettings.configファイルで、TenantService値が9101に設定されていることを確認します。たとえば、次のキーを設定します。

<add key="TenantServices" value="http://yourServer:9101/services" />

???セクションの手順に従って、他のフィールドを設定します。

管理者Webアプリケーション

index.htmlファイルで、API_URLAUTH_URLを次のように設定します。

API_URL: 'http://yourServer:8080', 
AUTH_URL: 'http://yourServer:9100'

その他のフィールドはすべて同じです。管理者Webアプリケーションの設定についての詳細は、???を参照してください。

その他すべてのコンポーネント

このガイドの前述の手順に従ってください。変更は必要ありません。

OpenSSLを使用したSAML 2.0統合証明書の生成

Incentives管理者WebアプリケーションがSSO IdPと通信するには、SSO証明書を生成する必要があります。証明書により、SSO IdPは、管理者Webアプリケーションが認証されていることを確認できます。

  1. OPENSSLをインストールします。

  2. 次のような新しいディレクトリをコンピュータ上に作成します。C:/Users/Administrator/Desktop/SSOCerKey

  3. コマンドプロンプトを開き、次のコマンドを実行します。

    注記

    これを単一のコマンドとして入力します。改行はしません。ディレクトリを OpenSSL実行ファイルが見つかる場所に変更し、コマンドを選択したディレクトリに書き込むように変更し、オペレーティング・システムに基づいてコマンドを変更する必要がある場合があります。次のコマンドはWindows用です。

    openssl.exe req -x509 -newkey rsa:2048 -keyout
    C:/Users/Administrator/Desktop/SSOCerKey/key.pem -out 
    C:/Users/Administrator/Desktop/SSOCerKey/cert.pem -days 365
  4. 同じコマンドラインウィンドウで、カレントディレクトリを、key.pemおよびcert.pemファイルが生成された場所に変更します。

  5. 次のコマンドを実行して、key.pemファイルを復号化します。

    openssl rsa -in C:/Users/Administrator/Desktop/SSOCerKey/key.pem –out C:/Users/Administrator/Desktop/SSOCerKey/keyDecrypted.pem

  6. cert.pemファイルをコピーして貼り付け、名前をcert.cerに変更します。

    これにより、ブラウザでファイルを開き、証明書の有効期限を確認できます。この日付は後で必要になりますので、メモしてください。

  7. テキストエディタを使用して、復号化されたキーファイルのkeyDecrypted.pemを開きます。

SAML 2.0証明書のアップロード

SAML 2.0証明書を作成したら、REST APIを使用してPostgresにアップロードする必要があります。

SAML 2.0証明書をアップロードするには、Postmanなどのアプリケーションで次のREST API呼び出しを実行します。

POST yourServer/services/sso/certs/sp/new 

ボディ:

 
{ 
"cert_name": "aUniqueCertificateName", 
"certificate": "yourCertificateValueNoHeaders", 
"private_key": "yourDecryptedPrivateKeyWithHeaders", 
"certificate_expiry": "YYYY-MM-DD" 
}

注記

  • cert_name:データベースとモデル内で一意である限り、任意の値にできます。

  • certificatecert.pemファイルを開き、ヘッダーとフッターのBEGIN CERTIFICATEEND CERTIFICATEの間に行をコピーします。BEGIN CERTIFICATEEND CERTIFICATEの行は含めないでください。これらの行を貼り付け、各行の末尾に\nを追加し(以下の例を参照)、すべての改行文字を削除します。これにより、1行が1つの長い文字列になります。

  • private_keykeyDecrypted.pemファイルを開き、BEGIN/END RSA PRIVATE KEYヘッダーとフッターを含むすべてのコンテンツをコピーします。これらの行を貼り付け、END RSA PRIVATE KEYフッターの後を除く各行の末尾に\nを追加し(以下の例を参照)、すべての改行文字を削除します。これにより、1行が1つの長い文字列になります。

サンプルボディ

{"cert_name": "myNewCert",
  "certificate": "\nMIICsDCCAZgCCQCmhR6tkSBYeTANBgkqhkiG9w0BAQsFADAaMQswCQ\nYDVQQGEwJjYTELMAkGA1UECAwCb24
wHhcNMTgwODEzMTUzMzI4WhcN\nMTkwODEzMTUzMzI4WjAaMQswCQYDVQQGEwJjYTELMAkGA1UECAwCb24wggEiMA0GC\nSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCdKfslziLODmyreA/W7EgN0cIzy4oM1tcVd46+SjA\nyGy1TfYYRLWfgaogUPkB+RNPPyrTg7xhA1HQ4F
hi6OH8UUZiS/Kaj0+q0/dH\nfEc2MS/PyhN41E/XaZvLnzn5onTIlUs2DxLTINSDV57i7MrRNcoKD+t8p\n2eFttc0tn8bkjA57R5TU8g
f4fW+Wi2uaQhkIZAieZUnYybWIfnjQn\nTM1qNoKCzQ3ZQl3luaaVYn0IkzdwG1QNjmEIdcjKZytDPfnL\nSpkJSe0WurZV2IMBqCJaLd
jlzE6anQDLi53qlnLUHf1i26cI/SLOHezgVR54zu\ntK2MpftxUMdfMILuMUyLbAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAHp2Hw3N
1sNFcGK\nAjulxdHTE7xC2MP7kDBE8vaA98UkYWhj3ifRAOEc9E2+tZooow7nMSGxzPS7V9\n4KoF9s9RBhZCjOiynPfIOOhMEEWQzhdv
dp8nAU/yXOVLAaOxPu66TSX\n14yP5ui1SwBNUa2L/96/U4nqGdOT5367d4qF4TchWPwEURH5+m22kwja\njxpozvkx4lH4FaKW+GEsSRC
rPHpTLroATuKt28Plt\ncOcK8MFYQI7heEXCqQwkj6pYiAowhr4rAQDMhFDfhbBDS+XKoewxesG1QqHRt3QSeE6vqatt2hK7txtMx2XB
Obq8vlDaI6QNW9+Ca6e0seWrTvv4eE
",
  "private_key": "-----BEGIN RSA PRIVATE KEY-----
\nMIIEowIBAAKCAQEAnSn7Jc4izg5sq3gP1uxIDdHCM8uKDNbXFXeOvkowMhstU32G\nES1n4GqIFD5AfkTTz8q04O8YQNR0OBYYujh
/FFGYkvymo9PqtP3R3xHNjEvz8oTe\nNRP12mby585+aJ0yJVLNg8S0yDUg1ee4uzK0TXKCg/rfKdnhbbXNLZ/G5IwOe0eU\n1PIH+H1
vlotrmkIZCGQInmVJ2Mm1iH540J0zNajaCgs0N2UJd5bmmlWJ9CJM3cBt\nUDY5hCHXIymcrQz35y0qZCUntFrq2VdiDAagiWi3Y5cxO
mp0Ay4ud6pZy1B39Ytu\nnCP0izh3s4FUeeM7rStjKX7cVDHXzCC7jFMi2wIDAQABAoIBAFSFWECbnFIupbiN\naA9QoOt1rDhItSR0gd
VUp9qkcUjxHq4w6mHghmXFRQuF8w81Gqg8PoxdaTCsURg8\noe28JnOZ8jDSWRfwBuBxRGXv4BgcXMRHOm1XH7fl96o8ffTq3SX/YvEDX
6nwEImZ\nBdr+yMKB27j4uP175GUpCYAI1mDgLb4848QTTudjnzctCdhwN915UqgM4ILJdInF\nk4O5DENvqcEJijrg4bWS6yKTWJ5DLP
J0koozwDzkF18aTm800iW0zEeEAmj4VTvZ\n6TWkfNA0N2IlMF6Mxxktx1ggIoxJW9Zz2ET8XRx9t6ghjSABYb/KENHip3I4TLWx\n8XMX
4jkCgYEAzBHxcQJvSGBZaXJr98s3bcUgkJtDMOww26qg8caj9txRqjbKUIrn\nA6yRPVYcd+PyEJSiFU7hnSACAvuIQb+HmLsPihl+XV5P
z5QNmKSRez3WgobOtkN0\nKKbmQ3FANgoyt4Sxe05LCu5vxRKvpHzgtYW1uTLI2Lg9LG5iShWJO1UCgYEAxShc\nQ1L4r2CSUn0VagV867
TMCtcKTFoQjNnKKxic0rS6z5CjaKKkabSlalqvbUt+9ISq\n71rsRo/GdRqfsfn3+qKcpjk7UFMw0vgRzLgxZXDeYZaMewZSvR7tcrbPol
TPzLA4\nTfXYm1XbkwpkRsBki8R9Q6pvJG0lC1/Yd5KCxW8CgYAe9roDw7LO8I+giFQJjTQj\n271NM8HGMpBXRFSXWuSWGGfrw9R+1BSp
Yg3HmMFJD7Uy/tp5ETb6eFjVywSptT4F\n1pxNAAFEeYLypCxL9Ox+Hqvlsj67ORDu+iQGJ7Dugi2f2upzIzYPuo4LAQLVmn0e\nDeO87g
+7knj1vOn9A7eG4QKBgHqJ7FZX0oNGVYt5fP7JbGwfkhZGs3rjG5g/oP0K\nLiZz+AwcTMQzGlcs1Qb2WERpAP4/GvLroyD0KZgNNSZsQ+
l+ejiCJ9Bz9EubrYx9\nCw6OiVlENgoc0v4Co/iBkSnG5uTEvioOXFOnmHKaqdqjp5qLRIPzAWM1hym7p5Ih\n+K93AoGBAL3QcOfxno0c
TcmfcYWGzk+kC+CSDrgOxK3AiXDaFl3PkL/KHpyAp9Wb\ny7088irT9LkqjKYOP/YlDa6ArkHU6W+JUz+ekP+h087bChA58q2YseI+EtXx
yil4\nSyqlVwwvyxeDOTceMAaQ04w+HEc20ptuZeAoiAs/XXm4JfFhCMOD-----END RSA PRIVATE KEY-----
",
  "certificate_expiry": "2021-08-20"
}

管理者Webアプリケーション用SAML 2.0統合設定を作成する

SAML 2.0証明書をPostgresにアップロードした後、管理者WebアプリケーションのSAML 2.0統合構成を作成します。

管理者Webアプリケーション用SAML 2.0統合設定を作成するには、次のREST API呼び出しを実行します。

POST yourServer/services/ssoAdminweb/configs/1 

ボディ:

 
{
  "tenant_id": "1”,
  “tenant_name”: “single”,
  “sso_login_url”: “ssoIdpLoginUrl”,
  “sso_logout_url”: “ssoIdpLogoutUrl”,
  “sp_url”: “yourICM10serverdomain:adminWebUIport",
  "force_authn": false,
  "sign_get_request": "false",
  "ignore_signature": false,
  "allow_unencrypted_assertion": true,
  "certificate": [
    "spCertAsInStep2"
  ],
  "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
  "is_sso_enabled": "true",
  "sp_options": {
    "entity_id": " yourICM10serverdomain ",
    "assert_endpoint": "serverdomain:adminWebUIport/services/saml/acs",
    "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
  },
  "idp_options": {
    "sso_login_url": "ssoidploginurl",
    "sso_logout_url": "ssoidplogouturl",
    "certificates": [
      " yourIDPCert"
    ],
    "force_authn": false,
    "sign_get_request": true,
    "allow_unencrypted_assertion": true
  },
  "sp_cert_key_id": "1"
}

注記

  • sp_cert_key_id:上の例では、1つの証明書が追加されているため、1に設定されています。証明書が追加されると、IDは増加します。Postgresのsso_certificate_keyテーブルには、すべての証明書がリストされています。

  • certificatesSAML 2.0証明書のアップロードと同じ形式と手順を使用します。

  • idp_options.certificates:この証明書は、12行目にリストされている証明書(spCertAsInStep2)とは異なります。idp_options.certificatesはIDプロバイダ(IdP)から取得する必要があります。これは、OpenSSLを使用したSAML 2.0統合証明書の生成で生成されるOpenAM証明書ではありません。

サンプルボディ

{
  "tenant_id": "1",
  "ignore_signature": false,
  "sp_cert_key_id": "1",
  "certificate": [
"MIICsDCCAZgCCQCmhR6tkSBYeTANBgkqhkiG9w0BAQsFADAaMQswCQYDVQQGEwJj\nYTELMAkGA1UECAwCb24wHhcNMTgwODEzMTUz
MzI4WhcNMTkwODEzMTUzMzI4WjAa\nMQswCQYDVQQGEwJjYTELMAkGA1UECAwCb24wggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggE
KAoIBAQCdKfslziLODmyreA/W7EgN0cIzy4oM1tcVd46+SjAyGy1TfYYR\nLWfgaogUPkB+RNPPyrTg7xhA1HQ4Fhi6OH8UUZiS/Kaj
0+q0/dHfEc2MS/PyhN41\nE/XaZvLnzn5onTIlUs2DxLTINSDV57i7MrRNcoKD+t8p2eFttc0tn8bkjA57R5TU\n8gf4fW+Wi2uaQhk
IZAieZUnYybWIfnjQnTM1qNoKCzQ3ZQl3luaaVYn0IkzdwG1Q\nNjmEIdcjKZytDPfnLSpkJSe0WurZV2IMBqCJaLdjlzE6anQDLi53
qlnLUHf1i26c\nI/SLOHezgVR54zutK2MpftxUMdfMILuMUyLbAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAHp2Hw3N1sNFcGKAjul
xdHTE7xC2MP7kDBE8vaA98UkYWhj3ifRAOEc9E2+t\nZooow7nMSGxzPS7V94KoF9s9RBhZCjOiynPfIOOhMEEWQzhdvdp8nAU/yXOV
LAaO\nxPu66TSX14yP5ui1SwBNUa2L/96/U4nqGdOT5367d4qF4TchWPwEURH5+m22kwja\njxpozvkx4lH4FaKW+GEsSRCrPHpTLro
ATuKt28PltcOcK8MFYQI7heEXCqQwkj6p\nYiAowhr4rAQDMhFDfhbBDS+XKoewxesG1QqHRt3QSeE6vqatt2hK7txtMx2XBObq\n8v
lDaI6QNW9+Ca6e0seWrTvv4eE=
"
  ],
  "tenant_name": "single",
  "sso_login_url": "http://myServer:8085/myIDP/SSORedirect/metaAlias/idp",
  "sso_logout_url": "http://myServer:8085/myIDP/IDPSloRedirect/metaAlias/idp",
  "sp_url": "http://myServer",
  "force_authn": false,
  "sign_get_request": "false",
  "allow_unencrypted_assertion": true,
  "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
  "is_sso_enabled": "true",
  "sp_options": {
    "entity_id": "http://myServer",
    "assert_endpoint": "http://myServer:90/services/saml/acs",
    "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
  },
  "idp_options": {
    "sso_login_url": "http://myServer:8085/myIDP/SSORedirect/metaAlias/idp",
    "sso_logout_url": "http://myServer:8085/myIDP/IDPSloRedirect/metaAlias/idp",
    "certificates": [  "MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh\nb
Glmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w\nZW5TU08xDTALBgNVBAMTBHRlc3
QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1U
EBxMLU2FudGEgQ2xhcmExDDAK\nBgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
\nAQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+\nRkDsaN/igkAvV1cuXEgTL6R
lafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY\nJs0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATAN
BgkqhkiG9w0BAQQFAAOBgQB3Pw/U\nQzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAd
iDA\ncGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC\n/FfwWigmrW0Y0Q=="
    ],
    "force_authn": false,
    "sign_get_request": true,
    "allow_unencrypted_assertion": true
  }
}

オプション

秘密キーの使用をバイパスし、GETリクエストに署名しないようにするには、29行目のsign_get_requestの値をfalse"sign_get_request": falseに設定します。13行目ののGETリクエスト値(「false」)は無視することができます。

設定に関する注記

assertion_endpoint(フロントエンドURL)でHTTPSを使用する場合、default.json呼び出しが成功するには、テナントサービスの'/sso_redirect'ファイルに追加の設定が必要です。default.jsonで、次のように、UI.portを使用されている安全なポートに変更し、UI.protocolをHTTPSに変更します。

"UI": {
"port": "443",
"protocol": "https",
"path": {
"sso_redirect": "/sso_redirect"
},
"logindelay": {
"delay_min_ms": 50,
"delay_rand_ms": 100

重要

この手順は、管理者WebアプリケーションのSSO対応のログインループを防止するために必要です。

ユーザーをSAML 2.0設定に関連付ける

Incentives管理者WebアプリケーションのSAML 2.0統合構成を作成したら、REST APIを使用してユーザーをSAML 2.0構成に関連付けます。

ユーザーをSAML 2.0設定に関連付けるには、次のREST API呼び出しを使用します。

PATCH yourServer/services/admin/1/users/{userid}/sso_nameid 

SAML 2.0 設定に関連付けるuserIDを{userid}sso_nameidに置き換えます。

重要

sso_nameidは、モデルでユーザーの識別に使用するIDと一致する必要があります。

ボディ:

 
{"sso_nameid":"sso_nameid"}

SAML 2.0 IdPにアップロードするためのメタデータの取得

ユーザーをSAML 2.0構成に関連付けた後、REST APIを使用してIncentivesからsp.xmlファイル(サービスプロバイダメタデータ)を取得し、SAML 2.0 IdPにアップロードします。

  1. SAML 2.0 IdPにアップロードするメタデータを取得するには、次のREST API呼び出しを実行します。

    GET yourServer/services/ssoAdminweb/configs/1/metadata 
    
  2. このコマンドの戻り値をsp.xmlとして保存します。XMLファイルとして保存するには、コピーしてテキストエディタに貼り付けます。

  3. IdPにsp.xmlファイルをアップロードします。

仮想ホスト用Apacheサーバーの設定

SAML 2.0を統合する最後のステップは、仮想ホスティング用にApacheサーバーを構成することです。

  1. Apache HTTPサーバーのインストールディレクトリに移動し、confフォルダを開きます。

    例: C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf

  2. テキストエディタを使用してhttpd.confファイルを開きます。

  3. 行の先頭にある番号記号(#)を削除して、次の行のコメントを解除します。

    完了すると、行は次のようになります。

    LoadModule proxy_module modules/mod_proxy.so 
    LoadModule proxy_connect_module modules/mod_proxy_connect.so 
    LoadModule proxy_http_module modules/mod_proxy_http.so
  4. httpd.configファイルに次の行を追加し、設定に応じて行を変更します。

    <VirtualHost *:443>
         ServerAdmin “serveradmin“
         DocumentRoot "{ApacheInstallDirectory}\Apache2.4\htdocs"
         ServerName   “severname“
         ErrorLog "{ApacheInstallDirectory}\Apache2.4\error.log"
         CustomLog "{ApacheInstallDirectory}\Apache2.4\access_log.log" hgvhostAccesslog
    	 ProxyPass /services /{{your tenant service domain}}:{{Ts domain port}}/services
    	 ProxyPassReverse /services /{{your tenant service domain}}:{{Ts domain port}}/services
    </VirtualHost>
    
    

    注記

    • ServerAdminhttpd.confファイル(~187行目)にリスト

    • ServerName:完全修飾サーバー名(yourServer.ca.varicent.comなど)

    • 受け取り人Web(クラシック)アプリケーションのインストールセクション、特にステップ5の 「<Directory "C:/Program Files/Apache Software Foundation/Apache2.2.16/htdocs"></Directory>タグの間に、次の行を追加します。

      DirectoryIndex index.html
      FallbackResource /index.html
    • SSLまたはプロキシを使用して、<Directory "${SRVROOT}/htdocs">セクション(VirtualHost エントリ内)、httpd – SSL.confのVirtualHost経由でトラフィックをリダイレクトする場合は、 Directoryタグ内に次のエントリが存在することを確認します。

      <Directory "${SRVROOT}/htdocs">
          Options Indexes Includes FollowSymLinks MultiViews
          AllowOverride AuthConfig Limit FileInfo
          Require all granted
          DirectoryIndex index.html
          FallbackResource /index.html
       </Directory>
      
  5. Apacheサーバー、テナントサービス(node.js)、およびREST APIを再起動します。

  6. 管理者Webアプリケーションにアクセスします。

  7. ユーザーIDを入力し、[送信]をクリックします。

    IdPログインページにリダイレクトされます。

  8. IdPでログインします。認証が完了すると、管理者Webアプリケーションにリダイレクトされます。

SAML 2.0と複数サーバーの統合

インストールするサーバーが複数の場合、管理WebアプリケーションはSAML 2.0統合をサポートします。

SAML 2.0を複数のサーバーと統合するための要件

複数のサーバーとSAML 2.0をIncentives統合する前に、この設定を行う必要があります。

  • テナントサービスおよび管理者Webアプリケーションは、同じサーバー (サーバー1)にインストールする必要があります。

  • REST APIは、別のサーバー(サーバー2)にインストールできます。

  • Webアプリケーションのインストールが完了しました。これでIncentivesに正常にログインできます。

複数のサーバーを使用したSAML 2.0設定

複数サーバーを使用するSAML 2.0統合用に、正しく設定する必要があるファイルがIncentivesに3つあります。

テナントサービス

Varicent10 インストールと設定ガイドに従ってください。

次の方法でdefault.jsonファイルを設定します。

  • UI.hosts.default値がサーバー2を指すように変更します。

  • UI.port値を管理者WebアプリケーションのUIがホストされている場所(Apache HTTP Serverのポート)に変更します。

  • 必要に応じてUI.protocolを変更します。

    例:

    "UI" : {
    			"hosts": {
    				"default":"yourServer2.yourDomain.com"
    		},
    			"port": 80,
    			"protocol": "http",
    		"path": {
    				"sso_redirect": "/sso_redirect"
    		},
    			"logindelay": {
    				"delay_min_ms": 50,
    				"delay_rand_ms": 100
    		}
    	},
    

REST API

???セクションの手順に従って設定します。

管理者Webアプリケーション

???で管理者Webアプリケーションを設定します。

Apacheのhttpd.confファイルを開き、次の行をListen 80など、Listen x行の下に追加します。

Listen 80

<VirtualHost *:80>
	ServerAdmin  admin@yourServer
	DocumentRoot "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs"
	ServerName  Server2.ibm.com:80
	ErrorLog  "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs\hgvhosterror.log"
	CustomLog  "C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs\hgvhousterror-access.log" hgvhostAccesslog
	ProxyPass /services http://Server1.youDomain.com:9100/services
	ProxyPassReverse /services http:// Server1. youDomain.com:9100/services
	ProxyPass  /api http://Server1.youDomain.com:8080/api
	ProxyPassReverse /api http:// Server1.youDomain.com:8080/api
</VirtualHost>

注記

DocumentRoot/ErrorLog/CustomLog – Apacheのインストール場所へのパスを更新します。この場所が存在することを確認します。

ProxyPass/ProxyPassReverese – このエントリは、REST APIとテナントサービスがホストされている server1を指します。

Apache HTTP Serverインストール ディレクトリのhtdocsフォルダ内のindex.htmlファイルで、サーバー2(管理者Web UIがインストールされているサーバー)を指すAPI_URL値を編集します。Apache HTTPサーバーが動作しているポートを含めます。

index.htmlファイルで、AUTH_URLを編集して、サーバー 2 (管理者Web UIがインストールされているサーバー)を指定します。Apache HTTPサーバーが動作しているポートを含めます。

例:

<script>
		window.ICM_CONFIG = {
			API_URL: 'http://saltv.canlab.ibm.com:90',
			AUTH_URL: 'http://saltv.canlab.ibm.com:90',

index.htmlファイルを保存した後、Apache HTTPサーバーを再起動します。

複数のサーバーを使用した管理者Webアプリケーション用SAML 2.0統合設定の作成

SAML 2.0証明書をPostgresにアップロードした後、管理者Webアプリケーションと複数サーバーのSAML 2.0統合構成を作成します。

次の手順を実行する前に、証明書がすでに存在しPOST yourServer/services/sso/certs/sp/new呼び出しによりアップロードされていることを確認します。

次のREST API呼び出しを使用して、管理者Webアプリケーション用のSAML 2.0統合設定を作成します。

POST yourServer/services/ssoAdminweb/configs/1

ボディ

{
  "tenant_id": "1”,
  “tenant_name”: “single”,
  “sso_login_url”: “ssoIdpLoginUrl”,
  “sso_logout_url”: “ssoIdpLogoutUrl”,
  “sp_url”: “yourICM10server2domain:adminWebUIport",
  "force_authn": false,
  "sign_get_request": "false",
  "ignore_signature": false,
  "allow_unencrypted_assertion": true,
  "certificate": [
    "spCertAsInStep2"
  ],
  "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
  "is_sso_enabled": "true",
  "sp_options": {
    "entity_id": " yourICM10serverdomain ",
    "assert_endpoint": "server2domain:adminWebUIport/services/saml/acs",
    "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
  },
  "idp_options": {
    "sso_login_url": "ssoidploginurl",
    "sso_logout_url": "ssoidplogouturl",
    "certificates": [
      " yourIDPCert"
    ],
    "force_authn": false,
    "sign_get_request": true,
    "allow_unencrypted_assertion": true
  },
  "sp_cert_key_id": "1"
}

名前

説明

sp_url

これは、server2を参照するように更新する必要があります。非標準ポート(ポート80以外)を使用している場合は、ポートがyourICM10server2domain:adminWebUIportに指定されていることを確認します。

assert_endpoint

これは、server2を参照するように更新する必要があります。非標準ポート(ポート80以外)を使用している場合は、ポートが server2domain:adminWebUIport/services/saml/acsに指定されていることを確認します。

sp_cert_key_id

上の例では、1つの証明書が追加されているため、1に設定されています。証明書が追加されると、IDは増加します。Postgresのsso_certificate_keyテーブルには、すべての証明書がリストされています。

certificates

OpenSSLを使用した SAML 2.0統合証明書の生成と同じ形式/指示を使用します。

idp_options.certificates

この証明書は、12行目にリストされている証明書(spCertAsInStep2)とは異なります。idp_options.certificatesはIDプロバイダ(IdP)から取得する必要があります。これは、OpenSSLを使用した SAML 2.0統合証明書の生成で生成されるOpenAM証明書ではありません。

サンプルボディ

{
	  "tenant_id": "1",
  "ignore_signature": false,
  "sp_cert_key_id": "1",
  "certificate": [
"MIICsDCCAZgCCQCmhR6tkSBYeTANBgkqhkiG9w0BAQsFADAaMQswCQYDVQQGEwJj\nYTELMAkGA1UECAwCb24wHhcNMTgwODEz
MTUzMzI4WhcNMTkwODEzMTUzMzI4WjAa\nMQswCQYDVQQGEwJjYTELMAkGA1UECAwCb24wggEiMA0GCSqGSIb3DQEBAQUAA4IB\
nDwAwggEKAoIBAQCdKfslziLODmyreA/W7EgN0cIzy4oM1tcVd46+SjAyGy1TfYYR\nLWfgaogUPkB+RNPPyrTg7xhA1HQ4Fhi6
OH8UUZiS/Kaj0+q0/dHfEc2MS/PyhN41\nE/XaZvLnzn5onTIlUs2DxLTINSDV57i7MrRNcoKD+t8p2eFttc0tn8bkjA57R5TU\
n8gf4fW+Wi2uaQhkIZAieZUnYybWIfnjQnTM1qNoKCzQ3ZQl3luaaVYn0IkzdwG1Q\nNjmEIdcjKZytDPfnLSpkJSe0WurZV2IM
BqCJaLdjlzE6anQDLi53qlnLUHf1i26c\nI/SLOHezgVR54zutK2MpftxUMdfMILuMUyLbAgMBAAEwDQYJKoZIhvcNAQELBQAD\
nggEBAHp2Hw3N1sNFcGKAjulxdHTE7xC2MP7kDBE8vaA98UkYWhj3ifRAOEc9E2+t\nZooow7nMSGxzPS7V94KoF9s9RBhZCjOi
ynPfIOOhMEEWQzhdvdp8nAU/yXOVLAaO\nxPu66TSX14yP5ui1SwBNUa2L/96/U4nqGdOT5367d4qF4TchWPwEURH5+m22kwja\
njxpozvkx4lH4FaKW+GEsSRCrPHpTLroATuKt28PltcOcK8MFYQI7heEXCqQwkj6p\nYiAowhr4rAQDMhFDfhbBDS+XKoewxesG
1QqHRt3QSeE6vqatt2hK7txtMx2XBObq\n8vlDaI6QNW9+Ca6e0seWrTvv4eE=
"
  ],
  "tenant_name": "single",
  "sso_login_url": "http://myServer:8085/myIDP/SSORedirect/metaAlias/idp",
  "sso_logout_url": "http://myServer:8085/myIDP/IDPSloRedirect/metaAlias/idp",
  "sp_url": "http://myServer:90",
  "force_authn": false,
  "sign_get_request": "false",
  "allow_unencrypted_assertion": true,
  "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
  "is_sso_enabled": "true",
  "sp_options": {
    "entity_id": "http://myServer",
    "assert_endpoint": "http://myServer:90/services/saml/acs",
    "nameid_format": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
  },
  "idp_options": {
    "sso_login_url": "http://myServer:8085/myIDP/SSORedirect/metaAlias/idp",
    "sso_logout_url": "http://myServer:8085/myIDP/IDPSloRedirect/metaAlias/idp",
    "certificates": [  "MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh\
nbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w\nZW5TU08xDTALBgNVBAMTBH
Rlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUM
BIGA1UEBxMLU2FudGEgQ2xhcmExDDAK\nBgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkq
hkiG9w0B\nAQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of+\nRkDsaN/igkAvV
1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY\nJs0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6Z
yL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U\nQzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT
4OFcfu2/PeYoAdiDA\ncGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC\n/Ffw
WigmrW0Y0Q=="
    ],
    "force_authn": false,
    "sign_get_request": true,
    "allow_unencrypted_assertion": true
  }
}

オプション

秘密キーの使用をバイパスし、GETリクエストに署名しないようにするには、29行目のsign_get_requestの値をfalse"sign_get_request": falseに設定します。13行目のGETリクエスト値(「false」)は無視できます。

ユーザーをSAML 2.0設定に関連付ける

Incentives管理者WebアプリケーションのSAML 2.0統合構成を作成したら、REST APIを使用してユーザーをSAML 2.0構成に関連付けます。

ユーザーをSAML 2.0設定に関連付けるには、次のREST API呼び出しを使用します。

PATCH yourServer/services/admin/1/users/{userid}/sso_nameid 

SAML 2.0 設定に関連付けるuserIDを{userid}sso_nameidに置き換えます。

重要

sso_nameidは、モデルでユーザーの識別に使用するIDと一致する必要があります。

ボディ:

 
{"sso_nameid":"sso_nameid"}

SAML 2.0 IdPにアップロードするためのメタデータの取得

ユーザーをSAML 2.0構成に関連付けた後、REST APIを使用してIncentivesからsp.xmlファイル(サービスプロバイダメタデータ)を取得し、SAML 2.0 IdPにアップロードします。

  1. SAML 2.0 IdPにアップロードするメタデータを取得するには、次のREST API呼び出しを実行します。

    GET yourServer/services/ssoAdminweb/configs/1/metadata 
    
  2. このコマンドの戻り値をsp.xmlとして保存します。XMLファイルとして保存するには、コピーしてテキストエディタに貼り付けます。

  3. IdPにsp.xmlファイルをアップロードします。

仮想ホスト用Apacheサーバーの設定

SAML 2.0を統合する最後のステップは、仮想ホスティング用にApacheサーバーを構成することです。

  1. Apache HTTPサーバーのインストールディレクトリに移動し、confフォルダを開きます。

    例: C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf

  2. テキストエディタを使用してhttpd.confファイルを開きます。

  3. 行の先頭にある番号記号(#)を削除して、次の行のコメントを解除します。

    完了すると、行は次のようになります。

    LoadModule proxy_module modules/mod_proxy.so 
    LoadModule proxy_connect_module modules/mod_proxy_connect.so 
    LoadModule proxy_http_module modules/mod_proxy_http.so
  4. httpd.configファイルに次の行を追加し、設定に応じて行を変更します。

    <VirtualHost *:443>
         ServerAdmin “serveradmin“
         DocumentRoot "{ApacheInstallDirectory}\Apache2.4\htdocs"
         ServerName   “severname“
         ErrorLog "{ApacheInstallDirectory}\Apache2.4\error.log"
         CustomLog "{ApacheInstallDirectory}\Apache2.4\access_log.log" hgvhostAccesslog
    	 ProxyPass /services /{{your tenant service domain}}:{{Ts domain port}}/services
    	 ProxyPassReverse /services /{{your tenant service domain}}:{{Ts domain port}}/services
    </VirtualHost>
    
    

    注記

    • ServerAdminhttpd.confファイル(~187行目)にリスト

    • ServerName:完全修飾サーバー名(yourServer.ca.varicent.comなど)

    • 受け取り人Web(クラシック)アプリケーションのインストールセクション、特にステップ5の 「<Directory "C:/Program Files/Apache Software Foundation/Apache2.2.16/htdocs"></Directory>タグの間に、次の行を追加します。

      DirectoryIndex index.html
      FallbackResource /index.html
    • SSLまたはプロキシを使用して、<Directory "${SRVROOT}/htdocs">セクション(VirtualHost エントリ内)、httpd – SSL.confのVirtualHost経由でトラフィックをリダイレクトする場合は、 Directoryタグ内に次のエントリが存在することを確認します。

      <Directory "${SRVROOT}/htdocs">
          Options Indexes Includes FollowSymLinks MultiViews
          AllowOverride AuthConfig Limit FileInfo
          Require all granted
          DirectoryIndex index.html
          FallbackResource /index.html
       </Directory>
      
  5. Apacheサーバー、テナントサービス(node.js)、およびREST APIを再起動します。

  6. 管理者Webアプリケーションにアクセスします。

  7. ユーザーIDを入力し、[送信]をクリックします。

    IdPログインページにリダイレクトされます。

  8. IdPでログインします。認証が完了すると、管理者Webアプリケーションにリダイレクトされます。

Salesforce.comからのWebクライアントへのアクセス

Salesforce内のタブからIncentivesWebクライアントにアクセスできるようにします。

作成したモデルが必要です。モデルでは、Salesforce.comにログインしているユーザーと同じ電子メールアドレスを持つ受け取り人を作成する必要があります。その受け取り人をワークフロー・グループに追加し、Webアクセスを有効にする必要があります。Webクライアントも展開する必要があります。

  1. 管理者権限を持つユーザーIDでSalesforce.comにログインします。

  2. ユーザー名をクリックしてドロップダウンメニューにアクセスし、[設定]を選択します。

  3. [アプリケーションの設定]セクションで、[作成][タブ]をクリックします。

  4. [Webタブ]セクションで[新規]をクリックします。

    これにより、Salesforce.comウィンドウ内にVaricentコンテンツを表示するカスタムタブを作成できます。

  5. 次のいずれかのオプションを選択できます。

    オプション

    説明

    全ページ幅

    全ページ幅を使用して、VaricentWebクライアントを表示します。

    Salesforceサイドバー付き2列

    このオプションは、Salesforce.comのサイドバーを表示します。

  6. 選択が完了したら、[次へ]をクリックします。

  7. 次の手順を実行して、Varicentタブのコンテンツと表示プロパティを定義します。

    1. [タブコンテンツの定義]セクションで、[タブタイプ]メニューから[URL]を選択します。

    2. [タブラベル]フィールドに、ラベルに表示するテキストを入力します。

    3. [タブ名]フィールドで、タブに一意の名前を付けます。これは、タブラベルと同じにすることができます。

    4. スタイル画面から[タブスタイル]を選択して、タブの色を選択します。

    5. [コンテンツフレームの高さ]フィールドでは、Varicentコンテンツフレームの高さ(ピクセル単位)を指定できます。

      800ピクセル以上のフレームの高さを指定します。

  8. [URL]フィールドに、次の文字列を貼り付け、必要に応じてパラメーターを置き換えます。

    http://localhost:8080/payeeweb/sforce_composite_login?SessionId={!API.Session_ID}&ServerURL={!API.Partner_Server_URL_540}&Tenant=TENANTNAME&Model=MODELNAME

    パラメーター

    説明

    http://localhost:8080/payeeweb

    これは、WebアプリケーションのURLです。

    例:https://tenant-model-trunk.spm.ibmcloud.com/payeeweb

    TENANTNAME

    これはテナントの名前です。

    Varicentクラウドで使用している場合は、テナント名について IBMのサポートにお問い合わせください。

    MODELNAME

    これはモデルの名前です。

  9. エンコードをUnicode(UTF-8)に設定します。

  10. [保存]をクリックします。

これで、新しく作成したタブからVaricentWebクライアントにアクセスできるようになります。このタブをクリックすると、SSOを使用するSalesforce.comユーザーと同じ電子メールアドレスを持つユーザーとして、Webクライアントにログインされます。

セールスポータルでのWebフォームの使用(受け取り人Web V2)

受け取り人Web V2でWebフォームを使用する場合は、まず受け取り人Webクラシック(V1)でホストする必要があります。これにより、iFrameで受け取り人Web V2でフォームをレンダリングできます。

  1. 受け取り人Webクラシックのインストールと展開をまだ完了していない場合は、次の手順を完了する必要があります:受け取り人Web(クラシック)アプリケーションのインストール

  2. newpayeeweb.propertiesファイルに次の行を追加します。

    ヒント

    デフォルトでは、このファイルのディレクトリはTomcat/Webapps/Payeeweb/Web-INF/newnewpayeeweb.propertiesです。

    newpayeeweb.basePath=/payeewebv2
  3. 受け取り人Web V1 と受け取り人Web V2 の間にプロキシを作成するには:

    1. Apache.HTTPD.CONFで、次の行からハッシュ記号を削除して、コメントを解除します。

      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_connect_module modules/mod_proxy_connect.so
      LoadModule proxy_http_module modules/mod_proxy_http.so
    2. エイリアスpayeewebv2設定の前にプロキシの再マップを追加します。例として、次のようになります。

      ProxyPass /payeewebv2/webforms http://localhost:8085/payeeweb/webforms
      ProxyPassReverse /payeewebv2/webforms http://localhost:8085/payeeweb/webforms
      
      ProxyPass /payeeweb http://localhost:8085/payeeweb
      ProxyPassReverse /payeeweb http://localhost:8085/payeeweb

      http://localhost:8085は、受け取り人Webクラシック(V1)がホストされているTomcatのポートです。

      payeewebはICM .warのファイル名であり、変更できません。また、受け取り人Webクラシック(V1)用に展開されたTomcatのWebアプリの名前でもあります。

      設定ファイルとの一貫性を保ち、Tomcatの受け取り人Webクラシックの展開と一致するように、localhostをサーバー名またはIPに変更できます。

      httpsが必要な場合は、TomcatのポートをHTTPSプロトコルに展開する必要があります。URLはhttps://localhost:8085/payeewebになります。

ロードバランサーの設定

受け取り人Web V2がロードバランサーの配下でホストされ、https://loadbalancerURL/Payeewebv2を介してアクセスされる場合、受け取り人Webクラシック(V1)のURLもロードバランサーの配下でアクセスできなければなりません。

ロードバランサーでUR https://loadbalancerURL/payeewebにアクセスできることを確認します。アクセスできない場合、そのURLへのAPI呼び出しはロードバランサーでのリダイレクトに失敗します。

https://LoadBalancerURL/payeewebからhttp://Servername:8085/payeewebにトラフィックをルーティングする新しい役割を設定することをお勧めします。

Salesforceモバイルでの[Varicent]タブの設定

Salesforceモバイルアプリの[Varicent]タブにアクセスするには、Visualforceページを作成し、Sales Portalへのリンクを使用して設定する必要があります。その後、[Visualforce]タブを作成することで、ユーザーがSalesforceモバイルアプリで見つけることができます。

デフォルトでは、表示はデスクトップ上ではSales Portalと同じですが、ナビゲーションバーと特定のレポートへのリンクを無効にするように選択することもできます。

Salesforceモバイルとは何が違うのでしょうか?

SalesforceモバイルのIncentivesWebタブの動作が、デスクトップでの操作と比較して相違がある、ある程度または制限されている場合があります。この統合を設定する際には、この点に留意してください。

  • ファイルをダウンロードできません。これには、メッセージ・センターからファイルをダウンロードしたり、レポートをPDF、またはMicrosoft Excelにエクスポートしたりすることが含まれます。

  • モバイルデバイスによっては、一部のフォントが正しく表示されない場合があります。これは、オペレーティング・システムによって異なります。例えば、iOSはTahomaをサポートしていません。

    iOS対応のフォントのリストについては、次を参照してください:https://developer.apple.com/fonts/system-fonts/

    ユーザーのデバイスで特定のフォントを使用できない場合、代わりにInterが使用されます。これは、管理アプリケーションで使用されているものと同じフォントです。

  • ユーザーは、Webタブにアクセスするたびに認証されます。これにより、デスクトップ・アプリケーションに比べてレポートの読み込みに時間がかかるように思われます。

  • iOSデバイスでは、データ・グリッドの[ヘッダーを固定]オプションは機能しません。

  • レポートの余白が制限されている場合、一部のレポートの内容はカットオフ値として表示されます。

  • パフォーマンスは、モバイルデバイスとOSによって異なります。通常、新しいデバイスは古いデバイスよりもIncentivesレポートの読み込みが速くなります。大量のデータを含むレポートでは、読み込み時間の違いがより顕著になります。

[Visualforce]ページの作成

  1. Salesforceにログインします。

  2. ユーザー名をクリックし、[設定]をクリックします。

  3. サイドバーの[開発]セクションで、[Visualforceページ]をクリックします。

  4. [新規]をクリックします。

  5. ラベルとページ名を入力します。

  6. [Lightning Experience、Lightning Communities、およびモバイルアプリで使用可能]チェックボックスを選択します。

  7. [Visualforceマークアップ]セクションで、デフォルトのコードを次のコードに置き換えます。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeeweb/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}&Tenant=rti&Model=rtiprod" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>                                       
    • https://rti.spm.varicent.com/payeeweb/を会社の受け取り人WebインスタンスのURLに置き換えて、apex:iframe srcを更新します。

    • {!$Api.Partner_Server_URL_210}を設定するVisualForceページのURLに置き換えて、serverURLを更新します。

    • rtiをテナント名Incentivesに置き換えて、Tenantを更新します。

    • rtiprodをモデル名Incentivesに置き換えて、Modelを更新します。

  8. [保存]をクリックします。

ユーザーが、デスクトップでアクセスできるレポートと同じレポートを表示できるようにするには、VisualForceタブの作成に進みます。

ユーザーが特定のレポートのみを表示できるようにするには、Varicent Webタブへのダイレクトリンクの作成の手順に従ってください。

Varicent Webタブへのダイレクトリンクの作成

ユーザーがデスクトップに表示されるホームページにアクセスする代わりに、特定のWebタブへのリンクを作成することで、ダイレクトリンクによりナビゲーションバーは無効になり、指定したレポートにのみアクセスできるようにします。

この設定では、ユーザーはレポートに関する照会を行うこともできません。

ダイレクトリンクを作成するには、Model名の後に「[Visualforce]ページの作成」のステップ7のコードを追加します。

コードは、Sales Portalを使用しているか、新しいバージョンのPayee Web Classicを使用しているか、リンクしているWebタブのタイプによって、若干異なります。

リンクするタブのIDまたは番号は、Sales Portalのレポートに移動し、 payeewebまたはpayeewebv2に続くURLの部分をチェックすることで見つけることができます。[ダイレクトリンク]Webタブを設定する場合は、ポータル・アクセスから直接IDを取得できます。

ID_in_URL.png
  1. Payee Web ClassicのWebフォームタブの場合、このコード「&nextPath=webforms/index.html?tabId=#」を、リンクするWebフォームのタブIDを「#」に置き換えて追加します。

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}&Tenant=rti&Model=rtiprod&nextPath=webforms/index.html?tabId=1" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>
  2. Payee Web Classicの[プレゼンター・レポート]タブの場合、[Visualforce]ページの作成のステップ7で、次のコードをModel名の後に追加します:&nextPath=reporting/index.html?tabId=1

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL=https%4B%3H%3Hd.na15.visual.force.com%3Hservices%3HSoap%3Hv%3H21.1%3H00EB000000018FJ&Tenant=rti&Model=rtiprod&nextPath=reporting/index.html?tabId=1" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999' />    
        </apex:pageblock>
    </apex:page>
  3. Sales PortalのWebフォームタブの場合、[Visualforce]ページの作成のステップ7で、###をリンクするタブの番号に置き換えて、Model名の後に次のコードを追加します:nextPathname=WebForm/###

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}&Tenant=rti&Model=rtiprod&nextPathname=WebForm/492" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>
  4. Sales Portalの[プレゼンター・レポート]タブの場合、リンクするタブの数を「###」に置き換えて、このコード「nextPathname=PresenterReport/###」を追加します。

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}https%4B%3H%3Hd.na15.visual.force.com%3Hservices%3HSoap%3Hv%3H21.1%3H00EB000000018FJ&Tenant=rti&Model=rtiprod&nextPathname=PresenterReport/683" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>
  5. Sales Portalにおいて、Data Discovery DashboardsおよびData Discovery InfographicsWebタブの場合、リンクするタブの数を「###」に置き換えて、このコード「nextPathname=DDE/###」を追加します。

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}&Tenant=rti&Model=rtiprod&nextPathname=DDE/456" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>
  6. Sales Portalにおいて、Rapid ReportsWebタブの場合は、リンクするタブの数を「###」に置き換えて、このコード「nextPathname=RapidReport/###」を追加します。

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}&Tenant=rti&Model=rtiprod&nextPathname=RapidReport/123" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>
  7. Sales Portal[ダイレクトリンク]Webタブ(プレゼンター・レポート、Rapid ReportsData Discovery Dashboards)の場合、リンクするタブの数を入れてこのコード「nextPathname=DirectLink/###」を追加します。

    ヒント

    ダイレクトリンクの生成の詳細については、「Salesforceモバイル」のダイレクトリンクWebタブの作成を参照してください。

    例として、コードは次のようになります。

    <apex:page showHeader="false" standardStylesheets="false" sidebar="false" applyHtmlTag="false" applyBodyTag="false" docType="html-5.0" >    
        <apex:pageblock >        
            <apex:iframe src="https://rti.spm.varicent.com/payeewebv2/sforce_composite_login?SessionId={!$Api.Session_ID}&ServerURL={!$Api.Partner_Server_URL_210}&Tenant=rti&Model=rtiprod&nextPathname=DirectLink/416" scrolling="true" id="theIframe" style='position:absolute; top:0px; left:0px; width:100%; height:100%; z-index:999'/>    
        </apex:pageblock>
    </apex:page>

「Salesforceモバイル」のダイレクトリンクWebタブの作成

モバイルデバイスで表示するWebタブをデザインする場合は、[ダイレクトリンク]のWebタブを使用してそのレポートを共有することができます。これは、デフォルトではデスクトップのWebアプリケーションで表示されないことを意味します。ユーザーは、URLを使用するか、Salesforceモバイルタブからアクセスする必要があります。

  1. ポータル・アクセス[Webタブ]タブで、[Webタブの追加]アイコンをクリックします。

  2. [名前]フィールドに、Webタブの名前を入力します。ハイフンやアポストロフィなどの特殊文字を使用できます。

  3. [タイプ]メニューから[ダイレクトリンク]を選択します。

  4. [ダイレクトリンクタイプ]メニューから、[データ・ディスカバリ・ダッシュボード]または[インフォグラフィック][プレゼンター・レポート]、または[ラピッド・レポート]を選択します。

  5. [オブジェクト]ドロップダウン・リストから、Webタブに割り当てるオブジェクトを選択します。

  6. [Webタブの追加]をクリックします。

  7. 作成したWebタブの行にマウスオーバーし、[URLをコピー]ボタンをクリックします。

  8. URLをテキストエディタに貼り付け、ID番号をコピーします。

    たとえば、URLがhttp://rti.spm.varicent.com/payeewebv2/DirectLink/4096の場合、SalesforceでURLをコピー4096してコードに追加する必要があります。

VisualForceタブの作成

  1. ユーザー名をクリックし、[設定]をクリックします。

  2. サイドバーから[タブを作成]に移動します。

  3. [Visualforceタブ]セクションで、[新規]をクリックします。

  4. ラベルとタブ名を入力します。

  5. 作成したVisualForceページを選択します。

  6. 希望するタブスタイルを選択します。

  7. アクセスを許可するプロファイルに基づいて、タブの可視性を追加します。

  8. [保存]をクリックします。

  9. [検索]を使用して「Salesforceナビゲーション」を検索し、[Salesforce管理]メニューから選択します。

  10. 作成したタブを見つけ、それを[使用可能]から[保存]に移動します。

  11. [保存]をクリックします。

SalesforceモバイルでのVaricentの表示

VisualForceページとタブが正常に設定されたか確認するには、SalesforceモバイルアプリでIncentivesレポートを探します。

  1. モバイルデバイスで、iOSアプリストアまたはGooglePlayストアからSalesforceアプリをダウンロードします。

  2. Salesforceアプリにログインします。

    重要

    アカウントは、SSO対応Sales Portalユーザーと一致する電子メールアドレスを持つSalesforceIDである必要があります。そのユーザーは、VisualForceページの作成時に指定したモデルに対して有効である必要があります。

  3. メニューから、追加したVisualForceタブの名前を見つけます。

タブの名前をクリックすると、Incentivesにアクセスできます。デスクトップに表示されるとおりSales Portalに表示されます。ただし、これを変更してナビゲーションを非表示にし、ユーザーが特定のWebタブのみにアクセスできるようにすることができます。「Varicent Webタブへのダイレクトリンクの作成」を参照してください。

受け取り人Web(クラシック)で安全なHTTPS接続用のSSLを設定する

安全なHTTPS接続のために、Payee Web ClassicにSSLを設定できます。この設定では、HTTPSを使用してテナントサービスを設定する必要があります。また、キーストアと証明書を使用して作業し、Apache httpdサーバーを使用して複数の仮想ホストを作成する必要があります。

REST APIおよびテナントサービスの設定

開始する前に、defaults.jsonファイルとREST API.exe.configファイルのすべてのフィールドに一致するホスト値があることを確認してください。

defaults.jsonでは、一致するホスト値が必要なフィールドは次のとおりです。

  • server > cookieDomainUrl

  • server > globalDomains

  • RESTAPI > host

  • RESTAPI host > hosts > default

REST API.exe.configでは、一致するホスト値が必要なフィールドは次のとおりです。

  • SchedulerService

  • TenantServices

  • Host

  • ServiceAddress

  1. defaults.jsonで、ポートとプロトコルが正しいApache TomcatサーバーのHTTPSおよびSSL設定に追加されるよう、Payeewebセクションを編集します。

    次のようになります。

    "Payeeweb" : 
        {            
            "port": 8443,
            "protocol": "https",
        }
  2. Apache 2.4 htdocsをインストールした場所に移動し、index.htmlを開きます。API_URLAUTH_URLを編集して、 defaults.jsonREST API.exe.configのホスト値と一致させます。

    次のようになります。

    API_URL: 'http://yourServer.varicent.com:8080',
    AUTH_URL: 'http://yourServer.varicent.com:9100',

Apache HTTPサーバーの設定

  1. Apache Webサーバーをまだインストールしていない場合は、Apache Web Serverのインストールの手順に従います。

    1. C:\Program Files\Apache Software Foundation\Apache2.2.16\confに移動します。

    2. httpd.confファイルを開き、番号記号(#)を使用して<Directory />セクションをコメントアウトします。

    3. <Directory "C:/Program Files/Apache Software Foundation/Apache2.2.16/htdocs"></Directory>タグの間に、次の行を追加します。

      DirectoryIndex index.html
      FallbackResource /index.html
  2. httpd.confファイルの中の次の行から、番号記号(#)を削除します。

    ヒント

    これらの行は連続していません。3つすべてを見つけて、それぞれから#を削除します。

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule ssl_module modules/mod_ssl.so
  3. これらのセクションをhttpd.confに追加します。

    Listen 433
    <VirtualHost *:433>       
        ServerName yourServer       
        SSLEngine on       
        SSLCertificateKeyFile C:/Users/user/Desktop/device.key       
        SSLCertificateFile C:/Users/user/Desktop/device.crt       
        SSLProtocol -all +TLSv1.2       
        SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!DSS       
        ProxyPass /services/ http://yourServer:9100/services       
        ProxyPassReverse /services/ http://yourServer:9100/services
        ProxyPass /api/ http://localhost:8080/api/
        ProxyPassReverse /api/ http://localhost:8080/api/
    </VirtualHost> 
    Listen 9001
    <VirtualHost *:9001>       
        ServerName yourServer       
        SSLEngine on       
        SSLCertificateKeyFile C:/Users/user/Desktop/device.key       
        SSLCertificateFile C:/Users/user/Desktop/device.crt       
        SSLProtocol -all +TLSv1.2       
        SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:!DSS       
        ProxyPass /services/ http://yourServer:9101/services       
        ProxyPassReverse /services/ http://yourServer:9101/services
        ProxyPass /api/ http://localhost:8080/api/
        ProxyPassReverse /api/ http://localhost:8080/api/
    </VirtualHost>
    1. SSLCertificateKeyFileSSLCertificateFileをファイルの場所で更新します。

    2. ProxyPassProxyPassReverseをサーバーのホスト名とIPで更新します。

  4. デフォルトのApache証明書.crt.keyファイルを、独自の信頼できる証明書に置き換えます。

    デフォルトでは、これらのファイルはC:\Program Files\Apache24\conf\ssl\server.crtC:\Program Files\Apache24\conf\ssl\server.keyにあります。

Apache Tomcatサーバーと受け取り人Web .WARファイルの設定

  1. Tomcat /payeeweb/WEB-INF/security.propertiesファイルのこれらのフィールドを更新します。Apache HTTPサーバーの仮想ホスト値と一致する必要があります。また、プロトコルはhttpsの代わりにhttpに変更する必要があります。

    C:\Program Files\Apache Software Foundation\Tomcat\7.0\webapps\payeeweb\WEB-INF\security.properties 
    
    # JWT Configuration
    security.jwt.home=/home.html
    security.jwt.tenant-services-url=https://yourServer:433/services/varicent_web_login
    security.jwt.secretkey=varicent-ca-varicent-varicentweb-secret-key
    security.jwt.tenantServicesPrivateUrl=https://yourServer:9001/services
    security.jwt.tenantSecretKey=varicent-tenant-varicent-spm-production

    ヒント

    すべてのポートは、security.propertieshttpd.confファイルの両方で一致する必要があります。

  2. Apache Tomcatガイドに従って、TomcatでSSLを設定します。

    server.xmlファイルにアクセスすると、完了すると次のようになり、ポート8443のコネクタがkeystoreFileを使用するよう設定されます。

    <Connector port="8085" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" />                                
    
    <Connector port="8443" 
    protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    clientAuth="false" sslProtocol="TLS" keyAlias="ICMSSL"     keystoreFile="C:/keystore_Tomcat_SSL.jks" keystorePass="test" />

Java cacertsキーストアのインポート

  1. Javaの信頼されたキーストア証明書を使用するすべてのApache HTTPとApache Tomcat証明書を追加します。

    詳細については、IBM SDK, Java Technology Edition 7.1 cacerts証明書ファイルを参照してください。

  2. コマンドラインから、Javaのbinフォルダをインストールした場所に移動します。

  3. keytoolを使用して、Apache HTTP とApache Tomcat Webサーバーで使用されるすべての証明書を Javaキーストア(cacerts)にインポートして、すべての証明書を信頼できるようにします。

    ヒント

    デフォルトでは、Java cacertキーストアのパスワードはchangeitです。

    1つの証明書のみを使用している場合は、メインの証明書とルート証明書をインポートする必要があります。Tomcat SSLが異なる証明書を使用する場合、それもインポートする必要があります。次の例は、メインの証明書、ルート証明書、Tomcat SSL証明書のインポートを示しています。

    C:\Program Files\Java\jre1.8.0_144\bin>keytool.exe -import -keystore "C:\Program Files\Java\jre1.8.0_144\lib\security\cacerts" -alias yourServer.varicent.com.device -file C:\Users\ user \Desktop\currentCerts\device.crt
    Enter keystore password: changeit
    Certificate was added to keystore
    C:\Program Files\Java\jre1.8.0_144\bin>keytool.exe -import -keystore "C:\Program Files\Java\jre1.8.0_144\lib\security\cacerts" -alias yourServer.varicent.com.rootCa -file C:\Users\ user \Desktop\currentCerts\rootCA.pem
    Enter keystore password: changeit 
    Certificate was added to keystore
    C:\Program Files\Java\jre1.8.0_144\bin>keytool.exe -import -keystore "C:\Program Files\Java\jre1.8.0_144\lib\security\cacerts" -alias yourServer.varicent.com.TomcatSSL -file C:\Users\user\Desktop\currentCerts\yourTomcatSSLcertificate.cer
    Enter keystore password: changeit
    Certificate was added to keystore
  4. Apache HTTPサーバーとApache Tomcatサービスを再起動します。

(オプション)OpenSSLを使用した自己署名証明書の生成

OpenSSLを使用して、自己署名証明書を生成できます。詳細情報:https://www.openssl.org/

  1. テキストエディタを使用して、ファイルを作成し、v3.extと名前を付けます。

  2. このコンテンツをファイルに追加し、serveraltの名前をサーバー情報に置き換えます。

    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment,                 dataEncipherment
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1 = localhost
    DNS.2 = yourServer
    DNS.3 = *.yourDomain
    IP.1 = 127.0.0.1
    IP.2 = 1.2.3.4
  3. コマンドラインから、OpenSSLのbinフォルダをインストールした場所に移動します。

    デフォルトでは、次の場所にインストールされます:C:\OpenSSL-Win32\bin

  4. 次のコマンドを実行して、出力ファイルを生成します。

    openssl genrsa -out rootCA.key 2048
    openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
    openssl req -new -newkey rsa:2048 -sha256 -nodes -keyout device.key -subj "/C=CA/ST=None/L=NB/O=None/CN=yourServer.varicent.com" -out device.csr
    openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 999 -sha256 -extfile v3.ext

    成功した場合、次のファイルが出力されます:rootCA.keyrootCA.pemdevice.keydevice.csrdevice.crt

  5. Microsoft MMCを使用して、これらの証明書を信頼できるルート証明書としてインストールします。

    注記

    device.crtは、インポートする必要がある唯一の証明書です。

    この方法の詳細は、Microsoftのドキュメントを参照してください

(オプション)Tomcat SSLのキーストアへの証明書と秘密キーのインポート

<Connector keystoreFile=”” >タグでTomcatが使用できる新しいキーストアを作成できます。使用するキーストアがすでにある場合は、これを行う必要はありません。

  1. コマンドラインから、OpenSSLのbinフォルダをインストールした場所に移動します。

    デフォルトでは、C:\OpenSSL-Win32\binにインストールされます。

  2. このコマンドを実行して、既存の証明書と対応する秘密キーをPKCS12ファイルに変換します。

    openssl.exe pkcs12 -export -in device.crt -inkey device.key -out keystore.p12 -name yourOrganization -chain
  3. Javaのbinフォルダをインストールした場所に移動します。

  4. PKCSファイルに基づいてキーストアを作成するには、次のコマンドを実行します。

    "C:\Program Files\Java\jre1.8.0_144\bin\keytool.exe" -importkeystore -deststorepass changeit -destkeypass changeit -destkeystore keystoreConverted.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass changeit -alias varicentCloud

複数のSQL Serverデータベースの設定

複数のSQL Serverデータベースを使用する場合、Incentivesをオンプレミスで構成するには、いくつかの追加手順に従う必要があります。

複数データベースのREST API設定

複数のデータベースを使用する場合、REST APIを構成するには、実行すべき追加手順がいくつかあります。

  1. REST APIをインストールした場所に移動し、RESTAPI.dbServers.configを開きます。

  2. <databaseServers>セクションに移動して、<databaseServer Name="default">エントリを見つけます。

  3. <databaseServer>エントリ全体を選択してコピーし、既存エントリの下にある新しい行に貼り付けます。これで、2つの<databaseServer>エントリーができました。

    multipleDBs.jpg
  4. 必要に応じて値を更新して、2番目のデータベースエントリを設定します。Name値は、対応するdefaults.jsonサーバーエントリのName値と一致する必要があります。これは次のセクションで設定します。Name値をメモします。また、 DiskPathLogPathの値がSQLデータベースサーバー上の有効な場所であることを確認します。

複数データベースのテナントサービス設定

Incentivesで複数のデータベースを使用する場合、テナントサービスを構成するには、従うべき追加の手順がいくつかあります。

  1. テナントサービスをインストールした場所に移動し、defaults.jsonファイルを開きます。

  2. modelServerセクションで、serversセクションを見つけ、既存のエントリの閉じ括弧の後にコンマ(「,」)を追加します。

  3. serversエントリ全体を選択してコピーし、既存エントリの下にある新しい行に貼り付けます。

    これで、2つのサーバーエントリーができました。

    serversSection.jpg
  4. 必要に応じて値を更新して、2番目のデータベースエントリを設定します。2番目のデータベースエントリが、最初のエントリのid値とは異なる一意のid値を持っていることを確認します。名前の値が対応するRESTAPI.dbServers.configファイルデータベースのname値と一致することを確認します。

複数のデータベースを持つテナントサービスのREST API呼び出し

すべての必要なコンポーネントがインストールされ、設定されていることを確認します:REST API、テナントサービス、Redis、PostgreSQL、Node.js、SQL Server、スケジューラー、Apache Web サーバー、Apache HTTPサーバー。

  1. テナントサービスのREST API呼び出しの手順に従って、JSON Webトークン(JWT)を生成し、次の値を使用します。

    ヘッダー:デフォルトのまま

    ペイロード

    { "admin_user": {}, 
    "server":"2" 
    }

    署名の検証your-256-bit-secretmanagement-portalで置換

    invalidsignatureerror.jpg
  2. テナントサービスのREST API呼び出しの説明に従って、AuthorizationContent-Typeのキー値を追加します。

  3. REST API呼び出しを進め、モデルの作成と設定を続行します。

    使用するJWTトークンに応じて、REST API呼び出しは異なるSQLデータベースサーバー上で呼び出されます。PostmanでREST APIが呼び出されるSQLデータベースサーバーを変更するには、Payloadのサーバー値を変更し、トークンを再生成して、JWTキーを変更します。その後、PostmanのHeader値でBearerを更新します。

複数テナント間での移行

1つのテナントサービスがすべての環境で使用される設定の場合、クラウドと同じように移行を実行できます。これは、すべての環境が同じREST APIとテナントサービスへの接続をすでに共有しているためです。ユーザーガイド:移行の移行に関する手順に従ってください。

各環境が異なるテナントサービス上にある設定の場合、環境間で移行する前、いくつかの追加の手順を実行する必要があります。

この例では、DEV環境(ソース・モデル)からTEST環境(ターゲット・モデル)に移行します。

  1. ターゲット・モデルdefaults.jsonファイルで、ソース・モデルサーバーの詳細をserversセクションに追加します。

    ヒント

    追加したモデルサーバーの一意のIDと名前が、以前追加したモデルサーバーのものになっていることを確認します。

    完了すると、次のようになります。

    "modelServer": {
        "servers": {
            {
                "id": 1,
                "name": "TEST",
                "datacenter": "default",
                "instanceName": "SQL2016",
                "address": "nameOfsqlServerInstance",
                "hostname": "localhost",
                "user": "sa",
                "password": "aStrongPassword",
                "databaseType": "SQLServer2014Unicode",
                "enableCreation": true,
                "timeoutSeconds": "9000",
                "logPath": "F:\\",
                "diskPath": "F:\\",
                "accessVersions": [1],
                "logins": {
                    "1": {
                        "user": "sa",
                        "password": "aStrongPassword",
                        }
                    }
            },
            {
                "id": 2,
                "name": "DEV",
                "datacenter": "default",
                "instanceName": "SQL2016",
                "address": "uniqueNameOfSqlServerInstance",
        }
    

    ヒント

    異なるサーバーを分割するコンマを忘れないようにしてください。忘れると、テナントサービスが適切に再起動されず、管理アプリケーションにログインできなくなります。

  2. ターゲット・モデルがソース・モデルとは異なるSQL Serverインスタンス上にある場合は、RESTAPI.dbservers.configファイルを編集して新しいデータベースサーバーのエントリを作成します。

    完了すると、次のようになります。

    <databaseServers>
        <databaseServer Name="TEST">
        </databaseServer>
            <databaseServer Name="DEV">
            </databaseServer>
    </databaseServers>
  3. Postmanを使用して、API呼び出しを実行し、postgresでソース・モデルをターゲット・モデルに関連付けます。

    Request  /tenants/1/models/externalRestore
    Method: Post
    Sample Call Path: http://localhost:9100/services/tenants/1/models/externalRestore
    Body: { 
        "model_name":“DEV",
        "server":“2",
        "isOverwrite":false,
        "isUnicode": true
    }
  4. すべてのモデルへのアクセス権と移行の実行権限を持つ管理者ユーザーを作成するAPI呼び出しを実行します。

    Sample Call Path: http://localhost:9100/services/admin/tenants/1/users
    Method: POST
    Body: {      
        "tenant_id": "1",       
        "email": "migrationuser@test.com ",       
        "password": “aStrongPassword",      
        "first_name": “Migration",      
        "last_name": “User"
    }
  5. すべての環境への移行を実行する管理者ユーザーを関連づけるAPI呼び出しを実行します。

    Sample Call Path: http://localhost:9100/services/admin/tenants/1/users/migrationuser@test.com
    Method: PATCH
    Body: {                  
        “tenant_id”: “1”,                  
        “email”: “migrationuser@test.com”,                  
        “model”: “DEV”
    }

    ヒント

    ステップ4で管理者ユーザーを作成した場合は、ターゲット・モデルに対してこの呼び出しを2回行う必要があります。

    この例では、modelを「TEST」に変更し、もう一度呼び出します。

成功すると、ソース・モデル(TEST)の管理アプリケーションに移動し移行を実行すると、ターゲット環境(DEV)が移行ウィザードのオプションとして表示されます。

監査ログのタイムゾーンの設定

監査ログを設定して、表示時刻を管理者Webユーザーのローカル時刻と同期させることができます。また、これを設定することで、夏時間に関連する問題を回避できます。

これが機能するには、アプリケーションサーバーとデータベースサーバーの両方がUTC(協定世界時)に設定されている必要があります。REST APIとテナントサービスが別々のサーバ上にある場合は、REST API、テナントサービス、SQLサーバーのあるサーバーでタイムゾーンをUTCに変更する必要があります。この設定を変更しない場合、監査ログには、すべてのユーザーに対し常にUTC時間の時刻が表示されます。

注記

この設定はテナントサービスのコンソールには影響しません。これは、常にUTCで表示されます。

  1. REST APIとテナントサービスをインストールしたサーバーで、日付と時刻の設定に移動します。

    これは、メニューバーの日時をクリックしてから、日付と時刻の設定変更をクリックすると見つかります。

    setting up the audit log time 3
  2. [タイムゾーンの変更]をクリックしてから、UTC(協定世界時)に変更します。

    setting up the audit log time 2
  3. [OK]をクリックするか、ウィンドウを閉じます。

  4. タイムゾーンが正しく更新されたことを確認するには、コマンドラインに次のコマンドを入力します。

    tzutil /g
  5. 前述の手順を実行してもタイムゾーンが更新されていない場合は、コマンドラインに次のコマンドを入力します。

    tzutil /l

    次のようなタイムゾーンのリストが表示されます。使用するタイムゾーンをメモします。

    setting up the audit log time
  6. コマンドラインで、次のコマンドを入力して、<timeZone>を使用するタイムゾーンに置き換えます。

    tzutil /s "<timeZone> /l"
  7. テナントサービスとREST APIを再起動します。