OAuth2.0認証
Workatoは、ユーザーまたはシステムデータへの安全で標準ベースのサードパーティアクセスを可能にする、広く採用されているプロトコルであるOAuth 2.0(Open Authorization 2.0)をサポートしています。 このプロトコルは、ユーザー認証情報を公開せずに、APIへの制限付きの安全なアクセスを許可するために一般的に使用されます。
Workatoは現在、Authorization Code GrantとClient Credentials Grantの両方のフローをサポートしています:
- Authorization Code Grantは、アクセスを承認するユーザーが存在し、クライアントがクライアントシークレットを安全に保存できるアプリケーションに最適です。 このフローはインタラクティブなアプリケーションで一般的に使用され、アクセストークンと引き換えるための認可コードが必要なため、高い安全性があると見なされます。
- Client Credentials Grantは、ユーザーが関与しないサーバー間通信に使用されます。 代わりに、クライアントアプリケーションはクライアントIDとシークレットを使用して直接認証し、アクセストークンを取得します。 この方法は、バックグラウンドプロセスまたはサービスが保護されたリソースへアクセスする必要があるシステム連携に適しています。
これらのグラントタイプはいずれも、オンプレミスSAPアプリケーションおよびSAP S/4HANA Cloud, Private Editionに適用できます。
OAuth2.0を有効化
OData V2サービスに対してOAuth2.0を有効にするには、次の手順を完了します:
ODATA V4 APIに対してOAUTH2.0を有効にする
SAP Note 3304204を参照して、OData V4 API用のOAuthスコープを作成してください。
SAP Logonを通じてSAPシステムにログインし、トランザクションコード/n/iwfnd/maint_serviceに移動します 
サービスの追加をクリックし、System AliasでLOCALを維持してEnterキーを押します。 
使用する予定のサービスを選択し、選択したサービスの追加をクリックします。 この例では、標準SAP APIであるAPI_SALES_ORDER_SRVを追加します。 
技術サービスのカスタム名を指定します。例:ZAPI_SALES_ORDER_SRV。
ローカルオブジェクトをクリックしてサービスをローカルパッケージに保存し、OAuth有効化の下にあるサービスのOAuthを有効化チェックボックスを選択します。


エイリアスをダブルクリックし、SAP System AliasがService Doc. Identifierに対して正しいことを確認します。 
サービスがサービスカタログにすでに存在する場合は、そのサービスに直接移動し、OAuthをクリックしてOAuth認証を有効にできます。 
OAuth2.0の前提条件
OAuthを設定するには、次の前提条件の手順を完了します:
トランザクションコードSICFに移動します。 
パスdefault_host/sap/bc/sec/oauth2/の下にあるサービスauthorizeに移動します。 
authorizeサービスを右クリックし、リンクの有効化を選択します。
サービスをもう一度右クリックし、テストリンクを選択してサービスのURLを確認します。 URLはhttps://<hostname>:<port>/sap/bc/sec/oauth2/authorize?sap-client=<XXX>である必要があります。
パスdefault_host/sap/bc/sec/oauth2/の下にあるサービスtokenに移動します。

tokenサービスを右クリックし、サービスの有効化を選択します。
サービスを再度右クリックし、テストサービスを選択してサービスURLを確認します:https://<hostname>:<port>/sap/bc/sec/oauth2/token?sap-client=<XXX>
OAuthスコープを割り当てる予定の連携ユーザーを作成し、住所タブおよびログオンデータタブのLast nameとNew Passwordが維持されていることを確認します。

パスワードおよびユーザーの推奨事項
セキュリティを強化するため、生成オプションを使用して複雑な文字列を取得することをお勧めします。 この文字列はクライアントシークレットとして使用されます。 さらに、このユーザーについて、ユーザータイプをGUIアクセスを制限するSystemユーザーとして維持します。

OAuth2.0クライアントIDの設定
OAuthクライアントIDを設定するには、次の手順を完了します:
トランザクションコードSOAUTH2に移動します。 
作成をクリックし、必要なユーザー詳細と値を入力します。
クライアントIDの利用状況に関する推奨事項
Workatoで同じSAPシステムを指す複数のコネクションを作成する予定がある場合、コネクション喪失を避けるために、個別のコネクションごとに複数のクライアントIDを作成することをお勧めします。


選択したグラントタイプに基づいて、Grant Type Authorization Code ActiveまたはGrant Type Client Credentials ActiveとRefresh Allowedチェックボックスを選択します。 データセンターのコールバックURIを使用して、Redirect URIを維持します。 
追加をクリックし、使用する予定のスコープをリストから選択します。 例:選択したスコープZAPI_SALES_ORDER_SRV_0001は、API_SALES_ORDER_SRVサービスへのアクセスを提供します。 
次へをクリックし、概要を確認してから、完了をクリックします。
OAuth2.0クライアントIDの設定が完了しました。 
コネクションフィールド
コネクションの確立を完了するには、Workatoで次のフィールドに入力します:
ODATAバージョン
V2 APIとV4 APIには専用のコネクションを作成することをお勧めします。
| フィールド | 説明 |
|---|---|
| コネクション名 | 他のレシピで再利用できるように、コネクションにわかりやすい名前を指定します。 |
| コネクションタイプ | オンプレミスSAPシステムと同じドメインで実行されているオンプレミスエージェントを選択します。 接続を試みる前に、有効なオンプレミスエージェントがあることを確認してください。 |
| 認証タイプ | OAuth2.0 Authorization codeまたはOAuth2.0 Client credentialsを選択します。 |
| ODataバージョン | このコネクションで使用する予定のAPIのODataバージョンを選択します: v2またはv4。 |
| Client ID | OAuthコネクション設定中に作成したuserIDを入力します。 |
| Client Secret | パスワードを入力します。 これは、OAuthコネクション設定中に生成または追加したパスワードです。 |
| スコープ | SAP ODataシステムへのアクセスに使用する予定のスコープを指定します。 例:ZAPI_SALES_ORDER_SRV_0001。 複数のスコープはカンマで区切る必要があります。 |
| ホスト | SAP ODataサービスのベースパス。 例えば、サービスURLが https://www.myS4HanaSystem.com/sap/opu/odata/sap/API_SALES_ORDER_SRVの場合、ホストはhttps://www.myS4HanaSystem.com/sap/opu/odata/sap/です。 |
| サービス | 認証のテストに使用できるサンプルサービスを指定します。 これは最初に設定したサービスにできます。 例えば、サービスURLが https://www.myS4HanaSystem.com/sap/opu/odata/sap/API_SALES_ORDER_SRVの場合、ServiceはAPI_SALES_ORDER_SRVです。 |
| SAPクライアント | このODataサービスが存在するSAPクライアントを指定します。 例えば、サービスURLが https://www.myS4HanaSystem.com/sap/opu/odata/sap/API_SALES_ORDER_SRV?sap-client=100の場合、sap clientは100です。 クライアントを指定しない場合、SAPで設定されたデフォルトクライアントが使用されます。 |
| SSO/SAML2をバイパス | OAuth2.0 Authorization codeでのみ有効です。 非フェデレーションユーザーでSAML 2.0設定をバイパスしてSAPシステムへのコネクションを確立するには、Yesを選択します。 |
Last updated:
