SAPコネクション - SNC暗号化の有効化
SAP Cryptographic Libraryは、SAP Systemsで暗号化機能を実行するためにSAPから提供されるデフォルトのセキュリティ製品です。 さまざまなSAPサーバーコンポーネント間でSecure Network Communications(SNC)を提供するため、またはSAP application ServerでSecure Sockets Layer(SSL)プロトコルを使用するために使用できます。 このガイドでは、独自のSAPインスタンスでSNCを有効にする方法と、暗号化通信にSNCを使用するようにオンプレミスエージェントを設定する方法について説明します。
このプロセスは、次の手順で構成されます。
SNC設定の前提条件
- SAPシステムにインストールされたSAP Cryptographic Library: これは標準のSAP NetWeaver ASインストールの一部として含まれています。 SAP Cryptographic LibraryがSAPシステムで使用できない場合は、別のインストールパッケージを使用してインストールできます。 詳細については、SAP Note 1848999を参照してください。
- SNCを有効にするためにシステムで設定されたSAPシステムプロファイルパラメータ。 サンプルプロファイルパラメータ設定を参照してください。
- SAP BASIS権限またはSAPシステムへの管理者アクセス権。
- ダウンロード権限を持つS-User ID。
- OPAサーバーでSAP CommonCryptoLibをダウンロードして展開します。 展開の詳細については、ドキュメントのWorkato OPAサーバーでSNCを設定するセクションを参照してください。
- SAPCARユーティリティ: 暗号化ライブラリからコンテンツを展開するために必要です。 システムに存在しない場合は、このユーティリティをダウンロードする必要があります。
SNC SAPCryptolibノード下のSAP own certificate。 これはトランザクションコードSTRUSTから抽出されます。 詳細については、ドキュメントのSAP SNC証明書をエクスポートするセクションを参照してください。
COMMONCRYPTOLIBおよびSAPCAR
CommonCryptoLibとSAPCAR Utilityは、SAP Software Downloadsからダウンロードできます。 これらのパッケージをダウンロードするには、SAP S-USER IDに有効なソフトウェアダウンロード権限が割り当てられている必要があります。
Workato OPAサーバーでSNCを設定する
1. OPAのサーバーでSAPCARを使用してSAP commoncryptolibを展開する
OPAを実行しているサーバーで、SAP commoncryptolibを展開する必要があります。
この例では、MacOSおよびWindowsオペレーティングシステム向けにWorkato OPAサーバーでSNCを設定する方法を示します。 Linuxオペレーティングシステムでもコマンドは同様です。
SAPCARユーティリティを実行可能にします。
MacOS:
chmod +x SAPCAR_1200-70007727.EXEWindows:
この手順は無視できます。
SAPCARファイルの名前を変更します(任意)。
MacOS:
mv SAPCAR_1200-70007727.EXE sapcarWindows:
ファイルを右クリックして名前を変更します。
SAPCARユーティリティを使用してSAPCRYPTOLIBを展開します。
MacOS:
./sapcar -xf SAPCRYPTOLIBP_8554-70002813.SAR想定される出力:
SAPCAR: processing archive SAPCRYPTOLIBP_8554-70002813.SAR (version 2.01)
SAPCAR: 4 file(s) extractedWindows:
sapcar -xf SAPCRYPTOLIBP_8554-20011729.SAR想定される出力:
SAPCAR: processing archive SAPCRYPTOLIBP_8554-20011729.SAR (version 2.01)
SAPCAR: 8 file(s) extractedOPAサーバーにsecという名前のフォルダを作成します。 このファイルは、SNCコネクションに必要なファイルを保持するために使用されます。 手順3で展開したファイルをこのフォルダに移動します。
SECフォルダの場所
secフォルダをOPAインストールディレクトリ内に配置します。
2. SECUDIR変数とSNC_LIB変数を設定する
SECUDIRおよびSNC_LIB Environment変数を設定します。 これらの変数は、SNC暗号化ログインに必要な証明書をどこで検索するか、およびどのファイルをSAP暗号化ライブラリとして使用するかをサーバーに指示します。
ENVIRONMENT変数
これらのEnvironment変数を設定している同じターミナルからOPAを起動します。 または、OPAを起動する予定のターミナルでechoコマンドが正しい値を反映していることを確認してください。 これらの変数を.bashrcファイルに設定して、値を永続的に保存できます。
SECUDIR変数とSNC_LIB変数を設定します。
Environment変数SNC_LIB
Environment変数SNC_LIBの値は、使用するオペレーティングシステムによって異なります。 例:
- MacOS:
libsapcrypto.dylib - Windows:
sapcrypto.dll - Linux:
libsapcrypto.so
MacOS:
export SECUDIR=<directory path for sec folder>
export SNC_LIB=<OPA installation directory>/sec/libsapcrypto.dylibWindows:
このPCを右クリックし、プロパティを選択して、システムの詳細設定に移動します。
詳細設定タブで、Environment Variablesをクリックします。 
新しいSystem variablesとしてSNC_LIBとSECUDIRを追加します。
Environment変数が正しく設定されていることを確認します。
MacOS:
echo $SECUDIR
echo $SNC_LIBWindows: SNC_LIBとSECUDIRがSystem variablesのリストに含まれていることを確認します。
3. クライアント証明書の生成
このセクションの手順では、SAPシステムにインポートするクライアント証明書を作成するプロセスの概要を説明します。 OPAはクライアント証明書を使用して自身のIDを確認します。 SAPでは、OPAの接続試行を信頼するために証明書のコピーも必要であり、これはsapgenpseを使用して行います。
sapgenpseを使用して自己署名証明書を作成します。 PSE PINとPSEの識別名の入力を求められます。 この例では、正規名としてworkatoを指定しています。
PSE PINおよび識別名
正規名とPSE PINを設定するときは、特殊文字とスペースの使用を避けてください。
MacOS:
./sapgenpse gen_pse -v -p <OPA installation directory>/sec/workato.pseWindows:
sapgenpse gen_pse -v -p <OPA installation directory>\sec\workato.pse想定される出力:
Got absolute PSE path "<OPA installation directory>/sec/workato.pse".
Please enter PSE PIN/Passphrase: ************
Please reenter PSE PIN/Passphrase: ************
get_pse: Distinguished name of PSE owner: CN=workato
Supplied distinguished name: "CN=workato"
Creating PSE with format v2 (default)
succeeded.
certificate creation... ok
PSE update... ok
PKRoot... ok
Generating certificate request... ok.
Certificate Request:
Signed Part:
Subject: CN=workato
Key: rsaEncryption (2048 bits)
Public key fingerprint (MD5): 80:A7:CE:BC:19:A1:4E:E8:63:1F:77:F9:BC:8F:E8:4B
Attributes: None
Signature:
Signature algorithm: sha256WithRsaEncryption (1.2.840.113549.1.1.11)
Signature: <Not displayed>
PKCS#10 certificate request for "<OPA installation directory>/sec/workato.pse":
-----BEGIN CERTIFICATE REQUEST-----
MIICVzCCAT8CAQAwEjEQMA4GA1UEAxMHd29ya2F0bzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAM1XnlnelNn28WjlPtDd+a2pkOXcOMGoyuO8VlkPHp/r
RxzgZO11ac3fYgmr2iuvWwTFh/cNy+9xoXLlS374m103dFJfICBkH0zus4h2DU33
S+imU57wGyw2YzkptqctA8vYEZFQVnNdjxRcHpsS6RkYeEb8AFs5NOu5ibJpX6gq
i2+CQkiSzFmTpcEgg5Inr42lZxWMflHbx233M9a9UNF5x+Mrj9VuVTV+r2GaYulq
8VrjlD9LXtV8ZPzEv/GAi/UILtsAdwaSdB2mawS8MA2R4BICVpk2CZraDOMQpYmw
YTvkrUV/0+nQ8GWZwMqQ8+fsJUPKjyGCam4J8aSkx4MCAwEAAaAAMA0GCSqGSIb3
DQEBCwUAA4IBAQCmXXO0MSgWexOTN/3AIRgljnRnz5/VsamVV01KOV460AC3Eh67
N14u6pjKbJUe29RNEpML8DbmDnsHQYm8WPT5GnTdt08m7M1csswSq4dagIkUgJB5
LFT/oofJ3V7m/idN9AOb+LI9kEsFh6Z2LBC2umP45qSyWI8QFCsF6a0FB7Xy1Pok
voOODcA8KTkhN24hkKtHkZNKoFIkniSATvcJmu10iVKuYmeQem5WnfOPmH4Gpf7p
WMlgnEqEvhmy+MdLWubl6mpiBQfPvj9u9jJ/W2BO7kCfVzfFs9WxEKCibh410ReT
SREwV95ePEjIZ4H//txpYgDbzc42Zei8odT0
-----END CERTIFICATE REQUEST-----これで、secフォルダにworkato.pseファイルが表示されます。
このPSEファイルを使用して、secフォルダにクライアント証明書workato.crtファイルを作成します。
MacOS:
./sapgenpse export_own_cert -v -p <OPA installation directory>/sec/workato.pse -o <OPA installation directory>/sec/workato.crt -x <PSE PIN>Windows:
sapgenpse export_own_cert -v -p <OPA installation directory>\sec\workato.pse -o <OPA installation directory>\sec\workato.crt -x <PSE PIN>想定される出力:
Opening PSE "<OPA installation directory>/sec/workato.pse"...
No SSO credentials found for this PSE.
PSE (v2) open ok.
Retrieving my certificate... ok.
Writing to file (PEM-framed base64-encoded)... ok.現在のOSユーザーの認証情報をこのPSEに割り当てて、SSO認証情報をPSEに追加します。
OSユーザー
OSユーザー名はSAPユーザー名と異なる場合があります。 これはサーバー内のユーザー名である必要があります。例: ec2-userまたはroot。
MacOS:
./sapgenpse seclogin -p <OPA installation directory>/sec/workato.pse -O [your_os_username]Windows:
sapgenpse seclogin -p <OPA installation directory>\sec\workato.pse -O [your_os_username]想定される出力:
running seclogin with USER="<OS user>"
Please enter PSE PIN/Passphrase: ************
Added SSO-credentials for PSE "<OPA installation directory>/sec/workato.pse"4. SAPシステム証明書をPSEにインポートする
SAPシステム証明書をインポートするには、次のファイルが必要です。
SAP SNC証明書をエクスポートするセクションの手順1で取得したEH8.crt証明書ファイル。これはSAPシステムのown certificateです。 この手順により、PSEはSAPシステムが信頼されていることを認識できます。
MacOS:
./sapgenpse maintain_pk -p <OPA installation directory>/sec/workato.pse -a <OPA installation directory>/sec/EH8.crtWindows:
sapgenpse maintain_pk -p <OPA installation directory>\sec\workato.pse -a <OPA installation directory>\sec\EH8.crt想定される出力:
Please enter PSE PIN/Passphrase: ****
maintain_pk for PSE "<OPA installation directory>/sec/workato.pse"
----------------------------------------------------------------------------
Subject : CN=EH8, OU=I0021153659, OU=SAP Web AS, O=SAP Trust Community, C=DE
PKList updated (1 entries total, 1 newly added)secフォルダで、次のコマンドを実行してEH8.crtが正常にリンクされているか確認します。 sapgenpseを使用して、SAPからの証明書が正常にリンクされているか確認します。
MacOS:
./sapgenpse maintain_pk -p <OPA installation directory>/sec/workato.pse -l -vWindows:
sapgenpse maintain_pk -p <OPA installation directory>\sec\workato.pse -l -v想定される出力:
Opening PSE "/Users/sidhantmahajan/Downloads/SNC/sec/workato.pse"...
PSE (v2) open ok.
retrieving PKList
PKList:
Version: 1
Subject: CN=EH8, OU=I0021153659, OU=SAP Web AS, O=SAP Trust Community, C=DE
Issuer: CN=EH8, OU=I0021153659, OU=SAP Web AS, O=SAP Trust Community, C=DE
Serial Number: 0A:20:23:03:30:09:34:01
Validity not before: Thu Mar 30 15:04:01 2023 (230330093401Z)
Validity not after: Fri Jan 1 05:30:01 2038 (380101000001Z)
Public key: rsaEncryption (2048 bits)
Public key fingerprint (MD5): 34:BA:58:F3:8D:09:39:07:CF:AF:46:A6:3B:8E:05:C6
Public key fingerprint (SHA256): 1C:47:70:FA:7C:9D:7A:77:FE:94:3C:D6:65:F5:BE:0D:15:86:01:DA:16:52:43:B0:E6:2D:21:A2:B5:4F:CE:AB
Signature algorithm: sha256WithRsaEncryption (1.2.840.113549.1.1.11)
Certificate fingerprint (MD5): 6B:74:E9:9C:44:6B:68:CB:34:CF:FE:9F:5D:8C:AB:78
Certificate fingerprint (SHA1): E3:D7:DF:21:9C:76:19:AA:C3:1F:CA:3C:97:F1:94:68:50:7F:EA:3D
Certificate fingerprint (SHA256): 0D:F1:63:43:08:41:B1:B5:6F:F8:A4:95:C8:6D:BE:E3:DD:38:5F:70:03:B8:63:6F:D4:8E:00:25:3C:9A:A2:5Dsecフォルダで次のコマンドを実行し、クライアント証明書、キー、およびSSOマッピングを確認して、認証情報が正しいか確認します。
MacOS:
./sapgenpse seclogin -p <OPA installation directory>/sec/workato.pse -O [your_os_username] -l
./sapgenpse seclogin -p <OPA installation directory>/sec/workato.pse -lWindows:
sapgenpse seclogin -p <OPA installation directory>\sec\workato.pse -O [your_os_username] -l
sapgenpse seclogin -p <OPA installation directory>\sec\workato.pse -l想定される出力:
running seclogin with USER="<OS user>"
0 (LPS:OFF): CN=workato
(LPS:OFF): <OPA installation directory>/sec/workato.pse
1 readable SSO-Credentials available
for PSE-file "<OPA installation directory>/sec/workato.pse"SAPシステムでSNCを設定する
1. SAP SNC証明書をエクスポートする
SAPアプリケーションサーバーからSAP Certificateをエクスポートします。 この証明書は、その後OPAにインポートされます。
SAP GUIにログインし、トランザクションコードSTRUSTに移動します。
SNC SAPCryptolibノードを選択し、Own Certificateセクションの証明書をダブルクリックします。 
certificate exportアイコンをクリックします。 次に、Base64形式を選択します。 この例では、SAPシステムのシステムIDに合わせてEH8.crtという名前を付けました。 
2. クライアント証明書をインポートする
このセクションでは、OPA側で生成されたクライアント証明書をSAPにインポートするために必要な手順の概要を説明します。
トランザクションコードSTRUSTに移動し、ノードSNC SAPCrytolibを選択します。
編集モードになっていることを確認し、前のセクションの図に示すように、certificate exportアイコンの横にあるcertificate importアイコンをクリックします。
OPA側で生成されたクライアント証明書workato.crtをインポートします。
Add to certificate listをクリックし、saveします。

3. クライアント証明書をSAPのインテグレーションユーザーにマッピングする
このセクションでは、Workatoとの通信に使用されるインテグレーションユーザーにクライアント証明書をマッピングする方法を示します。
トランザクションコードSU01に移動し、Workatoとの通信に使用されているインテグレーションユーザーの名前を入力します。
SNCタブに移動し、SNC名を入力してsaveをクリックします。 この値は、クライアント証明書の生成時に定義した識別名の先頭にp:を付けたものです(技術的にはcanonical nameと呼ばれます)。 この例では、SNC名はp:CN=workatoであることを意味します。

トランザクションコードSM30に移動し、テーブル名VUSREXTIDを入力します。
External IDタイプDNとXを維持します。External IDにはクライアント証明書の識別名を、Userフィールドにはインテグレーションユーザーの名前を指定します。 
4. RFC destinationを変更する(新しいIDocトリガーを使用する場合)
セキュアな通信を介してNew IDocトリガーを使用するには、Workato専用のRFC destinationでSNCを有効にする必要があります。
トランザクションコードSM59に移動します。
Workato専用のRFC destinationに移動します。
Logon & Securityタブで、Security OptionsセクションのSNCボタンを選択します。
保護品質を入力します。 この例では、これは3に設定されています。
クライアント証明書の正規名を入力し、saveをクリックします。 この例では、これはp:CN=workatoです。

コネクションフィールド
Workatoでコネクションを確立するには、SNCプロパティを反映するようにSAP profileを設定します。 セキュアなコネクションを確立するには、Workatoコネクションページで次の重要なプロパティも必要です。
- Quality of protection: セキュアなネットワーク通信を有効にします。
- Sapcrypto library path:
libsapcrypto.so(Linux)、libsapcrypto.dylib(Mac)、sapcrypto.dll(Windows)へのファイルシステムパスを指定します。 - SNC partner name: このセクションの手順1で抽出したSAP own certificateの正規名。
- SNC name: クライアント証明書の正規名。
概要
おめでとうございます。 OPAとSAPシステム間の暗号化コネクションを設定しました。 これにより、SAPとWorkato間のすべての通信でエンドツーエンド暗号化が有効になります。 これはトランザクションコードSMGWで確認できます。 ツールバーでGotoに移動し、Logged on Clientsをクリックします。SNCコネクションに使用されるプログラムIDのコネクションをダブルクリックして、プロパティLOCALを確認します。セキュア通信を示すポート48XXが表示されます。 セキュアなSNCポート範囲を検証するためのポートに関する公式SAPドキュメントを参照してください。

トラブルシューティング
- SAPに接続すると、次のエラーが表示されます。
SncPDLInit()==SNCERR_INIT
Unable to load GSS-API Shared Library
named "~/sec/libsapcrypto.so"OPAの設定プロファイルを確認します。 sapcrypto_library_pathパラメータにlibsapcryptoライブラリへの完全パスが含まれていることを確認してください。
- SAPに接続すると、OPAログに次のエラーが表示されます。
A2200210 Peer certificate verification failedTcode STRUSTのTrust Manager設定を確認します。 OPAの証明書が証明書リストにインポートされ、保存されていることを確認してください。
- SAPに接続すると、OPAログに次のエラーが表示されます。
Could not find a suitable SAP user for the SNC name of the callerSECUDIR Environment変数が設定されていることを確認します。 これはecho $SECUDIRで実行できます。 該当する場合は、Tcode SU01のSAPでユーザーのSNC名を確認します。
Last updated: