「更新系API」の開発に力を入れる銀行の共通点とは?三菱UFJ銀行とジャパンネット銀行にインタビュー

@ITのインタビューにて、「更新系API」の公開・活用に力を入れる三菱UFJ銀行とジャパンネット銀行が、APIを公開した狙い、開発の裏側などについて語っています。

三菱UFJ銀行とジャパンネット銀行は同じ銀行ではあるものの、企業規模や歴史が異なることもあって、開発における体制や進め方が大きく異なっています。

まず、三菱UFJ銀行は、業界に先かげて2017年3月、従来の預金残高などの情報を参照する「参照系API」に加え、振込ができる「更新系API」を公開したことが大きな反響となりました。

このきっかけは、同行が2015年から実施しているコンテスト「FinTech Challenge」で、振込業務のAPI連携のニーズの高まりを実感したからだそうです。外部へのAPI公開は未知の領域であり、ノウハウがない中の手探り状態でのスタートだったとのこと。

三菱UFJ銀行では従来、システム連携の仕組みにSOA基盤を、通信プロトコルはSOAP、データ形式はXMLを利用していました。しかし、このインタフェースをそのままAPIとして公開したところで、外部企業は使いづらいだろうという声が社内からあがってきました。
そこで、要件定義の段階でβプログラムを作成し、銀行APIの利用が見込まれるスタートアップ企業にクローズドでテスト利用してもらったそうです。

このタイミングで、権限認可のプロトコルとして「OAuth」を使用し、連携方式には「REST API」を採用することが決定されました。

開発フェーズでも、これまでは仕様や開発全てをベンダーに外注していたものを、今回は社内にAPI専門の開発チームを立ち上げ、外注先もAPI開発のノウハウをもつベンダーに変更。

これにより、要件定義〜基本設計までは開発者の意見などを取り入れ、アジャイル的に開発を進め、仕様が固まってからはウオーターフォール式で外注による開発を進めることができました。

また、既存のインターネットバンキングのシステム基盤をベースに開発した点も、迅速かつスムーズにAPIを開発できた要因だそうです。

まずインターネットバンキングのWebアプリケーションサーバに、銀行API専用の接続口をREST APIで作成。そこからAPIゲートウェイ経由で、外部に情報を公開しています。REST APIから金融情報を呼び出す部分については、既存のインターネットバンキングの内部APIを活用しているそう。

APIゲートウェイには海外の省庁でも採用されるレベルの製品を設置することで、セキュリティに配慮しつつ開発期間の短縮もできたとのことです。

セキュリティに関しては、BizSTATIONのハードウェアトークンをそのまま利用し、API連携サービスも従来と同等のセキュリティレベルを実現しています。またBizSTATIONの利用端末からOAuth認証すれば、90日間はどのデバイスからでもアプリを利用できるようして、ユーザビリティも両立させています。

APIを利用する開発者向けには、「三菱UFJ銀行API開発者ポータル」というポータルサイトを開設、ここで仕様の確認や、簡単なテストが行えるようにしています。

加えて、常に新旧2つのバージョンを提供し、互換性を確保するとともに、バージョンアップ時には旧バージョンを使用している事業者に通知するなどの管理スキームも構築していくとのことです。

一方、ジャパンネット銀行は、会計サービス「freee」との連携において、2017年3月に「参照系API」を、同年10月には「更新系API」を公開しました。

開発にあたってはセキュリティ確保に必要な場面のみジャパンネット銀行の画面を介在させ、APIを利用する企業側のユーザビリティを損なわないことを重視したそうです。

もともとジャパンネット銀行では、2013年度下期からAPIを活用した外部連携サービスの検討を進めており、APIの基盤構築についてもスムーズに進行できたとのこと。

Webアプリケーションサーバのアーキテクチャを活用して、まずは自社のスマホアプリ向けにWeb APIの提供を開始しました。これにより、JSON形式でデータを返す仕組みが整いました。

その後2016年に、参照系・更新系ともにAPI公開を行う方針が決定されました。同行の島崎氏は、当時を振り返り以下のように語っています。

参照系APIの公開は、スクレイピングによるサービスと比較して、情報管理やセキュリティ面でメリットがあると判断した。だが、銀行APIの取り組みとして、参照系APIの照会サービスだけでは従来のスクレイピングとあまり変わらず、セキュリティ面を除くと利用者のメリットは少ない。銀行が前に出ない新たな決済サービスの形として、更新系APIによる外部サービスとの振込機能連携にも取り組んでいく必要があった

前述のWebアプリケーションサーバ更改や自社アプリ向けWeb APIの提供を手掛けたチームが、更新系API基盤の開発も担当。

APIの仕様は、『オープンAPIのあり方に関する検討会報告書(事務局:一般社団法人全国銀行協会)』(2017年7月13日公表)に記載されたAPI仕様、セキュリティ原則に準拠し、権限認可には「OAuth」を、連携方式は「REST API」を採用しました。

セキュリティにおいては、ジェムアルト社が開発したキャッシュカードタイプの薄型トークンを採用して、更新系APIに必要なセキュリティレベルを確保しています。

更新系APIの前後を比較すると、振込件数は着実に伸び、既存のユーザーがfreee経由の振込を利用するようになっただけでなく、新しいユーザーも確実に増えてきているとのこと。同行は今後、更新系APIの利用状況をチェックしながら、取引をより活性化するための見せ方やサービスを検討していくそうです。

このように、上述の2つ銀行では、開発において体制も進め方も大きく異なっていました。しかし、以下のような点で共通点がいくつも見られたことも、たいへん印象的でした。

  • 「更新系API」の公開によって、ユーザーの利便性を高めることを目的にしている
  • API開発の基点がインターネットバンキングシステムである
  • 権限認可のプロトコルは「OAuth」を、連携方式は「REST API」を採用している
  • 『オープンAPIのあり方に関する検討会報告書(事務局:一般社団法人全国銀行協会)』に基づく仕様となっている
  • 2017年に成立した「改正銀行法」で信頼のおけるパートナーとAPI連携ができると考えている

ジャパンネット銀行と三菱UFJ銀行に聞く、更新系API開発と公開の裏側 (1/2):DX全盛時代、求められる企業、頼られるエンジニアとは?(3) – @IT