証明書を使用した 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) を生成します。
-
Windows コマンドラインまたは Mac ターミナルアプリケーションを開きます。
-
SAPCAR ユーティリティを使用して、SAP 暗号ライブラリを、指定したフォルダーに展開します。SAPCAR -xvf <folder-name.SAR> -
次の環境変数を設定します。
-
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.dllWindows の場合、
sapcrypto.dll の 64 ビットバージョンは異なるパスにあり、SNC_LIB_64 という新しい変数に追加されています。
-
-
sapgenpse ツールを使用して、PSE を作成します。sapgenpse gen_pse -v -p RFC.pseこのコマンドを実行する場合、後で使用する PIN と、一意である必要がある識別名を入力する必要があります。たとえば、次のような識別名を入力できます。
CN=RFC, C=AR, O=YourCompany, OU=ITすでに使用されている名前を表示するには、STRUST を使用できます。
-
sapgenpse ツールを使用して、PSE にアクセスするためのログイン情報を保存する cred_v2 ファイルを作成します。sapgenpse seclogin -p RFC -O <user-credentials> -
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) を設定するインストーラーが組み込まれています。
まずアプリケーションを作成する必要があります。
-
Anypoint Studio を開きます。
-
アプリケーションの
src/main/resources ディレクトリに移動します。 -
src/main/resources フォルダーに sec という名前のファイルを作成します。
-
sec フォルダーに次の行を追加します。-
libsapcrypto.soLinux バージョンの SAP CommonCryptoLib
-
sapgenpseLinux バージョンの PSE ファイルを管理する SAP コマンドラインツール
-
RFC.pse前のステップで作成したファイル
-
-
CloudHub 2.0 は Linux マシン上で動作するため、
com.sap.conn.jco:libsapjco3 など、アプリケーションの連動関係が Linux に合わせてコンパイルされていることを確認してください。 -
アプリケーションを保存し、CloudHub 2.0 のデプロイメントに使用する
jar ファイルをエクスポートします。
その後、作成したアプリケーションを CloudHub 2.0 または Runtime Fabric でインポートする必要があります。
-
Anypoint Platform アカウントにログインし、[Runtime Manager] に移動します。
-
[Deploy Application (アプリケーションをデプロイ)] をクリックします。
-
[Application Name (アプリケーション名)] に、アプリケーションの名前 (
「cert-ch2」など) を入力します。 -
[Deployment Target (デプロイメント対象)] で、
[CloudHub 2.0] または [Runtime Fabric] を選択します。 -
[Choose File (ファイルを選択)] をクリックし、
jar ファイルをアップロードします。 -
[Properties (プロパティ)] タブで、以下を追加します。
プロパティ 値の例 説明 secFilesCopy
truetrue の場合、組み込みインストーラーを起動します。sourceSecFolder
/opt/mule/apps/my-app-name/sec/CloudHub 2.0 または Runtime Fabric の
resources/sec フォルダーの場所。my-app-name には実際のアプリケーション名を指定してください。targetSecFolder
/tmp/sec/この値はハードコードされたままにしておきます。
pseFile
RFCPSE ファイルの名前 (拡張子なし)。
psePassword
Your PSE file password (PSE ファイルのパスワード)PSE ファイルのパスワード。このプロパティの横にある [Protect (保護)] ボタンをクリックすると、コンテンツが非表示になります。
osUsername
appcred_v2 ファイルの作成に使用されるデフォルトの CloudHub 2.0 ユーザー名。このプロパティは省略可能で、その場合はコネクタが自動的に値を計算します。 -
[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 サーバーを設定する手順は、次のとおりです。
-
SAP 識別名と証明書を表示します。
-
SAP 証明書を自分の証明書にリンクします。
-
SAP で SNC クライアントを認証します。
SAP 識別名と証明書の表示
SAP 識別名と証明書のリストを表示します。
-
SAP GUI にログインして、
strust トランザクションを入力します。 -
左側のペインで [SNC SAPCryptolib] フォルダーを選択します。
SAP 識別名と証明書リストが表示されます。
自分の証明書への SAP 証明書のリンク
SAP インスタンス証明書をダウンロードして自分の証明書にリンクします。
-
眼鏡アイコン (画面の左側にある最初のアイコン) をクリックしてエディションモードを有効にした後、
CN=SL-ABAP-IDP をダブルクリックします。 -
画面の一番下にあるダウンロードボタンをクリックして、ダウンロードの対象パスを入力します。
-
インポートアイコンをクリックして、自分の証明書をアップロードするための対象パスを入力します。
-
[Add to Certificate List (証明書一覧に追加)] をクリックして、保存アイコンをクリックします。
-
コマンドラインインターフェースまたはターミナルウィンドウを開き、
sapgenpse ツールを使用して自分の証明書を PSE にリンクします。sapgenpse maintain_pk -v -a <name_of_SAP_Server_Certificate.crt> -p <name_of_your_PSE.pse>次の例では、
IDE.crt という証明書を RFC.pse という PSE にリンクしています。
SAP での SNC クライアントの認証
VSNCSYSACL ビューに新しいエントリを追加し、識別名で SNC を使用できるようにします。
-
SAP GUI で SM30 トランザクションに移動し、
VSNCSYSACL をビュー名として入力します。 -
[Maintain (保守)] をクリックします。
-
作業領域として [E] を選択します。
-
[System ID (システム ID)] 項目に SAP ID を入力します。
-
[SNC name (SNC 名)] 項目に識別名を入力します:
p:<your-distinguished-name> -
すべてのチェックボックスを選択してエントリをアクティブ化します。
-
保存アイコンをクリックします。
-
サーバーが SNC 名を受け入れると、
Canonical Name Determined メッセージが SNC データボックスに表示されます。 -
サーバーが SNC 名を受け入れない場合は、PSE ファイルで使用されている名前が、Mule アプリケーションで使用されている名前および STRUST でリストされている名前と同じであることを確認します。
-
-
Mule アプリケーションで SAP ユーザーを有効にして、アプリケーションで SNC 接続種別を使用できるようにします。
-
SM30 トランザクションに移動して、
VUSREXTID ビューを指定し、[Maintain (保守)] をクリックします。 -
[External ID type (外部 ID 種別)] 項目で、作業領域として
DN を選択します。 -
[External ID (外部 ID)] 項目に識別名を入力します。
-
[User (ユーザー)] 項目に SAP ユーザー名を入力します。
-
[Activated (アクティブ化)] を選択します。
-
保存アイコンをクリックします。
-
SAP Connector の設定
証明書を使用した SNC を有効にするよう SAP Connector を設定する手順は、次のとおりです。
-
Anypoint Studio にアクセスします。
-
Studio キャンバスで [SAP] を選択します。
-
[Connector configuration (コネクタ設定)] 項目の横にあるプラス記号 (+) をクリックし、グローバル要素設定項目にアクセスします。
-
X.509 証明書接続を設定します。
-
[Connection (接続)] 項目で
Certificate を選択します。 -
[General (一般)] タブで、次の項目を設定します。
-
X.509 Certificate (X.509 証明書) (Base64 でのエンコードなし)
-
Sap client ID (SAP クライアント ID)
-
Application server host (アプリケーションサーバーホスト)
-
-
[Advanced (詳細)] タブで、拡張プロパティを設定します。
-