6.5. 動作概要¶
ここでは OpenID Connect 認証を利用する場合の動作シーケンスについて説明します。
6.5.1. Web アプリケーションの場合¶
Web アプリケーションの場合の動作シーケンスは以下のとおりです。 ここで「コンテンツサーバ」は Web アプリケーションのコンテンツ(HTML + JavaScript) を提供するサーバです。
- ブラウザはコンテンツサーバにアクセスし、コンテンツを取得します。
- コンテンツサーバは、OpenID Connect 認証を行うタイミング(認証ボタンをおしたときなど)に、BaaS サーバの OpenID Connect 認証 URL にリダイレクトします。
- BaaS サーバは、OpenID Connectプロバイダ (OP) の認証 URL (認可エンドポイント) にリダイレクトします。
- OP は認証画面を出すなどして認証を実行します。
- 認証が完了したら、OP は認可コードを BaaS サーバにリダイレクトします。
- BaaS サーバは取得した認可コードを OP に送信し、認証情報を取得します。
- BaaS サーバは認証情報を確認した後、ログイン用のワンタイムトークンを URL に付加してコンテンツサーバにリダイレクトします。
- Web アプリケーションは URL からワンタイムトークンを取得し、これを使用して BaaS のログインAPIを呼び出します。
- ログインが完了すると BaaS はセッショントークンを払い出します。
上記のうち、1, 2, 8 の処理については Web アプリケーション側で実装する必要があります。
「OIDC 認証ユーザ作成」の場合と「作成済ユーザとのアカウントリンク設定」の場合では、2 で設定するクエリパラメータが異なるだけで、動作シーケンスは同一となります。
6.5.2. ネイティブアプリケーションの場合¶
ネイティブアプリケーション(Windows, Android, iOS)の場合の動作シーケンスは以下のとおりです。
- OpenID Connect 認証結果を受け取るための Local Web Server(リスナー)を作成します (カスタムURIスキームを利用できない場合)。
- OpenID Connect 認証を行うために、ブラウザを起動して BaaS サーバの OpenID Connect 認証 URL にアクセスします。
- BaaS サーバは、OpenID Connectプロバイダ (OP) の認証 URL (認可エンドポイント) にリダイレクトします。
- OP は認証画面を出すなどして認証を実行します。
- 認証が完了したら、OP は認可コードを BaaS サーバにリダイレクトします。
- BaaS サーバは取得した認可コードを OP に送信し、認証情報を取得します。
- BaaS サーバは認証情報を確認した後、ログイン用のワンタイムトークンを URL に付加し、指定された URL にリダイレクトします。
- ネイティブアプリケーションはリダイレクトされた URL からワンタイムトークンを取得し、これを使用して SDK から BaaS のログインAPIを呼び出します。
- ログインが完了すると BaaS はセッショントークンを払い出します。
上記のうち、1, 2, 8 の処理についてはネイティブアプリケーション側で実装する必要があります。
「OIDC 認証ユーザ作成」の場合と「作成済ユーザとのアカウントリンク設定」の場合では、2 で設定するクエリパラメータが異なるだけで、動作シーケンスは同一となります。
リダイレクト URL の受け取り方法については以下の2通りがあります。
- カスタムURIスキームを使用する: Android, iOS の場合は、アプリケーション毎に定義したカスタムURIスキームを利用できます。
- ローカルWebサーバを使用する: PCのデスクトップアプリのようにカスタムURIスキームを使用できない場合は、アプリケーション内にローカルWebサーバを立ち上げ、http:// でリダイレクトURIを受け取ります。