# SAP コネクション - SNC 暗号化の有効化

SAP 暗号ライブラリとは、SAP システムで暗号化機能を実行するために SAP が提供するデフォルトのセキュリティ製品です。これを使用することで、さまざまな SAP サーバーコンポーネント間にセキュアネットワークコミュニケーション (SNC) を提供したり、SAP Web Application Server でセキュアソケットレイヤー (SSL) を使用したりすることができます。このガイドでは、独自の SAP インスタンスで SNC を有効にし、SNC を使用して暗号化通信を行うようオンプレミスエージェント (OPA) を設定する方法について説明します。

このプロセスには、以下の2つのステップがあります。


# SAP インスタンスで SNC 向け SAP 暗号ライブラリを設定する

WARNING

SAP インスタンスをホストしているマシンへのサーバー側アクセスが必要になります。これには、サーバーに SAP 暗号ライブラリをダウンロードしてインストールする必要があります。この操作は、SAP Cryptolib が SAP システムにダウンロードされていない場合のみ必要になります。ダウンロードされていないかどうか SAP チームに再確認してください。

# 1. SAP 暗号ライブラリをインストールする

SAP 暗号ライブラリをインストールするには、まず SAP 暗号ライブラリのインストールパッケージを SAP Support Portal (opens new window) から入手する必要があります。ランディングページで [Software Downloads] をクリックすると、SAP ONE Support Launchpad が表示されます。

Software Downloads

ログイン資格情報

SAP ONE Support Launchpad へのアクセス権が必要です。資格情報がない場合は、SAP 管理者までお問い合わせください。

Launchpad で上部の検索バーに移動し、「COMMONCRYPTOLIB 8」と入力すると以下のような画面が表示されます。

Commoncryptolib 8

COMMONCRYPTOLIB 8」を選択し、最新のパッチを選択します。選択したオペレーティングシステムが、SAP インスタンスをホストしているサーバーのオペレーティングシステムと一致することを確認してください。以下の例では、最新のパッチ 8530 を選択しています。テーブルの右上隅にあるショッピングカートのアイコンをクリックし、これをダウンロードバスケットに追加します。

ダウンロードバスケット

画面の下部にある [Download Basket] をクリックしてダウンロードバスケットに移動し、追加したファイルを選択してダウンロードします。この時点でログイン資格情報を再入力するよう求められる場合があります。

前述のパッケージのコンテンツを解凍するには、SAP Support Portal から SAPCAR も見つけてダウンロードする必要があります。SAPCAR の最新バージョンをダウンロードします。この例ではバージョン7.21になります。

ダウンロードバスケット

# 2. SAP サーバーに暗号ライブラリをインストールする

アプリケーションサーバーに sapcrypto.sarSAPCAR が存在しない場合は、その両方のファイルをアプリケーションサーバーに転送してください。

ユーザー <sid>adm として以下を実行します。

  1. ターミナルで以下のコマンドを実行し、SAPCAR を使用して SAP 暗号ライブラリのインストールパッケージのコンテンツを解凍します。 例 : Windows NT の場合 :
.\SAPCAR.EXE -xvf .\sapcrypto.sar

SAP 暗号ライブラリのインストールパッケージ sapcrypto.sar には、以下のファイルが含まれています。

  • SAP 暗号ライブラリ (Windows NT の場合は sapcrypto.dll、UNIX の場合は libsapcrypto.<ext> )
  • 設定ツール sapgenpse.exe
  1. ライブラリファイルと設定ツール sapgenpse.exe を、アプリケーションサーバーのプロファイルパラメーター DIR_EXECUTABLE で指定されたディレクトリにコピーします。以下の例では、このディレクトリを $(DIR_EXECUTABLE) と表記します。

例 : Linux の場合 :

DIR_EXECUTABLE: <DRIVE>:/sapmnt/LI1/exe
Location of folder to place SAP Cryptographic Library: <DRIVE>:/sapmnt/LI1/exe

例 : Windows NT の場合 :

DIR_INSTANCE: <DRIVE>:/usr/sap/<SID>/<instance>
Location of folder to place SAP Cryptographic Library: <DRIVE>:/usr/sap/<SID>/<instance>/exe
  1. SAP 暗号ライブラリのファイルの権限を確認します。たとえば、UNIX 上で ftp を使用してライブラリを所定の場所にコピーした場合、ファイルの権限が適切に設定されないことがあります。<sid>adm (Windows NT では SAPService<SID>) がライブラリの関数を実行できることを確認してください。
  2. チケットファイルをインスタンスディレクトリ $(DIR_INSTANCE) のサブディレクトリ sec にコピーします。

例 : Windows NT の場合 :

DIR_INSTANCE: <DRIVE>:/usr/sap/<SID>/<instance>
Location of the ticket: <DRIVE>:/usr/sap/<SID>/<instance>/sec
  1. 環境変数 SECUDIR を sec サブディレクトリに設定します。アプリケーションサーバーはこの変数を使用して、実行時にチケットとその資格情報を特定します。

# 3. アプリケーションサーバーでトラストマネージャーのプロファイルパラメーターを設定する

次にプロファイルパラメーターを設定して、トラストマネージャーが SAP 暗号ライブラリにアクセスできるようにする必要があります。プロファイル設定ファイルに移動して、各 SAP AS ABAP インスタンスで以下のプロファイルパラメーターを設定します。

例 : Windows NT の場合 :

Location of the profile parameter settings: <DRIVE>:/usr/sap/<SID>/SYS/profile/default
プロファイルパラメーター
sec/libsapsecu SAP 暗号ライブラリのパスとファイル名 UNIX: /usr/sap/<SID>/SYS/exe/path/to/libsapcrypto.so

Windows NT: <DRIVE>:\usr\sap\<SID>\SYS\exe\path\to\sapcrypto.dll
ssf/ssfapi_lib SAP 暗号ライブラリのパスとファイル名 UNIX: /usr/sap/<SID>/SYS/exe/path/to/libsapcrypto.so

Windows NT: <DRIVE>:\usr\sap\<SID>\SYS\exe\path\to\sapcrypto.dll
ssf/name SAPSECULIB SAPSECULIB
snc/enable 1 1
snc/gssapi_lib SAP 暗号ライブラリが存在するパスとファイル名 UNIX: /usr/sap/<SID>/SYS/exe run/ libsapcrypto.so

Windows NT: <DRIVE>:\usr\sap\<SID>\SYS\ exe\run\sapcrypto.dll
snc/identity/as アプリケーションサーバーの SNC 名
構文 : p:<Distinguished_Name> この識別名は、SNC PSE の作成時に指定する識別名と一致する必要があります。
p:CN=ABC, OU=Test, O=MyCompany, C=US
snc/data_protection/max 1: 認証のみ
2 : 整合性保護
3 : プライバシー保護
3
snc/data_protection/min 1: 認証のみ
2 : 整合性保護
3 : プライバシー保護
1
snc/data_protection/use 1: 認証のみ
2 : 整合性保護
3 : プライバシー保護
9: snc/data_protection/max の値を使用
9
snc/accept_insecure_cpic 0 : 受け入れない
1 : 受け入れる
1
snc/accept_insecure_gui 0 : 受け入れない
1 : 受け入れる
1
snc/accept_insecure_r3int_rfc 0 : 受け入れない
1 : 受け入れる
1
snc/accept_insecure_rfc 0 : 受け入れない
1 : 受け入れる
1

プロファイルパラメーターの例

アプリケーションサーバーを再起動して、変更を適用します。

WARNING

プロファイルパラメーター snc/enable を1に設定すると、アプリケーションサーバー上で SNC がアクティブ化されます。このパラメーターが設定されていても SNC PSE と資格情報が存在しない場合、アプリケーションサーバーは起動しません。そのため、SNC パラメーターの設定は、設定手順の最後のステップとして行ってください。

# サンプルの SNC パラメーター

snc/identity/as = p:CN=EH8, OU=I0021153659, OU=SAP Web AS, O=SAP Trust Community, C=DE
ssf/name = SAPSECULIB
ssf/ssfapi_lib = D:\usr\sap\EH8\SYS\exe\uc\NTAMD64\sapcrypto.dll
sec/libsapsecu = D:\usr\sap\EH8\SYS\exe\uc\NTAMD64\sapcrypto.dll
snc/enable = 1
snc/gssapi_lib = D:\usr\sap\EH8\SYS\exe\uc\NTAMD64\sapcrypto.dll
spnego/krbspnego_lib = D:\usr\sap\EH8\SYS\exe\uc\NTAMD64\sapcrypto.dll
snc/data_protection/max = 3
snc/data_protection/min = 1
snc/data_protection/use = 9
snc/accept_insecure_cpic = 1
snc/accept_insecure_gui = 1
snc/accept_insecure_r3int_rfc = 1
snc/accept_insecure_rfc = 1
SNC_QOP = 8
snc/permit_insecure_start = 1
snc/extid_login_diag = 1
snc/extid_login_rfc = 1
DIR_SAPJVM = $(DIR_EXECUTABLE)$(DIR_SEP)sapjvm_6
jstartup/vm/home = $(DIR_SAPJVM)

# 4. SAP アプリケーションサーバー上で PSE と自己署名公開鍵証明書を作成する

SAP GUI でトラストマネージャーを使用する

  1. トラストマネージャーに移動します (T-code (トランザクションコード) STRUST)。
  2. SNC PSE ノードを選択します。以下の例では、このノードを SNC SAPCrytolib と名付けています。

PSE を作成または置換する

  1. 右クリックしてコンテキストメニューを開き、[Create] (PSE が存在しない場合) または [Replace] を選択します。
  2. サーバーの SNC 名がプロファイルパラメーター snc/identity/as で定義されている場合は、それに応じて識別名が自動的に特定されます。そうでない場合は、以下のように、識別名の各部分を対応する項目に入力します。
  • Name = <SID>
  • Org. (Optional) = Test
  • Company/Org. = MyCompany
  • Country = US

PSE 作成時のパラメーター

  1. [Enter] を選択して、トラストマネージャーの画面に戻ります。
  2. SNC では、PSE にパスワードを割り当てる必要があります。[Assign password] を選択すると、PSE のダイアログが表示されます。

パスワードの設定

  1. PSE のパスワードを入力して、[Enter] を選択します。トラストマネージャーの画面に戻ります。

設定が完了すると、SNC PSE が作成され、個々のアプリケーションサーバーに配布されます。この PSE はパスワードで保護されており、実行時にアクセスできるようサーバーの資格情報が作成されます。これが完了すると、SAP サーバーで SNC が有効になります。T-code SU01 に移動して任意のユーザーをチェックすることで再確認できます。SNC タブで、SNC のステータスがアクティブであることを確認できるはずです。

SNC がアクティブ

TIP

SAPシステムに複数のホストが存在する場合は、1つのホストに単一の PSE を作成して、それを他のホストにコピーできます。


# Workato OPA 向けに SNC を設定する

WARNING

この作業は、OPA がすべての必要なファイルを使用して設定されており、SAP システムへの暗号化されていない接続を確立することを前提としています。

# 1. SAP commoncryptolib と SAPCAR を取得する

SAP システムで SNC を設定する手順のステップ1と同様に、SAP commoncryptolib 8と SAPCAR をダウンロードする必要があります。まず SAP 暗号ライブラリのインストールパッケージを SAP Support Portal (opens new window) から入手します。ランディングページで [Software Downloads] をクリックすると、SAP ONE Support Launchpad が表示されます。

Software Downloads

ログイン資格情報

SAP ONE Support Launchpad へのアクセス権が必要です。資格情報がない場合は、SAP 管理者までお問い合わせください。

Launchpad で上部の検索バーに移動し、「COMMONCRYPTOLIB 8」と入力すると以下のような画面が表示されます。

Commoncryptolib 8

COMMONCRYPTOLIB 8」を選択し、最新のパッチを選択します。選択したオペレーティングシステムが、SAP インスタンスをホストしているサーバーのオペレーティングシステムと一致することを確認してください。以下の例では、最新のパッチ 8530 を選択しています。テーブルの右上隅にあるショッピングカートのアイコンをクリックし、これをダウンロードバスケットに追加します。

ダウンロードバスケット

画面の下部にある [Download Basket] をクリックしてダウンロードバスケットに移動し、追加したファイルを選択してダウンロードします。この時点でログイン資格情報を再入力するよう求められる場合があります。

前述のパッケージのコンテンツを解凍するには、SAP Support Portal から SAPCAR も見つけてダウンロードする必要があります。SAPCAR の最新バージョンをダウンロードします。この例ではバージョン7.21になります。

ダウンロードバスケット

これらのファイルを、Workato OPA をホストしているサーバーに移動します。Windows および Mac の場合、サーバーにインターネット接続があれば、これらのファイルを直接ダウンロードできます。Linux の場合はファイルをコピーする必要があります。

例 : Linux の場合 :

  • SAPCAR.EXE ファイルをコピーするコマンド入力 :
scp SAPCAR_1311-80000935.EXE user@your_server:~/
  • SAPCRYPTOLIB.SAR ファイルをコピーするコマンド入力 :
scp SAPCRYPTOLIBP_8531-20011697.SAR user@your_server:~/

# 2. OPA サーバーで SAPCAR を使用して SAP commoncryptolib を展開する

OPA を実行するサーバー上で、SAP commoncryptolib を展開する必要があります。

例 : Linux の場合

  • SAPCAR を実行可能ファイルにするターミナル入力 :
chmod +x SAPCAR_1311-70002712.EXE
  • SAPCAR ファイルの名前を変更するターミナル入力 (オプション) :
mv SAPCAR_1311-70002712.EXE sapcar
  • SAPCAR を使用して SAPCRYPTOLIB を展開するターミナル入力 :
./sapcar -xf SAPCRYPTOLIBP_8531-20011697.SAR

予想される出力 :

SAPCAR: processing archive SAPCRYPTOLIBP_8531-20011697.SAR (version 2.01)
SAPCAR: 6 files extracted

例 : Mac の場合

  • SAPCAR を実行可能ファイルにするターミナル入力 :
chmod +x SAPCAR_1311-70002712.EXE
  • SAPCAR ファイルの名前を変更するターミナル入力 (オプション) :
mv SAPCAR_1311-70002712.EXE sapcar
  • SAPCAR を使用して SAPCRYPTOLIB を展開するターミナル入力 :
./sapcar -xf SAPCRYPTOLIBP_8531-20011697.SAR

予想される出力 :

SAPCAR: processing archive SAPCRYPTOLIBP_8531-20011697.SAR (version 2.01)
SAPCAR: 4 files extracted

例 : Windows の場合

  • SAPCAR ファイルの名前を変更するターミナル入力 (オプション) :
ren SAPCAR_1311-70002712.EXE sapcar.exe
  • SAPCAR を使用して SAPCRYPTOLIB を展開するコマンドライン入力 :
.\sapcar.exe -xvf .\sapcrypto.sar

予想される出力 :

SAPCAR: processing archive SAPCRYPTOLIBP_8531-20011697.SAR (version 2.01)
SAPCAR: 4 files extracted

# 3."Sec" フォルダーを作成する

サーバーに "sec" という名前のフォルダーを作成します。このフォルダーは、SNC コネクションに必要なファイルを保持するために使用されます。このフォルダーは OPA フォルダー内または別のフォルダー内にまとめて配置できます。

例 : Linux の場合

  • sec フォルダーを作成するターミナル入力
mkdir sec
mv libsapcrypto.so sec
mv libslcryptokernel.so sec
  • sapgenpse を sec フォルダーに移動するターミナル入力
mv sapgenpse sec

# 4. SECUDIR 変数を設定する

次に SECUDIR 環境変数を設定して、SNC の暗号化されたログインに必要な証明書の場所をサーバーが認識できるようにします。

Linux の例 :

  • SECUDIR 変数を設定するターミナル入力 :
export SECUDIR=~/sec
  • 設定されたことをターミナル入力を介して確認 :
echo $SECUDIR

予想される出力 :

~/sec

# 5. SAP SNC 証明書をエクスポートする

OPA にインポートする SAP 証明書をアプリケーションサーバーからエクスポートします。 これは SAP サーバー上で SNC を設定する際に作成した証明書です。 この証明書は、OPA が SAP サーバーとのアクセスを確立するために使用する、RFC.pse ファイルを作成するために後で必要になります。

SAP GUI でトラストマネージャーを使用する

  • トラストマネージャーに移動します (T-code STRUST)。
  • SNC PSE ノードを選択します。以下の例では、このノードを SNC SAPCrytolib と名付けています。
  • [Own Certificate] セクションで証明書をダブルクリックします。

証明書のエクスポート

  • [Certificate] セクションで証明書のエクスポートアイコンを選択します。Base64 形式を選択します。

証明書のエクスポート

  • このファイルを、ステップ3で作成した sec フォルダーの root-ca.pem に保存します。Linux の場合は、ファイルを Linux サーバーにコピーする必要があります。

Linux の例 :

  • root-ca.pemsec フォルダーにコピーするターミナル入力
scp root-ca.pem user@your_server:~/sec

# 6. 証明書を作成して SAP システムにインポートする

次に、SAP システムにインポートする証明書を作成する必要があります。OPA はこれを使用して自身を検証しますが、OPA の接続の試行を信頼するため、SAP にもコピーが必要になります。これは sapgenpse を使用して実行できます。

Linux の例 :

  • sapgenpse を使用して自己署名証明書を作成します。PSE PIN および PSE の識別名を入力するよう求められます。この例では、workato という正規名を付けています。ターミナル入力 :
./sapgenpse gen_pse -v -p ~/sec/workato.pse

予想される出力 :

Got absolute PSE path "~/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)
  Attributes:                          None
 Signature:
  Signature algorithm:                 sha256WithRsaEncryption (1.2.840.113549.1.1.11)
  Signature:                           <Not displayed>

PKCS#10 certificate request for "~/sec/workato.pse":

-----BEGIN CERTIFICATE REQUEST-----
MIICVzCCAT8CAQAwEjEQMA4GA1UEAxMHd29ya2F0bzCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAM+lPXOoJTC1bDJfc7C4tsQDOmEDMwhLmL24Rxp2aXU9
+7UlZaG7QKVRJw6cRzCt2sPHyt5v1PrH9ZfavliMG71hrCQMx62Vft3p+upcM552
  • sec フォルダーに workato.pse ファイルが表示されているはずです。この PSE ファイルを使用して証明書を作成する必要があります。前の手順で指定した PSE PIN を入力するよう求められます。これにより、sec フォルダーに workato.crt ファイルが作成されます。 ターミナル入力 :
./sapgenpse export_own_cert -v -p ~/sec/workato.pse -o ~/sec/workato.crt

予想される出力 :

Opening PSE "~/sec/workato.pse"...
 No SSO credentials found for this PSE.
Please enter PSE PIN/Passphrase: ************
 PSE (v2) open ok.
 Retrieving my certificate... ok.
 Writing to file (PEM-framed base64-encoded)... ok.
  • 次に、現在の OS ユーザーの資格情報を、この PSE に割り当てる必要があります。これも sapgenpse を使用して実行できます。OPA をサービスとして実行している場合は、このコマンドを使用します。OS ユーザーの名前は、SAP ユーザーの名前とは異なります。これはサーバー内のユーザーの名前 (ec2-user) になるはずです。 ターミナル入力 :
./sapgenpse seclogin -p workato.pse -O [your_os_username]

コマンドラインを介して OPA を実行している場合は、ユーザーの宣言を省略できます。

./sapgenpse seclogin -p workato.pse

予想される出力 :

running seclogin with USER="ec2-user"
Please enter PSE PIN/Passphrase: ************
Added SSO-credentials for PSE "~/sec/workato.pse"
  • 次に、SAP サーバーにインポートする workato.crt をエクスポートする必要があります。Linux の場合は Linux サーバーからコピーします。これは、ローカルマシンの scp を使用して実行できます。
scp user@your_server:~/sec/workato.crt ~/workato.crt
  • 次に、証明書を SAP にインポートする必要があります。SAP GUI でトラストマネージャーを使用する

    • トラストマネージャーに移動します (T-code STRUST)。
    • SNC PSE ノードを選択します。以下の例では、このノードを SNC SAPCrytolib と名付けています。
    • 編集モードに切り替えます。
    • ノードの [Certificate] セクションで、証明書のインポートアイコンを選択します。
    • 最近作成した workato.cert を選択します。
    • PSE 情報は PSE の [Certificate] セクションに表示されます (Base 64形式)。
    • [Add to Certificate List] をクリックし、[Save] をクリックします。

    パスワードの設定


# 7. SSO 資格情報を作成する

次に、SAP システムで認証を行うための OPA の証明書を作成する必要があります。以下のファイルが必要になります。

  1. ステップ5で取得した root-ca.pem は、SAP システムの証明書です。Linux の場合、このファイルはサーバーにインポートしてから、sec フォルダーに移動する必要があります。
  2. ステップ6で取得した workato.pse は、OPA で使用される PSE です。Linux の場合、このファイルはサーバーにインポートしてから、sec フォルダーに移動する必要があります (まだ実行されていない場合)。

Linux の例 :

  • 次に、この workato.pse を SAP の root-ca.pem にリンクする必要があります。sapgenpse を再度使用して、workato.pse ファイルを root-ca.pem にリンクします。これにより、SAP システムが信頼されていることを、この PSE に知らせることができます。ステップ6で作成した PSE PIN を入力する必要があります。

ターミナル行の入力 :

./sapgenpse maintain_pk -p ~/sec/workato.pse -a ~/sec/root-ca.pem

予想される出力 :

Please enter PSE PIN/Passphrase: ************
 maintain_pk for PSE "~/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 フォルダーで、以下のコマンドを実行して、root-ca.pem が正常にリンクされているかどうかを確認します。SAP の root-ca.pem が正常にリンクされているかどうかを確認するには、sapgenpse を使用します。 ターミナル行の入力 :
./sapgenpse maintain_pk -p ~/sec/workato.pse -l -v

予想される出力 :

Opening PSE "~/sec/RFC.pse"...
 PSE (v2) open ok.
 retrieving PKList
PKList:
 Version:                              1
 Subject:                              [Subject of root-ca.pem]
 Issuer:                               [Subject of root-ca.pem]
 Serial Number:                        [Serial number of root-ca.pem]
 Validity not before:                  [Valid from of root-ca.pem]
 Validity not after:                   [Valid to of root-ca.pem]
 Public key:                           [Algorithm of root-ca.pem] [Key strength of root-ca.pem]
 Public key fingerprint (MD5):         [PK fingerprint MD5 of root-ca.pem]
 Signature algorithm:                  [Signature Algorithm of root-ca.pem]
 Certificate fingerprint (MD5):        [Check Sum MD5 of root-ca.pem]
 Certificate fingerprint (SHA1):       [Check Sum SHA1 of root-ca.pem]
 Certificate fingerprint (SHA256):     [Check Sum SHA256 of root-ca.pem]
  • sec フォルダーで、以下のコマンドを実行して、クライアント証明書、鍵、および SSO のマッピングを確認し、資格情報が正しいことをチェックします。 ターミナル行の入力 :
./sapgenpse seclogin -p ~/sec/workato.pse -O [your_os_username] -l

コマンドラインを使用する場合は以下のように入力 :

./sapgenpse seclogin -p ~/sec/workato.pse -l

予想される出力 :

 running seclogin with USER="ec2-user"
  0 (LPS:OFF): CN=workato
          (LPS:OFF): ~/sec/workato.pse
  1 readable SSO-Credentials available
  for PSE-file "~/sec/workato.pse"

出力される資格情報 (この場合 CN=workato) に注目してください。


# 8. SAP の SNC ユーザーをマッピングする

次に、これらの SSO 資格情報を SAP の SNC ユーザーにマッピングする必要があります。

  1. T-code SU01 で、Workato に割り当てられた SNC ユーザー名を入力します。

  2. [SNC] タブに移動し、SNC の名前を入力します。これは、ステップ7の資格情報の前に p: が付加されたものです。つまり、この例では SNC 名は p:CN=workato になります。

[SNC] タブ

  1. [Save] をクリックします。

# 9. OPA の設定を行う

まだ OPA を設定していない場合は、ここで行います。SAP の設定形式も必ず設定するようにしてください。OPA の実行時には、SNC 暗号化を有効にできるはずです。

server:
  classpath:
    - lib_ext

sap:
  sap_profile_1:
    network_connection:
      # replace this with message_server_host & logon_group if using message server connections
      gateway_host: xx.xx.xx.xx
      system_number: 00
      program_id: WORKATO
      # (Optional) SNC Quality of Protection (security level)
      # 0: No encryption (default). Use any other value if you want to authenticate and/or encrypt connections using SSL certificates
      # 1: Apply authentication only. When using authentication only, the system verifies the identity of the communication partners. This is the minimum protection level offered by SNC. No actual data protection is provided!
      # 2: Apply integrity protection (includes authentication). When using integrity protection, the system detects any changes or manipulation of the data, which may have occurred between the two end points of a communication.
      # 3: Apply privacy protection (includes integrity protection and authentication). When using privacy protection, the system encrypts the messages being transferred to make eavesdropping useless. Privacy protection also includes integrity protection of the data. This is the maximum level of protection provided by SNC.
      # 8: Apply global default protection. QoP value from the application server's snc/data_protection/use is used.
      # 9: Apply the maximum protection. QoP value from the application server's snc/data_protection/max is used.
      quality_of_protection: 3
      # Filesystem path to libsapcrypto.so (Linux), libsapcrypto.dylib (Mac) sapcrypto.dll (Windows)
      sapcrypto_library_path: /home/ec2-user/sec/libsapcrypto.so
      # Required when quality_of_protection is non-zero. SNC partner, for example, `p:CN=EH8, OU=I0021153659, OU=SAP Web AS, O=SAP Trust Community, C=DE`
      # Found in STRUST under SNC SAPCryptolib. Must be prepended with "p:"
      partner_name: p:[Subject of root-ca.pem]
    user_logon:
      client: 800
      language: EN

# 10. RFC 宛先を変更する (New Idoc トリガーを使用する場合)

Workato 専用の RFC 宛先に SNC を有効にする必要があります。

  1. T-code SM59 に移動します。
  2. Workato 専用の RFC 宛先に移動します。
  3. [Logon & Security] タブを選択します。
  4. [Security Options] セクションで [SNC] ボタンを選択します。
  5. OPA の SAP の設定で使用される保護品質を入力します。この例では、これは 3 に設定されています。
  6. SU01 で Workato ユーザーに付与されたのと同じ SNC 名を入力します。この例では、p:CN=workato になります。

RFC 宛先で SNC を有効にする

  1. [Save] をクリックして完了します。

# 11. OPA を実行してテストする

これで、OPA と SAP システム間に暗号化された接続が設定されました。Workato から OPA への TLS 1.2と組み合わせることにより、SAP と Workato 間のすべての通信でエンドツーエンドの暗号化を実現できます。


# トラブルシューティング

  1. SAP への接続時に、以下のエラーが出力された場合 :
SncPDLInit()==SNCERR_INIT
Unable to load GSS-API Shared Library
named "~/sec/libsapcrypto.so"

OPA の設定プロファイルを確認します。sapcrypto_library_path パラメーターに libsapcrypto ライブラリへの 完全なパス が設定されていることを確認してください。

  1. SAP への接続時に、OPA ログに以下のエラーが出力された場合 :
A2200210 Peer certificate verification failed

T-code STRUST で、トラストマネージャーの設定を確認します。OPA の証明書がインポートされ、 かつ 証明書の一覧に保存されていることを確認してください。

  1. SAP への接続時に、OPA ログに以下のエラーが出力された場合 :
Could not find a suitable SAP user for the SNC name of the caller

SECUDIR 環境変数が設定されていることを確認します。これは echo $SECUDIR を使用して実行できます。この場合、T-code SU01 で、SAP のユーザーの SNC 名を確認してください。


Last updated: 2023/8/31 1:07:14