三菱UFJ銀行API事務局です。
当ブログでは、当行APIをご利用いただいている皆さまへ、技術的な情報やAPIの活用事例などの情報を定期的に発信していきます。
第1回目は、当行APIを皆さまに知っていただくため、当行のシステムが担っている役割と特徴についてお話します。
1. APIに関連するシステムの概要
まずは、APIに関連するシステムの全体像を知っていただくために、当行システム全体の概要を、図1に示します。 (APIに関連するシステムのみ)
APIを利用する際、当行システムとの窓口(リクエスト先)となるのがAPI管理システムです。APIは、API管理システムでリクエストを受付、APIの種類によって各チャネルシステム、および勘定系ホストへ連携されます。
各チャネルシステムのWebアプリケーションサーバでは、API専用の接続口をREST APIとして作成し、API管理システム経由で外部に情報を公開しています。REST APIから残高、入出金明細などの情報を呼び出す部分については、既存のインターネットバンキングの内部APIを活用し、勘定系ホストの情報をREST APIへ連携しています。
図1 API関連システムの概要図
2. API 管理システムの役割
API 管理システムはAPIのリクエスト窓口として、各チャネルシステムとの連携だけでなく、トラフィック管理、スパイク防御、DDoS攻撃対策などの役割を担っています。API 管理システムのトラフィック管理は、API 管理システムが一般的に備えている流量制限機能を利用し、接続先であるインターネットバンキングのアプリケーションサーバなどのバックエンドシステムに許容された性能範囲内で運用されるように制限しています。また、流量超過時は4xx系応答にて、API利用事業者(※)へ通知される仕組みとなっています。
さらにAPIのバージョン管理や認証・認可などを行う機能もあり、各チャネルシステムが共通で必要としているAPIの機能をAPI 管理システムが提供しています。認可の仕組みはOAuthを利用しています。図1に記載のエンドユーザ(リソースオーナー)がAPI利用事業者のアプリへ当行APIのアクセス権を渡すことで、エンドユーザが許可したAPI以外へのアクセスを防ぎ、不正な情報取得ができない仕組みとなっています。
※「API利用事業者」とは、APIをご利用いただいている企業を指します。
3. チャネルシステム、勘定系ホストの役割
ⅰ. チャネルシステム(三菱UFJダイレクト、BizSTATION)
図1で紹介している「三菱UFJダイレクト」、「BizSTATION」はそれぞれ個人および法人向けのインターネットバンキングサービスです。当行が現在公開しているAPIはこれらの機能を利用しています。
当行のインターネットバンキングでは、法人の振込申請など勘定系ホストにはない多様な機能を持っていることに加え、APIでも既存同等のセキュリティレベルを維持するため、APIの前提としてインターネットバンキングの基盤を選択しました。インターネットバンキングの基盤を活用しつつ、OAuthによる認証・認可の仕組みを採用することでAPIでのセキュリティを高めています。
その他にも、インターネットバンキングの基盤には勘定系ホストとの連携機能があります。この機能は用途に応じて再利用しやすい作りとなっているので、API開発においても活用することで、開発期間が短縮しました。
ⅱ. 勘定系ホスト
勘定系ホストは、預金業務や融資業務などの銀行のコア機能を担うシステムです。インターネットバンキングシステムへ勘定データ(残高や入出金明細)の応答を行っています。
このように、当行のAPIでは、API 管理システムと共に、インターネットバンキングに備わっている機能が特に重要な役割を果たしています。また、銀行システムとしてのセキュリティを担保しつつ、いち早く銀行APIをご提供できるようスピーディな開発ができるよう工夫しました。
次回以降も、APIの粒度に関する考え方、バージョン管理の方法など、APIに関する情報を定期的に発信していきますので、ぜひご覧ください!
当開発者ポータルでは、当行APIの仕様なども掲載していますので、ぜひご活用ください。