匿名認証
IBM Cloud® App ID を使用すると、ユーザーがゲストプロファイルを通じてアプリケーションを匿名で閲覧できるようになります。 ユーザーがサインインを選択した場合でも、 App ID を使用して匿名ゲストプロファイルをユーザーIDにアタッチすることで、匿名属性へのアクセスを許可することができます。
段階的な認証について
すぐにサインインしないことを選択したユーザーは、匿名ユーザーと見なされます。 例えば、あるオンライン小売業者があったとします。このオンライン小売り業者は、サインインせずにショッピング・カートにオブジェクトを追加することをユーザーに許可したいと考えています。 ただし、ユーザーが購入を完了するときにはサインインを求めます。 このオンライン小売業者は、ユーザーがサインインすることにしたときは、サインイン前にショッピング・カートに入れていた同じ商品にアクセスできるようにすることができます。
App ID を使用して匿名ユーザーに関する情報を匿名ユーザー・プロファイルに収集し、それを使用して、アプリケーションのエクスペリエンスをパーソナライズできます。 ユーザーがサインインすることにした場合は、匿名プロファイルの一部であるそのユーザーの属性を、App ID に格納されているそのユーザーのユーザー ID にアタッチできます。 匿名プロファイルが有効なのは一時的です。 アプリの開発時に、匿名トークンの存続時間を構成できます。
ユーザーがサインインすると、そのユーザーは識別されたユーザーになります。 識別されたユーザーの既存のプロファイルが存在しない場合は、識別されたユーザーのプロファイルを新しく作成できます。 ユーザーが識別されると、App ID から新規のアクセス・トークンと識別トークンが発行され、そのユーザーの匿名トークンは無効になります。 ただし、識別されたユーザーは引き続き自分の匿名プロファイルの属性にアクセスすることができます。それらの属性には、新しいアクセス・トークンおよび識別トークンでもアクセス可能だからです。
1 つの匿名プロファイルに限り、その属性を App ID に格納されているユーザーの ID にアタッチできます。 例えば、あるユーザーが 2 つの別々のブラウザー・タブで匿名でアプリケーションを閲覧していたとします。 このユーザーは最初のタブで T シャツをショッピング・カートに入れ、2 番目のタブで短パンをカートに入れます。App ID は、各タブでのユーザーとアプリケーションのやりとりを追跡するために、2 つの別々の匿名プロファイルを作成します。
ユーザーが最初のタブからサインインすることにした場合、そのユーザーはサインイン前にカートに入れた T シャツのみにしかアクセスできません。 この場合、App ID は、最初のタブの匿名プロファイルの属性のみを、このユーザーの ID にアタッチします。 このサービスは、2 番目のタブで作成された匿名プロファイルは、App ID に格納されているユーザーの ID にマージしません。 ただし、この場合もまだこのユーザーは 2 番目のタブで匿名で短パンにアクセスできます。この短パンには、2 番目のタブで作成された匿名プロファイルを使用して引き続きアクセス可能であるためです。 識別されたユーザーのプロファイルに匿名属性をアタッチする方法は、アプリの開発時に構成することができます。
段階的認証フローの概要
以下のイメージは、ユーザー、アプリケーション、App ID、および ID プロバイダーの間で行われる段階的認証フローを表す通信の道筋を示しています。
- ユーザーは、認証が不要なアプリの領域と対話します。
- アプリケーションは App ID に、このユーザーが匿名ユーザーとしてアプリと対話することを望んでいることを知らせます。
- App ID は一時的なユーザー・プロファイルを作成し、匿名ユーザーの匿名トークンを発行する OAuth ログインを呼び出します。
- App ID から発行された匿名トークンを使用して、匿名ユーザー・プロファイルに保管される属性の作成、読み取り、更新、削除を行うことができます。
- ユーザーはアプリのより多くの機能にアクセスするために、サインインすることを選択する場合があります。
- アプリケーションは App ID に、このユーザーが識別されたユーザーとしてアプリと対話することを望んでいることを知らせます。
- App ID がアプリにログイン・ウィジェットを返します。
- ユーザーは使用したい ID プロバイダーを選択し、資格情報を提供します。
- アプリケーションは App ID に、ユーザーが ID プロバイダーを選択したことを通知します。
- App ID は ID プロバイダーを使用して呼び出しを認証します。
- ID プロバイダーはログインが正常に行われたかどうかを確認します。
- App ID は匿名トークンを使用して匿名プロファイルを見つけ、それにユーザーの ID をアタッチします。
- App ID が新しいトークンを作成すると、サービスはこのユーザーの匿名トークンを無効化します。
- App ID が新規アクセス・トークンと識別トークンを返します。 これらの新規トークンには、ID プロバイダーから提供された公開情報と、このユーザーの匿名だったときの匿名プロファイルの属性が入っています。
- アプリへのアクセス権限が、ユーザーに付与されます。