WorkatoでClient Certification Authenticationを使用してSAP S/4HANA Cloudに接続する方法
SAP S/4HANA CloudインスタンスのODataサービスを設定するには、次の手順を実行します。
SAP API Business Hub explorerで、自動化要件に合ったOData APIを見つけます。
SAP API explorer
適切なAPIが見つかったら、クリックして開き、Communication Scenario IDを見つけます。 後で使用するために、このIDを保存します。
API詳細通信
CA署名付きx509証明書を準備します。 この証明書は、S/4HANA Cloudバックエンドシステムが認識しているCAによって署名されている必要があります。 既知のCAは、S/4HANA CloudシステムのCertificate Trust Listを確認することで検証できます。 詳細については、このSAP Blog記事を参照するか、証明書を作成する簡単な方法としてSAP Passportを使用する方法に関する次のガイドを確認してください。
Setting up Communication Managementの手順に従って、次の必須タスクを完了します:
- Communication Userを作成: 手順3で作成した証明書を使用してCommunication Userを作成します。
- Communication Systemを作成: Communication Userに関連付け、認証方法をSSL Client Certificateに設定します。
- Communication Arrangementを作成: Communication SystemとユーザーをCommunication Scenarioに関連付けます。
Workatoに戻り、コネクションフィールドに入力します。
サンプルガイド: SAP Passportを使用してS/4HANA CloudのClient Certificate認証用の証明書を作成する
CA署名付きx509証明書を準備するには、信頼されたCAによって署名された証明書が必要です。 SAP Passportを使用すると、SAPのCloud Root CAによって署名されたx509証明書を迅速かつ簡単に生成できます。 このガイドでは、この方法で接続を実現する手順を説明します。 ただし、プロダクションで使用する証明書は、SAPを含む可能性のある組織が優先または既存で使用しているベンダーに従う必要があります。
SAP passportを申請します。
証明書の.pfxファイルをダウンロードします。
OpenSSLを使用して.pfxファイルを.pem形式に変換します。 ローカルマシンにOpenSSLをダウンロードしておく必要があります。
- 次のコマンド
openssl pkcs12 -in input-cert.pfx -out output-cert.pem -legacyを使用して不透明なパスワードを作成し、後で使用するために保存できます。 このコマンドにより、PEMパスフレーズの入力を求められます。
任意のプレーンテキストエディターで.pemファイルを開き、内容を確認します。 構造は次の例のようになります:
Bag Attributes
localKeyID: 01 00 00 00
friendlyName: SXXXXXXXXXX
Key Attributes: <No Attributes>
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w
...<redacted>...
jTG6eYRIAnHR2+4Vto+QxA==
-----END ENCRYPTED PRIVATE KEY-----
Bag Attributes
localKeyID: 01 00 00 00
friendlyName: S0023610052
subject=C = DE, O = SAP Trust Community, OU = SAP Service Marketplace, CN = SXXXXXXXXXX
issuer=C = DE, O = SAP Trust Community, CN = SAP Passport CA G2
-----BEGIN CERTIFICATE-----
MIIDjzCCAnegAwIBAgINY3nCYsU77LIAABBWgj
...<redacted>...
NSo4ezWlQtb/44Swg0NFaLpwmn
-----END CERTIFICATE-----
Bag Attributes: <No Attributes>
subject=C = DE, O = SAP Trust Community, CN = SAP Passport CA G2
issuer=C = DE, L = Walldorf, O = SAP SE, CN = SAP Cloud Root CA
-----BEGIN CERTIFICATE-----
MIIFLzCCAxegAwIBAddfzANBgkqhkiG9w0BAQsF
...<redacted>...
hmZooggAg+fCd5ZE4NgC7bAdwj/QYjPmXsolDjABgYUxtGQ=
-----END CERTIFICATE-----
Bag Attributes: <No Attributes>
subject=C = DE, L = Walldorf, O = SAP SE, CN = SAP Cloud Root CA
issuer=C = DE, L = Walldorf, O = SAP SE, CN = SAP Cloud Root CA
-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIQGHcPvmUGa79M6pM42bGdfdsfasdf
...<redacted>...
LvHPhNDM3rMsLu06agF4JTbO8ANYtWQTx0PVrZKJu+8fcIaUp
-----END CERTIFICATE-----前述のファイルから新しい.pemファイルを作成し、communication_user.pemとして保存します。 この.pemファイルには、秘密鍵を含めずに証明書のみを含める必要があります。 前述の例に基づくと、新しい.pemファイルは次の例のようになります:
-----BEGIN CERTIFICATE-----
MIIDjzCCAnegAwIBAgINY3nCYsU77LIAABBWgj
...<redacted>...
NSo4ezWlQtb/44Swg0NFaLpwmn
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFLzCCAxegAwIBAddfzANBgkqhkiG9w0BAQsF
...<redacted>...
hmZooggAg+fCd5ZE4NgC7bAdwj/QYjPmXsolDjABgYUxtGQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIQGHcPvmUGa79M6pM42bGdfdsfasdf
...<redacted>...
LvHPhNDM3rMsLu06agF4JTbO8ANYtWQTx0PVrZKJu+8fcIaUp
-----END CERTIFICATE-----Communication Userを作成する際に、証明書セクションでcommunication_user.pemファイルをアップロードします。
証明書のアップロード
通常どおり、SAP S/4HANA CloudインスタンスでCommunication SystemおよびCommunication Arrangementの残りの設定を行います。 Communication SystemのInbound communicationの認証方法がSSL Client Certificateに設定されていることを確認します。
証明書Communication System
Workatoに戻り、次のコネクションフィールドに入力します:
- 認証タイプ -
Client certificate(x509) - クライアント証明書 - これは手順4の
.pemファイル内の最初の証明書です。 前述の例に基づくと、次の出力のようになります:
-----BEGIN CERTIFICATE-----
MIIDjzCCAnegAwIBAgINY3nCYsU77LIAABBWgj
...<redacted>...
NSo4ezWlQtb/44Swg0NFaLpwmn
-----END CERTIFICATE------ 秘密鍵 - これは手順4の
.pemファイル内の秘密鍵です 前述の例に基づくと、次の出力のようになります:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w
...<redacted>...
jTG6eYRIAnHR2+4Vto+QxA==
-----END ENCRYPTED PRIVATE KEY------ パスフレーズ - これは手順3で作成したプライベートPEMパスフレーズです。
- CA証明書 - これには手順4の
.pemファイル内の残り2つの証明書を含める必要があります。 チェーンであるため、両方の証明書の間に空行を入れて含める必要があります。
-----BEGIN CERTIFICATE-----
MIIFLzCCAxegAwIBAddfzANBgkqhkiG9w0BAQsF
...<redacted>...
hmZooggAg+fCd5ZE4NgC7bAdwj/QYjPmXsolDjABgYUxtGQ=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFZjCCA06gAwIBAgIQGHcPvmUGa79M6pM42bGdfdsfasdf
...<redacted>...
LvHPhNDM3rMsLu06agF4JTbO8ANYtWQTx0PVrZKJu+8fcIaUp
-----END CERTIFICATE------ Host、Service、SAP Client - 必須フィールドに入力します。 必須フィールドは、SAPインスタンスの詳細によって異なります。
コネクションフィールド
コネクションの確立を完了するには、Workatoで次のフィールドに入力します:
ODATAバージョン
V2 APIとV4 APIには専用のコネクションを作成することをお勧めします。
| フィールド | 説明 |
|---|---|
| コネクション名 | 他のレシピで再利用できるように、このコネクションにわかりやすい名前を付けます。 |
| コネクションタイプ | SAPインスタンスが直接コネクションを許可しないネットワークで実行されている場合は、オンプレミスエージェントを選択します。 接続を試みる前に、有効なオンプレミスエージェントがあることを確認してください。 詳細については、オンプレミス接続ガイドを参照してください。 認証タイプとしてClient certificate (x509)を使用する場合は、オプションCloudを選択する必要があります。 Cloudが選択されている場合、リクエストはWorkatoのサーバーから直接送信されます。 |
| 認証タイプ | BasicまたはClient certificate(x509)のいずれかを選択します。 |
| ODataバージョン | このコネクションで使用する予定のAPIのODataバージョンを選択します: v2またはv4。 |
| ユーザー名 | 認証タイプがBasicの場合に適用されます。 前述の手順で作成したCommunication Userのユーザー名です。 |
| パスワード | 認証タイプがBasicの場合に適用されます。 前述の手順で作成したCommunication Userのパスワードです。 |
| クライアント証明書 | 認証タイプがClient certificate(x509)の場合に適用されます。 前述の手順で作成したCommunication Userのユーザー名です。 |
| 秘密鍵 | 認証タイプがClient certificate(x509)の場合に適用されます。 クライアント証明書の秘密鍵です。 |
| パスフレーズ | 認証タイプがClient certificate(x509)の場合に適用されます。 秘密鍵のパスフレーズです。該当する場合。 |
| CA証明書 | 認証タイプがClient certificate(x509)の場合に適用されます。 カスタムCAを使用してx509証明書に署名した場合は、ここにCAの証明書を追加する必要があります。 チェーン内に複数の証明書がある場合は、各証明書の間に空行を入れます。 |
| ホスト | SAP ODataサービスへのベースパスです。 SAP S/4HANA Cloudの場合、これはCommunication Arrangement URLにあります。 たとえば、サービスURLが https://www.myS4HanaSystem.com/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRVの場合、ホストはhttps://www.myS4HanaSystem.com/sap/opu/odata/sap/です。 |
| サービス | 認証をテストするために使用できるサンプルサービスです。 これは、最初に設定したサービスにすることができます。 SAP S/4HANA Cloudの場合、サービス名はCommunication Arrangementにあります。 |
| SAPクライアント | 参照するSAPクライアントです。 たとえば、https://www.myS4HanaSystem.com/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV?sap-client=800がサービスURLの場合、sapクライアントは800です。 |
Last updated: