
Questetra のモデリング要素の中には HTTP リクエストを送信できるものがあります。それらを使用して HTTP リクエストを送信することにより、REST API を呼び出して利用することができます。REST API は多くのサービスによって提供されています。
Questetra の以下のモデリング要素のいずれかを利用して、HTTP リクエストを送信します。
- Advanced エディション以上で利用可能
- 標準で搭載されている自動工程
- 以下、本稿では「ビルトイン自動工程」と呼びます
- 「Gmail: メール取得」「Box: ファイルアップロード」など外部クラウドサービスと連携する自動処理工程
- 標準で搭載されている自動工程
- Professional エディションで利用可能
- メッセージ送信中間イベント(HTTP)
- スクリプトタスク
- 定義ファイル(アドオン/Addon-XML)を追加して利用可能になる自動工程
- 以下、本稿では「アドオン自動工程」と呼びます
- 「Google ドキュメント: 文書, 全置換」や「Google スライド: ページ, 複製」など
REST API を提供しているサービスの中には、API を呼び出す際に認証が必要なものがあります。Qustetra ではこの認証に必要な情報を「HTTP 認証設定」として登録しておけば、認証に必要な情報をHTTP リクエストを送信する際に送付できるようになります。
1. HTTP 認証設定を追加する
認証設定はワークフローアプリごとに追加します。追加するには、ワークフローアプリ詳細画面の、[▼アプリ] > [HTTP 認証設定]メニューから設定画面を表示します。(認証設定を利用する工程の設定画面の[設定はこちらから]ボタンでも表示できます。)
既に追加されている認証設定があれば一覧表示されています。[追加]ボタンをクリックすると新規認証設定画面へと移ります。
HTTP 認証設定には以下の3タイプがあります。
- OAuth2
- トークン直接指定
- Basic 認証
API を呼び出される側の仕様に合わせて、いずれかのタイプを選択し設定を行います。
以下、タイプごとに設定方法を説明します。
1-1. [OAuth2]タイプ
OAuth2 にはいくつかの種類(認可フロー)があるのですが、[OAuth2] タイプでは、grant-type が Authorization Code である認可フローに対応しています。
- [OAuth2]タイプでは、HTTP リクエスト時に、 Authorization ヘッダに “Authorization: Bearer {管理されているAccessToken}” が追加されます
a. 呼び出される相手サービス側での準備
Authorization Code での認証(認可)を行うには、 相手サービス側にて、Questetra が OAuth クライアントとして登録されている必要があります。そのため、まずは相手サービス側で事前登録を行います。対象のサービスによって異なりますが、多くの場合サービス内に API のリクエストを受け付けるアプリケーションを作成/登録することになります。
アプリケーションの設定時に「コールバック URL」の入力を求められます。
Questetra のコールバックURL は次の通りです(HTTP 認証設定画面に表示されています)。
コールバック URL を指定してアプリケーションの設定を完了すると、相手サービス側で以下 を確認できるようになります。
- クライアントID
- (「コンシューマ鍵」「APP ID」等と呼ばれることもあります)
- クライアントシークレット
- (「クライアント機密コード」「コンシューマの秘密」等と呼ばれることもあります)
これらの値を Questetra の認証設定に登録します。
b. Questetra 側での HTTP 認証設定の追加
HTTP 認証設定画面で[追加]ボタンをクリックして開いた新規認証設定画面で[OAuth2](デフォルト)を指定します。
(設定名) | (入力する内容) |
名前* | 好きな設定名で OK、後で工程の設定で指定する際に使います。 |
認可エンドポイントURL* | 相手サービス側のマニュアルを参照して入力します。 |
トークンエンドポイントURL* | 相手サービス側のマニュアルを参照して入力します。 |
スコープ | 相手サービスや呼び出す API によって変わります。指定なしの場合もあります。複数指定の場合は半角スペースで区切ります。 |
クライアントID* | 「1. 呼び出される相手サービス側での準備」で確認した値を入力します。 |
クライアントシークレット* | 「1. 呼び出される相手サービス側での準備」で確認した値を入力します。 |
必要事項を入力し[保存]すると、指定した設定名の認証設定が追加され、一覧画面に表示されます。
次に HTTP リクエストの際に利用される「トークン」の取得を行います。右端の「トークンの有無」列に表示されている[トークンの取得]ボタンをクリックすると、相手側サービスへのログイン画面へと移ります。(ご使用のブラウザで既にログインしている場合は次の画面へスキップされます。)ログインを完了すると、サービスへのアクセスの認可を求める画面が表示されるので、許可します。
- 相手側サービスによっては、アクセスの認可時に「信頼されていないクライアントからの接続です」といった内容のメッセージが表示される場合があります
- 手続きに支障はありません、認可してトークンを取得してください
一連の処理が正常に完了すると、トークンが取得され、次のような表示となります。
トークン取得に失敗した場合は、設定に不備がないかをご確認ください。設定を十分に確認しても不備が見当たらない場合には、そもそも Questetra が対応していない認可フローである可能性がございます。改めて、相手サービスの OAuth 通信について、ドキュメントをご確認ください。
1-2. [トークン直接指定]タイプ
相手側サービスによってはアプリケーションの設定画面などで、(前述の OAuth2 で最終的に取得されるものと同等の)トークンが直接発行される場合があります。
このようにトークンが取得できていれば、[トークン直接指定]から認証設定を追加します。認証設定を新規に追加する画面のドロップダウンで[トークン直接指定]を選択すると下図の入力画面に変わります。
設定名を指定し、取得されたトークンを入力して[保存]します。一覧に認証設定が追加されれば設定完了です。
- [トークン直接指定]タイプでは、HTTP リクエスト時に、Authorization ヘッダに “Authorization: Bearer {設定されている文字列}” が追加されます
1-3. [Basic 認証]タイプ
アカウントID(ユーザ名やメールアドレスなど) とパスワードを使用する認証方法です。新規認証設定画面のドロップダウンで[Basic 認証]を選択すると下図の入力画面に変わります。
相手側 API で Basic 認証の使用が許可されていれば利用できますが、OAuth2に比べて安全性は劣ります。可能であれば OAuth2 の利用が推奨されます。
なお、OAuth2 でも grant-type が Client Credentialsの場合(例:PayPal)は、[Basic 認証]タイプの認証設定を利用することで、Client ID と Secret が送信されるようになります。
- [Basic 認証]ではHTTP リクエスト時に、Authorization ヘッダに “Authorization: Basic {BASE64エンコードされたユーザ名:パスワード}” を 追加されます
2. HTTP 認証設定を利用する
各モデリング要素から[HTTP 認証設定]を参照します。参照する方法はモデリング要素によって異なります。
2-1. メッセージ送信中間イベント(HTTP)
工程の設定画面で[ヘッダ]タブにて[Authorization ヘッダを指定する]オプションをオンにすると、認証設定の名称を選択できるようになります。
関連ドキュメント
2-2. スクリプトタスク
次のようなコードを設定すると、[HTTP認証設定]を参照する HTTP リクエストが送信されるようになります。
let request = httpClient.begin(); // HttpRequestWrapper
request = request.authSetting( "XXX_認証設定名_XXX" );
関連ドキュメント
- R2300: スクリプトタスクで利用できる Java クラス
- authSetting のサンプル(サービスタスク定義(Addon-XML)のスクリプト)
2-3. アドオン自動工程
工程の設定画面の「HTTP認証設定を選択してください」と表記されている設定項目で認証設定の名称を選択することにより指定します。
- 「 通信許可設定(OAuth2)を選択してください」など、表記が異なるものもあります
- 指定する方法が選択ではなく設定名を記入する方式のものもあります
関連ドキュメント
Appendix
A-1. 「ビルトイン自動工程」での HTTP 認証設定
Advanced エディション以上に標準で搭載されているビルトイン自動工程では、前述した認証設定の追加方法とは別に OAuth2 認証設定をより簡単に利用ができる設定画面が用意されています。
- この方法を利用して設定を行うには[システム管理者権限]が必要です
自動工程の設定画面で[設定はこちらから]をクリックすると、あらかじめ登録されている認証設定の画面が開きます。ご利用のワークフロー基盤(Questetra)は、あらかじめ相手サービス側で OAuth クライアントとして登録されているので、個別に OAuth クライアントとしての設定を追加する必要はありません。
取得するトークンごとに認証設定を[追加]するだけで設定は完了です。設定登録後は、前述と同様の手順で[トークンを取得]してください。
A-2. ビルトイン自動工程の HTTP 認証設定を利用する
アドオン自動工程と同様に、認証設定の名称を選択することにより指定します。
通常、HTTP 認証設定はワークフローアプリごとに設定されますが、ビルトイン自動工程では、ワークフロー基盤に OAuth クライアントがあらかじめ登録されており、認証設定は複数のアプリで共有されます。
例えばAさんが設定した認証設定(取得したトークン)を、別のアプリでBさんが利用できます。Questetra から HTTP リクエストが送信される際は、トークンを取得する際に認証を行なったユーザとして API にアクセスするので、利用には注意が必要です。
そのため、ワークフローアプリの設計を複数人で行っている場合などでは、セキュリティやプライバシーの問題などに充分注意してください。また、認証設定の誤用がないよう設定名は識別しやすい名称にしてください。