Simple Data Integrator (SDI) 実践入門：SDI Gateway Service インストール、構成

SDI は、インターネット経由でのセキュアなデータ連携を可能にする Proxy 機能を備えたゲートウェイソリューション 「SDI GatewayService」 を提供しています。
VPN や専用線の構築を必要とせず、さまざまな環境下において迅速かつ柔軟なデータ統合を実現します。

下記の構成図を参照してください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/e94d9727-15b8-4dab-bfd2-b7aee3423adc.png" width="700">


SDI 公式サイトには、SDI Gateway Service のインストールおよび構成方法について詳しく記載されています。
本記事では、公式サイトの内容は割愛し、手順やポイントのみを抜粋してご紹介します。

:::note info
SDI Gateway Service のインストールおよび構成は、**SDI Gateway Service を経由してデータ連携を行う場合のみ必要**です。  
拠点内のデータベース間、または VPN 経由でのデータ連携の場合には、SDI Gateway Service のセットアップ作業は不要です。
:::


# インストール手順

## 1. SDI Gateway Service をダウンロード
下記のURL
https://ja.sdi.ricct.com/start/setupsdiwebservice/#step1-sdi-web-service
STEP１を参照します。

SDI Gateway Service *.*.****.* をダウンロードし、ダウンロードしたファイルを解凍します。  
※解凍パスワードは上記の URL に記載されています。この記事の執筆時点では `WelcomeToSdi` です。
> ※最新版は公式サイトからダウンロード可能です。  
> 過去のバージョンが必要な場合は、サポートまでお問い合わせください。

## 2. Install IIS

下記の公式資料を参照
https://ja.sdi.ricct.com/start/installiis/

:::note info
注意
既にIISインストール済みの場合、手順を参照て、必要な機能全部有効になっていることを確認してください。
:::

WCF使用なので下記の作業必須です。
Step 7：
"WCF Services" - "HTTP activation"　有効化

Step 9
"application development"の"ASP.NET 4.7" 有効化

## 3. SDI Gateway service デプロイ

下記の公式資料を参照
https://ja.sdi.ricct.com/start/deployservice/

## 4. SDI Gateway Service 設定
下記の公式資料を参照
https://ja.sdi.ricct.com/start/configservice/

テンプレートのweb.configファイルから、最小限3箇所設定すれば Web Service 動作します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/560129/27e2259e-1edd-d690-2ebf-c7ef2c9a20c9.png" width="700">





### 4.1　ユーザー認証関連設定 (userAuthentication)
#### 4.1.1 authMethod
認証方法の設定。

|  authMethod  | 説明|
| ---- | ---- |
|  None|  ユーザー認証なし。<br/> ※疎通テストやプライベート接続など以外の場合非推奨|
|  Basic|  IIS 基本認証使った場合Basicに設定。  |
|  UserPsk|  ユーザー事前共有キー方式認証。<br / >※authenticatedUsersに定義してuserIdとuserPskのリストを使って認証  |


#### 4.1.2 authenticatedUsers
authenticatedUsersは、userIdとuserPskのペアのリスト。
※authMethod="UserPsk"の場合のみauthenticatedUsersを設定します。
各属性の説明：
https://ja.sdi.ricct.com/start/configservice/#authenticatedusers

#### 4.1.3 設定例：　（authMethod="UserPsk"）
```
    <userAuthentication authMethod="UserPsk">
      <authenticatedUsers>
        <add userId="testuser" userPsk="xxC2FxmyF2rY2K8f" comment=""/>
      </authenticatedUsers>
　　</userAuthentication>
```

### 4.2 アプリケーション認証関連設定 (clientApplicationAuthentication)

#### 4.2.1 authMethod
アプリケーション認証方法の設定。

|  authMethod  | 説明|
| ---- | ---- |
|  None|  アプリケーション認証なし。|
|  ApplicationPsk|  アプリケーション事前共有キー方式認証。<br / >※authenticatedApplicationsに定義してapplicationIdとapplicationPskのリストを使って認証  |

#### 4.2.2 authenticatedApplications
authenticatedApplicationsは、applicationIdとapplicationPskのペアのリスト。
※authMethod="ApplicationPsk"の場合のみauthenticatedApplicationsを設定します。
各属性の説明：
https://www.cdbc.cloud/setupservice/configservice/#authenticatedapplications

#### 4.2.3 設定例：　（authMethod="ApplicationPsk"）
```
<clientApplicationAuthentication authMethod="ApplicationPsk">
      <authenticatedApplications>
        <add applicationId="testappli" applicationPsk="EoQSKkfReZMO685E" comment="" />
      </authenticatedApplications>
</clientApplicationAuthentication>
```

### 4.3 接続文字列を設定 (connectionStrings)
接続するデータベースの接続文字列を設定。

例：

```
    <connectionStrings>
      <add name="oracletest" 
           connectionString="Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =  dev01.********.ap-northeast-1.rds.amazonaws.com)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORCL)));Persist Security Info=True;User ID=****;Password=****;" 
           providerName="Oracle.DataAccess.Client"/>
    </connectionStrings>
```
## 動作確認
SDI Studioを使ってコネクション設定、動作確認します。

以上です。

[Simple Data Integrator (SDI) 実践入門](https://qiita.com/RiCCT/items/3dc109ff82546459a8b0 "Simple Data Integrator (SDI) 実践入門")

# 参考資料
[SDI日本語公式サイト](https://ja.sdi.ricct.com/ "SDI日本語公式サイト")
[SDI English Official Website](https://sdi.ricct.com/ "SDI English Official Website")
[SDI Web Service セットアップ方法](https://ja.sdi.ricct.com/start/setupsdiwebservice/ "SDI Web Service セットアップ方法")