開発概要
情報
サービス概要のシステム構成イメージも合わせてご確認ください。
WebAPI提供機能
YubiOn FIDO2 Server Service(以下、FSS)のWebAPIは、以下のような機能を提供しています。
- クレデンシャル(パスキー)の登録・認証
- ユーザー管理
- ユーザーの取得
- ユーザーの登録
- ユーザーの編集
- ユーザーの削除
- クレデンシャル(パスキー)の管理
- クレデンシャルの取得
- クレデンシャルの編集
- クレデンシャルの削除
アプリケーション開発者の実装範囲イメージ
- FSSは、ブラウザ上で実行されるWebAuthn APIの引数の作成・戻り値の検証を行います。
- クレデンシャルの登録・認証を行う場合、アプリケーションサーバーはFSS WebAPIに対してリクエストを行い、WebAuthn APIのメソッド引数を取得します。ブラウザ側でその引数を用いてWebAuthn APIを呼び出し、戻り値をアプリケーションサーバーからFSS WebAPIに対して送信する事で、処理の成功・失敗を判定します。
- アプリケーションサーバーとFSS WebAPI間の通信はHTTPSを用いて行います。リクエスト・レスポンスデータはJSON形式で送受信されます。なお、WebAuthn APIで使用される引数・戻り値の一部にはバイナリ形式のバッファーが含まれますが、それらはBase64Url形式に変換して送受信します。
- 一部の言語ではアプリケーションサーバーとFSS間の通信を行うためのSDKが準備されています。
- ブラウザ・アプリケーションサーバー間の通信処理はアプリケーション開発者が実装します。
- この部分はJSON形式で送受信される事を想定していますが、WebAuthn APIの引数・戻り値の一部にはバイナリ形式のバッファーが含まれます。それらのデータをBase64Url形式からバッファー形式に変換する、あるいはバッファー形式からBase64Url形式に変換するためのクライアントJavascript用SDKも準備されています。
- クレデンシャルの登録・認証を行う場合、アプリケーションサーバーはFSS WebAPIに対してリクエストを行い、WebAuthn APIのメソッド引数を取得します。ブラウザ側でその引数を用いてWebAuthn APIを呼び出し、戻り値をアプリケーションサーバーからFSS WebAPIに対して送信する事で、処理の成功・失敗を判定します。
- クレデンシャルの登録・検証処理の他に、ユーザー情報の管理・クレデンシャル情報の管理を行うためのWebAPIが準備されています。
- これらを利用する際も、アプリケーションサーバーからFSS WebAPIにリクエストを行って情報の操作・取得を行います。それらの情報を用いてユーザーのブラウザ上に表示するためのクライアント実装はアプリケーション開発者が実装します。
警告
FSS WebAPIリクエストは必ずアプリケーションサーバーから行ってください。クライアントブラウザ上から直接FSS WebAPIリクエストをする事は想定されておりません。FSS WebAPIリクエストの認証時に必要なシークレットキーをクライアントブラウザに渡す事は、事実上シークレットキーをインターネット上に公開している事になるため、FSS WebAPIリクエストの安全性が確保されません。
SDK
- 一部の言語にはFSS WebAPIへのアクセスを行うためのSDKが準備されています。これらを利用する事で、特にFSS WebAPIアクセス時の認証ヘッダ設定などが自動で行われるため、直接FSS WebAPIへリクエストする部分を実装するよりもスムースな開発を行う事が可能です。
- Node.js
yubion-fido2-server-sdk-js - Java
yubion-fido2-server-sdk-java
- Node.js
- 現在SDKが準備されていない言語についても、今後対応を増やしていく予定となっております。
- SDK提供希望の言語などがありましたら、お問い合わせページからリクエストをお送りください。