[CAIレシピ] プロセスの作成と実行(匿名アクセスと基本認証)

## はじめに
CAIプロセスは認証方法として匿名アクセス(認証情報なしの実行)と基本認証(BASIC Auth)をサポートしています。この記事では各認証方法別に次の実装・手順を確認します。

- クラウドサーバー上で動作するCAIプロセスの作成
- CAIプロセスをREST APIとしてcurlコマンドで実行する手順

なお、この記事は次の記事の内容を理解していることを前提としています。
- [[CAIレシピ] はじめてCAIを使う際に](https://qiita.com/shunsuzu/private/12b8dbd08a30efa0003a)



## 匿名アクセス

### CAIプロセス作成手順

次の手順では、認証情報を入力せずに実行可能なCAIプロセスを作成します。

1. IICSにログインして __アプリケーション統合__ のページに移動、 __ホームタブ__ に切り替えて __プロセスの作成__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/17251274-39ea-a7f8-7392-6f20ef5bb965.png)

1. __開始ステップ__ を選択、__全般タブ__ に切り替えて、__名前プロパティ__ に __recipe-pca-HelloWorld__ を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/050f696b-89bd-4c40-cc40-f3dad15d5063.png)
1. __開始タブ__ に切り替えて、__匿名アクセスを許可します__ にチェックを入れます。
__ランタイム環境__ が __クラウドサーバー__ となっていることを確認します(2024年12月時点では __ランタイム環境__ は日本語訳不具合により __実行日時__ と表示されています)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/49b6c5b1-d6d2-46cf-4b94-eca13a0f69ff.png)
1. __出力フィールドタブ__ に切り替えて、次のようにフィールドを定義します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/c795a39d-a1d5-9cb0-36c9-b300bdec1b94.png)
1. CAIプロセスの __保存__、__パブリッシュ__ を実行後、__プロパティの詳細__ を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/312be8d1-1d73-9797-99e7-75897c7cd149.png)
1. CAIプロセス実行時する際に必要となる __サービスURL__ をコピーします。
(サービスURL内の黒塗り箇所は利用している組織のOrgID)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/577ae815-4e7b-1193-0293-7c7c85fc3eaa.png)


:::note info
命名規則を決めておくとサンプルアセットを探す際の参照性が向上します。
[CAIレシピ](https://qiita.com/shunsuzu/private/3d1971ef6e3b993516aa)では、次の命名規則を利用しています。

|アセット|形式|説明|
|--------|----|----|
|プロセス|recipe-p{1}{2}-{3}|{1}...実行環境, c=クラウド, s=Secure Agent<br>{2}...認証, a=匿名アクセス, b=基本認証<br>{3}...プロセスの概要<br>|
|アプリケーション接続|recipe-a{1}-{2}|{1}...実行環境, c=クラウド, s=Secure Agent, b=両方<br>...アプリケーション接続の概要{2}|
|サービス接続|recipe-s{1}-{2}|{1}...認証, b=基本認証, c=カスタム<br>{2}...サービス接続の概要|
|プロセスオブジェクト|recipe-o-{1}|{1}...プロセスオブジェクトの概要|
:::

### CAIプロセスの実行
確認したサービスURLを指定してcurlコマンドを実行します。
正常に実行できた場合、CAIプロセス実行結果として __出力フィールド__ で定義した値を得られます。

```:curlコマンドと実行結果
// curl コマンド
curl https://usw5-cai.dm-us.informaticacloud.com/active-bpel/public/rt/<---ご利用のOrg ID--->/recipe-pca-HelloWorld

// 実行結果
{"out":"Hello World"}
```

複雑な入力引数を必要としない場合、WEBブラウザで動作を確認することもできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/ea9d0420-5a47-1725-8496-3afcbf8fbe87.png)






## 基本認証

次に __基本認証__ を利用するCAIプロセスの作成手順、実行時の動作を確認します。

### CAIプロセス作成手順

1. [匿名アクセスのCAIプロセス作成手順](#CAIプロセス作成手順) と同じ手順で新規にCAIプロセスを作成します。
(名前を __recipe-pcb-HelloWorld__ として保存、パブリッシュをする前の手順まで進める)
1. __開始タブ__ に切り替えて、次の操作により指定ユーザーによる基本認証を有効化します。
● __匿名アクセスを許可します__ のチェックを外す
● __許可されたユーザー__ として利用しているIICSユーザーを指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/a7488b6a-5425-e97e-b7e6-9aa10ea90055.png)

1. __保存__ 、 __パブリッシュ__ を実行して、 __サービスURL__ を確認します。
(基本認証を有効化している場合、サービスURLにOrgIDは含まれません)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/97b65ade-005f-9599-be92-ce525692bcee.png)


### CAIプロセスの実行

確認したサービスURLを指定してcurlコマンドを実行します。
基本認証が必要であるためcurlコマンドの -u オプションにて __許可されたユーザー__ に指定したIICSユーザーの認証情報を指定します。
正常に実行できた場合、CAIプロセス実行結果として __出力フィールド__ で定義した値を得られます。

```:curlコマンドと実行結果
// curl コマンド
curl -u username:password https://<IICS・CAIサーバー>/active-bpel/rt/recipe-pcb-HelloWorld

// 実行結果
{"out":"Hello World"}
```

## 参照

- [Qiita - IICS CAIの実装レシピ - マスターページ](https://qiita.com/shunsuzu/items/3d1971ef6e3b993516aa)