アクセス制御

SOAP APIは標準設定ではワークフローシステムに対してローカルエリアネットワークまたはインターネットを経由してアクセスできる環境であれば使用できます。
特定のシステムや特定の環境のみにアクセスを制限する場合、以下の2種類の方法があります。

【アカウント認証】

SOAP APIを利用するプログラムで、ワークフローシステムへの認証情報が設定された場合のみ、APIの使用を許可する設定です。
アカウント認証を利用する場合は、まずワークフローシステム システム設定でSOAP APIのアカウント認証を有効にする必要があります。
手順は以下の通りです。

  1. 管理権限を持ったユーザーでワークフローシステムにログインします。
  2. 画面右上の[管理] - [システム設定]をクリックします。
  3. サイドバーから[オプション]をクリックします。
  4. [APIオプション]タブ - [認証]で、[SOAP API]の[アカウント認証を有効にする]にチェックを入れます。
  5. [保存]ボタンをクリックします。
  6. ワークフローシステムを再起動します。

以降では、SOAP APIによるアカウント認証で使用するクラスを、実装例と共に説明します。
アカウント認証で使用するのは、以下のクラスです。

WsAuthenticationManager

注釈

jp.co.itarchitects.xFlow.soap.server.authパッケージです。

WsAuthenticationManagerはアカウント認証を行うためのクラスです。
このクラスのloginメソッドで引数に渡すログインID、パスワードを指定してログインします。指定するユーザーには[すべての管理権限]または[オプションの実行権限]の管理権限が付与されている必要があります。 (システム管理権限は ワークフローシステム ユーザー管理 で設定します。)

ワークフローシステムへのログインに成功すると、このクラスのインスタンスが保持するCookieに認証情報が保存されます。
ログイン後にCookieに保存された認証情報を取得し、使用するSOAP APIのインスタンスに設定してください。
以下はアカウント認証を使用した場合の実装例です。

//ワークフローシステムにログインします。
WsAuthenticationManagerStub authenticationManager = new WsAuthenticationManagerStub();
authenticationManager._getServiceClient().getOptions().setManageSession(true);
authenticationManager.login("A10007", "password");

//ログイン成功後、Cookieから認証情報を取得します。
Object cookie = authenticationManager._getServiceClient().getServiceContext().getProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING);

//ユーザー情報を取得・更新するクラスのCookieに、認証情報を設定します。
WsUserInfomationManagerStub infomationManager = new WsUserInfomationManagerStub();
infomationManager._getServiceClient().getOptions().setManageSession(true);
infomationManager._getServiceClient().getServiceContext().setProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING, cookie);

//認証情報を設定したクラスで任意の処理を実行します。
WsMemberBean member = infomationManager.doSelectMemberByMemberID("A10015");
System.out.println(member.getLastName());

//ワークフローシステムからログアウトします。
authenticationManager.logout();

【接続許可IP】

SOAP APIが処理を受け付けるのを特定のIPアドレスに限定する方法です。
REST APIと共通の設定です。
IPアドレスを制限する手順は以下の通りです。

  1. 管理権限を持ったユーザーでワークフローシステムにログインします。
  2. 画面右上の[管理] - [システム設定]をクリックします。
  3. サイドバーから[オプション]をクリックします。
  4. [APIオプション]タブ - [認証]で、[接続許可IP]に接続を許可するIPアドレスを記載します。

注釈

  • 複数のIPアドレスを設定する場合は、","(半角カンマ)区切りで記載します。
  • IPアドレスを制限しない場合は、"*"(半角アスタリスク)を記載します。
  1. [保存]ボタンをクリックします。
  2. ワークフローシステムを再起動します。