証明書を使用した SAP セキュアネットワークコミュニケーション接続の設定

証明書を使用した SAP セキュアネットワークコミュニケーション (SNC) を設定し、SAP システムのクライアントとサーバー間のセキュアなデータ通信、アプリケーションレベルのエンドツーエンドセキュリティ、SAP ビジネスアプリケーションに影響を与えずにセキュリティ商品を変更する機能など、セキュリティ機能を利用します。証明書を使用した SNC を有効にするには、クライアント環境、SAP サーバー、SAP 用 Anypoint Connector (SAP Connector) を設定する必要があります。

始める前に

証明書を使用した SAP SNC を設定するには、以下にアクセスできる必要があります。

  • SAP GUI アプリケーション。このクライアントをインストールするには、すでに Java がマシンにインストールされている必要があります。次に、SAP から OS に合ったインストーラーをダウンロードします。

  • SAPCAR ユーティリティおよび SAP 暗号ライブラリ。S ユーザーであれば、これらを SAP サポートポータルからダウンロードできます。

  • SNC システム変数を使用できる SAP ECC インスタンス

  • 次のトランザクション

    • STRUST​ (トラストマネージャー)

    • SM30​ (テーブルメンテナンス)

クライアント環境の設定

使用しているオペレーティングシステムに依存するシステム変数を設定し、パーソナルセキュリティ環境 (PSE) を生成します。

  1. Windows コマンドラインまたは Mac ターミナルアプリケーションを開きます。

  2. SAPCAR​ ユーティリティを使用して、SAP 暗号ライブラリを、指定したフォルダーに展開します。

    SAPCAR –xvf <folder-name.SAR>

  3. 次の環境変数を設定します。

    • SNC_LIB​: <path_to_library>\sapcrypto.dll

    • SECUDIR: <path_to_library>

    • LD_LIBRARY_PATH​: <path_to_library>\sapcrypto.dll

    • SSF_LIBRARY_PATH​: <path_to_library>\sapcrypto.dll

      Windows の場合、​sapcrypto.dll​ の 64 ビットバージョンは異なるパスにあり、​SNC_LIB_64​ という新しい変数に追加されています。

      Windows 変数 SNC_LIB_64
  4. sapgenpse​ ツールを使用して、PSE を作成します。

    sapgenpse gen_pse -v -p RFC.pse

    このコマンドを実行する場合、後で使用する PIN と、一意である必要がある識別名を入力する必要があります。たとえば、次のような識別名を入力できます。

    CN=RFC, C=AR, O=YourCompany, OU=IT

    すでに使用されている名前を表示するには、STRUST を使用できます。

  5. sapgenpse​ ツールを使用して、PSE にアクセスするためのログイン情報を保存する ​cred_v2​ ファイルを作成します。

    sapgenpse seclogin -p RFC -O <user-credentials>

  6. sapgenpse​ ツールを使用して、PSE からクライアントの証明書をエクスポートします。

    sapgenpse <export_own_cert> –v –p RFC –o RFC_MULE.crt

CloudHub 2.0 または Runtime Fabric でデプロイする際のクライアント環境を設定する

SAP Connector 5.9.5 以降では、証明書接続種別を使用するアプリケーションを CloudHub 2.0 または Runtime Fabric にデプロイできます。SAP Connector には、パーソナルセキュリティ環境 (PSE) を設定するインストーラーが組み込まれています。

まずアプリケーションを作成する必要があります。

  1. Anypoint Studio を開きます。

  2. アプリケーションの ​src/main/resources​ ディレクトリに移動します。

  3. src/main/resources​ フォルダーに ​sec​ という名前のファイルを作成します。

    SAP リソースの sec フォルダー構造
  4. sec​ フォルダーに次の行を追加します。

    • libsapcrypto.so

      Linux バージョンの SAP CommonCryptoLib

    • sapgenpse

      Linux バージョンの PSE ファイルを管理する SAP コマンドラインツール

    • RFC.pse

      前のステップ​で作成したファイル

  5. CloudHub 2.0 は Linux マシン上で動作するため、​com.sap.conn.jco:libsapjco3​ など、アプリケーションの連動関係が Linux に合わせてコンパイルされていることを確認してください。

  6. アプリケーションを保存し、CloudHub 2.0 のデプロイに使用する ​jar​ ファイルをエクスポートします。

その後、作成したアプリケーションを CloudHub 2.0 または Runtime Fabric でインポートする必要があります。

  1. Anypoint Platform アカウントにログインし、[Runtime Manager] に移動します。

  2. [Deploy Application (アプリケーションをデプロイ)]​ をクリックします。

  3. [Application Name (アプリケーション名)]​ に、アプリケーションの名前 (​「cert-ch2」​など) を入力します。

  4. [Deployment Target (デプロイメント対象)]​ で、​[CloudHub 2.0]​ または ​[Runtime Fabric]​ を選択します。

  5. [Choose File (ファイルを選択)]​ をクリックし、​jar​ ファイルをアップロードします。

  6. [Properties (プロパティ)]​ タブで、以下を追加します。

    プロパティ 値の例 説明

    secFilesCopy

    true

    true​ の場合、組み込みインストーラーを起動します。

    sourceSecFolder

    /opt/mule/apps/my-app-name/sec/

    CloudHub 2.0 または Runtime Fabric の ​resources/sec​ フォルダーの場所。my-app-name には実際のアプリケーション名を指定してください。

    targetSecFolder

    /tmp/sec/

    この値はハードコードされたままにしておきます。

    pseFile

    RFC

    PSE ファイルの名前 (拡張子なし)。

    psePassword

    Your PSE file password (PSE ファイルのパスワード)

    PSE ファイルのパスワード。このプロパティの横にある ​[Protect (保護)]​ ボタンをクリックすると、内容が非表示になります。

    osUsername

    app

    cred_v2​ ファイルの作成に使用されるデフォルトの CloudHub 2.0 ユーザー名。このプロパティは省略可能で、その場合はコネクタが自動的に値を計算します。

  7. [Start (開始)]​ をクリックしてアプリケーションを実行します。

組み込みインストーラーを使用する場合は、SAP Connector Config プロパティで CommonCryptoLib ライブラリを適切なパスで参照する必要があります。
プロパティ 値の例 説明

jco.client.snc_lib

${app.home}/sec/libsapcrypto.so

SAP CommonCryptoLib の場所。このプロパティで設定したライブラリは、コネクタ操作で使用されます。オペレーティングシステムによっては、他のライブラリを使う必要がある場合がります。たとえば、CloudHub 2.0 のオペレーティングシステムは Linux ベースです。

jco.server.snc_lib

${app.home}/sec/libsapcrypto.so

SAP CommonCryptoLib の場所。このプロパティで設定したライブラリは、コネクタソースで使用されます。オペレーティングシステムによっては、他のライブラリを使う必要がある場合がります。たとえば、CloudHub 2.0 のオペレーティングシステムは Linux ベースです。

SAP サーバーの設定

識別名での SNC の使用を認証する証明書とテーブルを設定します。SAP サーバーを設定する手順は、次のとおりです。

  1. SAP 識別名と証明書を表示します。

  2. SAP 証明書を自分の証明書にリンクします。

  3. SAP で SNC クライアントを認証します。

SAP 識別名と証明書の表示

SAP 識別名と証明書のリストを表示します。

  1. SAP GUI にログインして、​strust​ トランザクションを入力します。

  2. 左側のペインで ​[SNC SAPCryptolib]​ フォルダーを選択します。

    SAP 識別名と証明書リストが表示されます。

自分の証明書への SAP 証明書のリンク

SAP インスタンス証明書をダウンロードして自分の証明書にリンクします。

  1. 眼鏡アイコン (画面の左側にある最初のアイコン) をクリックしてエディションモードを有効にした後、​CN=SL-ABAP-IDP​ をダブルクリックします。

  2. 画面の一番下にあるダウンロードボタンをクリックして、ダウンロードの対象パスを入力します。

  3. インポートアイコンをクリックして、自分の証明書をアップロードするための対象パスを入力します。

  4. [Add to Certificate List (証明書一覧に追加)]​ をクリックして、保存アイコンをクリックします。

  5. コマンドラインインターフェースまたはターミナルウィンドウを開き、​sapgenpse​ ツールを使用して自分の証明書を PSE にリンクします。

    sapgenpse maintain_pk -v -a <name_of_SAP_Server_Certificate.crt> -p <name_of_your_PSE.pse>

    次の例では、​IDE.crt​ という証明書を ​RFC.pse​ という PSE にリンクしています。

    IDE.crt を RFC.pse にリンクするターミナルウィンドウ

SAP での SNC クライアントの認証

VSNCSYSACL​ ビューに新しいエントリを追加し、識別名で SNC を使用できるようにします。

  1. SAP GUI で ​SM30​ トランザクションに移動し、​VSNCSYSACL​ をビュー名として入力します。

  2. [Maintain (保守)]​ をクリックします。

  3. 作業領域として ​[E]​ を選択します。

  4. [System ID (システム ID)]​ 項目に SAP ID を入力します。

  5. [SNC name (SNC 名)]​ 項目に識別名を入力します:

    p:<your-distinguished-name>

  6. すべてのチェックボックスを選択してエントリをアクティブ化します。

  7. 保存アイコンをクリックします。

    • サーバーが SNC 名を受け入れると、​Canonical Name Determined​ メッセージが SNC データボックスに表示されます。

    • サーバーが SNC 名を受け入れない場合は、PSE ファイルで使用されている名前が、Mule アプリケーションで使用されている名前および STRUST でリストされている名前と同じであることを確認します。

  8. Mule アプリケーションで SAP ユーザーを有効にして、アプリケーションで SNC 接続種別を使用できるようにします。

    1. SM30​ トランザクションに移動して、​VUSREXTID​ ビューを指定し、​[Maintain (保守)]​ をクリックします。

    2. [External ID type (外部 ID 種別)]​ 項目で、作業領域として ​DN​ を選択します。

    3. [External ID (外部 ID)]​ 項目に識別名を入力します。

    4. [User (ユーザー)]​ 項目に SAP ユーザー名を入力します。

    5. [Activated (アクティブ化)]​ を選択します。

    6. 保存アイコンをクリックします。

SAP Connector の設定

証明書を使用した SNC を有効にするよう SAP Connector を設定する手順は、次のとおりです。

  1. Anypoint Studio にアクセスします。

  2. Studio キャンバスで ​[SAP]​ を選択します。

  3. [Connector configuration (コネクタ設定)]​ 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。

  4. X.509 証明書接続を設定します。

    1. [Connection (接続)]​ 項目で ​Certificate​ を選択します。

    2. [General (一般)]​ タブで、次の項目を設定します。

      • X.509 Certificate (X.509 証明書)​ (Base64 でのエンコードなし)

      • Sap client ID (SAP クライアント ID)

      • Application server host (アプリケーションサーバーホスト)

    3. [Advanced (詳細)]​ タブで、拡張プロパティを設定します。

SAP サーバー側の拡張プロパティの例

次の表にサーバー側の拡張プロパティの値の例を示します。

プロパティ 値の例

jco.server.snc_mode

1

jco.server.snc_partnername

p:CN=SL-ABAP-IDP

jco.server.snc_qop

8

jco.server.snc_myname

p:CN=MVIDP, C=AR, O=MuleSoft, OU=IT

jco.server.snc_lib

C:/SNC/64bit/sapcrypto.dll

SAP クライアント側の拡張プロパティの例

次の表にクライアント側の拡張プロパティの値の例を示します。

プロパティ 値の例

jco.client.snc_mode

1

jco.client.snc_partnername

p:CN=SL-ABAP-IDP

jco.client.snc_qop

8

jco.client.snc_myname

p:CN=MVIDP, C=AR, O=MuleSoft, OU=IT

jco.client.snc_lib

C:/SNC/64bit/sapcrypto.dll

jco.client.x509cert

ABCD12EFG