日本語
  • 同意
  • sso
  • 認証
  • idp

ユーザー同意画面の紹介

ユーザー同意画面とは何か、それはどのように機能するのか?この記事は、ユーザー同意画面の基本的な考え方とその使用方法を説明します。

Simeng
Simeng
Developer

ユーザー同意画面とは

あなたが Google アカウントを使って新しいソーシャルアプリにサインアップしていると想像してみてください。「Google でサインイン」ボタンをクリックし、サインインプロセスを完了するために Google にリダイレクトされます。Google で認証に成功した後、このアプリにあなたの Google アカウントプロファイルへのアクセス権を付与するよう求められるページにリダイレクトされます。こんな感じです:

Google Consent Screen

このページが、いわゆる 同意ページ または 同意画面 です。これはアプリケーションやウェブサイトによってオンボーディングプロセス中に表示されるユーザーインターフェース要素です。その主要な目的は、ユーザーに彼らの個人データの収集、処理、および使用について情報を提供し、これらの活動に対する彼らの明確な同意または許可を求めることです。

同意ページでは、通常、収集されるデータの種類、それがどのように使用されるか、第三者と共有されるかどうかについての情報がユーザーに提示されます。この情報は透明性のために重要であり、ユーザーがプライバシーとデータセキュリティについて情報に基づいた決定を下すことを可能にします。

同意ページは、特に一般データ保護規則(GDPR)やカリフォルニア消費者プライバシー法(CCPA)のようなプライバシー規制の文脈では重要です。これらの規制は、組織にユーザーの個人情報を処理する前に明確で積極的な同意を得ることを要求しています。

同意画面が必要な時はいつですか?

この質問に答える前に、ユーザー認証に関するいくつかの基本的な概念を理解する必要があります。

アイデンティティプロバイダ(IdP)とサービスプロバイダ(SP)

上で述べたように、同意画面の主な目的は、ユーザーに彼らの個人データの収集、処理、および使用について情報を提供し、これらの活動に対する彼らの明確な同意または許可を求めることです。したがって、私たちが他のパーティーが所有する個人データ、例えば Google のデータを収集、処理、使用する場合には、同意画面が必要です。

ユーザー認証の文脈では、ユーザーデータを所有するパーティーを アイデンティティプロバイダ(IdP) と呼びます。ユーザーデータへのアクセスを要求するアプリケーションについては、それを サービスプロバイダ(SP) と呼びます。上記の例では、Google は IdP であり、ソーシャルアプリは SP です。

IdP はユーザーを認証し、ユーザーのプロファイル情報を SP に提供する責任を負います。SP はそのサービスを提供するためにユーザーのプロファイル情報を必要とするパーティーです。

シングルサインオン(SSO)

上記の例では、ソーシャルアプリは、その IdP として Google を使用しています。これは業界で一般的なシナリオです。多くのアプリケーションがその IdP として Google や Facebook、その他のサードパーティサービスを使用しています。これは シングルサインオン(SSO) と呼ばれます。SSO は、関係しているが独立した複数のソフトウェアシステムのアクセスコントロールの特性です。この特性を持つことで、ユーザーは単一の ID とパスワードで複数の関連するアプリケーションにアクセスできるようになります。詳細は CIAM 101: Authentication, Identity, SSO を参照してください。

ファーストパーティとサードパーティ IdP

ファーストパーティ IdP は、SP と同じ組織によって所有されている IdP です。SP は IdP と同じドメイン名を共有することもあります。したがって、SP は同じ組織が所有するユーザーデータへのアクセスを要求します。例えば、Google Workspace を使用している場合、Google はあなたのファーストパーティ IdP です。

サードパーティ IdP は、SP とは異なる組織によって所有されている IdP です。SP はそれ自身が所有していないユーザーデータへのアクセスを要求します。例えば、Google をあなたの IdP として使用し、上記の例のようなソーシャルアプリにサインインする場合、Google はソーシャルアプリに対してサードパーティ IdP です。

ユーザー同意

ユーザーがアプリケーションにサインインする際に、どのデータが収集されてどのように使用されるのかをユーザーが知っていることが重要です。

ファーストパーティ IdP の場合、これらの情報の種類は通常、組織のプライバシーポリシーと利用規約に含まれています。ユーザーは通常、サービスにサインアップする前にプライバシーポリシーと利用規約に同意することが求められます。したがって、ユーザーは既にどのデータが収集されてどのように使用されるのかを知っています。この場合、ユーザーの同意は暗黙的です。

しかし、IdP はそれが所有するデータを厳格に管理することが重要です。IdP は、ユーザーの明確な同意なしに、サードパーティ SP がユーザーデータにアクセスすることを許可するべきではありません。サードパーティ SP によるすべてのデータアクセスはデータ共有活動と見なされます。ユーザーはデータ共有活動について知らされ、それに明示的に同意する必要があります。

したがって、サードパーティ IdP の場合、ユーザーの同意は常に必要です。だからこそ、Google や Facebook、Microsoft のようなすべての主要 IdP は、ユーザーが SP にサインインする前に、SP にユーザーに同意画面を表示することを要求します。

例えば、Google の場合、Google OAuth クライアントを作成しようとすると、詳細な同意画面設定を提供するように求められます。

Google consent screen configuration

これにより、ユーザーがデータ共有活動について知っており、それに明確に同意していることが保証されます。

同意画面にはどの情報が含まれるべきですか?

Consent Screen Demo

同意画面がユーザーに情報に基づいた決定を下すために十分な情報を提供することが重要です。含まれるべきものは以下に限りません:

  • どのパーティー(SP)がユーザーデータへのアクセスを要求しているのか?
  • 現在のユーザーの身元は何か?
  • どのユーザーデータが収集されるのか?
  • ユーザーデータはどのように使用されるのか?
  • 追加の IdP が提供するサービスまたは API が使用されるのか?
  • 追加で SP にどの権限が付与されるのか?
  • SP のプライバシーポリシーは何か?

上記のすべての情報は、同意画面で正確かつ明確に含まれるべきです。ユーザーは、曖昧さなしに情報を理解できるべきです。これは、特に収集されるユーザーデータやそれがどのように使用されるのかについて重要です。

IdP は、ユーザーが同意した目的にのみユーザーデータが使用されることを保証する責任を負います。IdP は SP がユーザーデータをユーザーの明示的な同意なしに他の目的で使用することを許可してはなりません。

結論

要約すると、同意ページはユーザーのデータ処理に関する明示的な許可を得る仕組みとして機能し、透明性とプライバシー法へのコンプライアンスを促進します。 現在、すべての主要な IdP によってサードパーティの SP に対して要求されており、ユーザーのプライバシーとデータセキュリティを保護する上で重要な役割を果たしています。 特にあなたがサードパーティ IdP サービスを提供している場合、重要です。