6.5. 動作概要

ここでは OpenID Connect 認証を利用する場合の動作シーケンスについて説明します。

6.5.1. Web アプリケーションの場合

Web アプリケーションの場合の動作シーケンスは以下のとおりです。 ここで「コンテンツサーバ」は Web アプリケーションのコンテンツ(HTML + JavaScript) を提供するサーバです。

../_images/OIDC_Sequence_WebApp.png
  1. ブラウザはコンテンツサーバにアクセスし、コンテンツを取得します。
  2. コンテンツサーバは、OpenID Connect 認証を行うタイミング(認証ボタンをおしたときなど)に、BaaS サーバの OpenID Connect 認証 URL にリダイレクトします。
  3. BaaS サーバは、OpenID Connectプロバイダ (OP) の認証 URL (認可エンドポイント) にリダイレクトします。
  4. OP は認証画面を出すなどして認証を実行します。
  5. 認証が完了したら、OP は認可コードを BaaS サーバにリダイレクトします。
  6. BaaS サーバは取得した認可コードを OP に送信し、認証情報を取得します。
  7. BaaS サーバは認証情報を確認した後、ログイン用のワンタイムトークンを URL に付加してコンテンツサーバにリダイレクトします。
  8. Web アプリケーションは URL からワンタイムトークンを取得し、これを使用して BaaS のログインAPIを呼び出します。
  9. ログインが完了すると BaaS はセッショントークンを払い出します。

上記のうち、1, 2, 8 の処理については Web アプリケーション側で実装する必要があります。

「OIDC 認証ユーザ作成」の場合と「作成済ユーザとのアカウントリンク設定」の場合では、2 で設定するクエリパラメータが異なるだけで、動作シーケンスは同一となります。

6.5.2. ネイティブアプリケーションの場合

ネイティブアプリケーション(Windows, Android, iOS)の場合の動作シーケンスは以下のとおりです。

../_images/OIDC_Sequence_NativeApp.png
  1. OpenID Connect 認証結果を受け取るための Local Web Server(リスナー)を作成します (カスタムURIスキームを利用できない場合)。
  2. OpenID Connect 認証を行うために、ブラウザを起動して BaaS サーバの OpenID Connect 認証 URL にアクセスします。
  3. BaaS サーバは、OpenID Connectプロバイダ (OP) の認証 URL (認可エンドポイント) にリダイレクトします。
  4. OP は認証画面を出すなどして認証を実行します。
  5. 認証が完了したら、OP は認可コードを BaaS サーバにリダイレクトします。
  6. BaaS サーバは取得した認可コードを OP に送信し、認証情報を取得します。
  7. BaaS サーバは認証情報を確認した後、ログイン用のワンタイムトークンを URL に付加し、指定された URL にリダイレクトします。
  8. ネイティブアプリケーションはリダイレクトされた URL からワンタイムトークンを取得し、これを使用して SDK から BaaS のログインAPIを呼び出します。
  9. ログインが完了すると BaaS はセッショントークンを払い出します。

上記のうち、1, 2, 8 の処理についてはネイティブアプリケーション側で実装する必要があります。

「OIDC 認証ユーザ作成」の場合と「作成済ユーザとのアカウントリンク設定」の場合では、2 で設定するクエリパラメータが異なるだけで、動作シーケンスは同一となります。

リダイレクト URL の受け取り方法については以下の2通りがあります。

  • カスタムURIスキームを使用する: Android, iOS の場合は、アプリケーション毎に定義したカスタムURIスキームを利用できます。
  • ローカルWebサーバを使用する: PCのデスクトップアプリのようにカスタムURIスキームを使用できない場合は、アプリケーション内にローカルWebサーバを立ち上げ、http:// でリダイレクトURIを受け取ります。