プロファイル管理(B2B)
いずれかの時点で、ユーザーのプロファイルに保存されている情報を変更する必要が生じることがあります。ユーザーのプロファイル(ユーザーアカウントとも呼ばれる)はAuth0に保存されており、さまざまな理由でその情報に変更を加えることが必要になる場合があります。
セルフサービスでの情報の更新
組織の利用規約に関する必須の更新
規制順守に伴う更新
IDプロバイダーは、ログインプロセス中に提供されたデータを使用してユーザープロファイルに情報を自動入力します。これを正規化ユーザープロファイルと呼びます。
デフォルトでは、各ユーザーIDに対して1つのユーザープロファイルが作成されますが、考慮すべき点がいくつかあります。
ユーザーエクスペリエンスをカスタマイズするために情報を保存する必要がある場合、何をすべきか?
IDプロバイダー由来ではないユーザー情報を保存する必要がある場合、どうすればいいか?
ユーザーが変更できないユーザー関連情報を保存する必要があるのはなぜか?
ユーザーが変更できないユーザー関連情報を保存する必要がある場合、どうすればいいか?
ユーザーがパスワードを忘れた場合、どうなるのか?
ユーザーは、パスワードを変更したい場合に何をすべきか?
サードパーティー組織の管理者にユーザーを管理する機能を提供するにはどうすればいいか?
Auth0には、ユーザープロファイルに対するメタデータのストレージがあるため、これによって言語やアクセシビリティの好みなどの追加情報を取得し、ユーザーエクスペリエンスを向上させることができます。メタデータは、ユーザーが変更できる情報と、変更できない情報の両方を保存するために使用できます。後者の情報を使うと、既存の実装を変更することなく、ユーザープロファイルを既存のシステム内のレコードに関連付けることができます。
パスワードを忘れたユーザーや、既存のセルフサービスのメカニズム(または計画したセルフサービスのメカニズム)を使ってパスワードを変更することが許可されているユーザーに対しては、Auth0が提供するパスワードリセット機能を活用することができます。これは既存の実装と統合することができ、ユニバーサルログインを含む既成のAuth0 UIウィジェットにもすでに組み込まれています。
また、常に検証済みのユーザーアカウントで作業していることを確認する必要があります。Auth0では、そのための既成のメカニズムも用意されています。また、EU市民のプライバシーを守り、データ侵害から市民を保護するために非常に具体的な要件を設けている、GDPRなどの規制順守も考慮すべきです。
Auth0では現在、一元化された既成のプロファイル管理ポータルを提供していませんが、セルフサービスによるプロファイル管理を目的として、Auth0 Management APIを使用する独自のUIを構築したり、すでに構築済みのUIを利用したりすることができます。Management APIエンドポイントについて解説しているAuth0のコミュニティガイダンスを参照してください。Management APIへのすべての呼び出しには、アクセストークンを使用する必要があります。
あるいは、Auth0 Dashboardを使用して、ユーザーのプロファイル要素を管理することもできます。Auth0 Dashboardを通じたユーザープロファイルの管理は、主に管理目的のプロビジョニングであり、運用環境におけるセルフサービス型のプロファイル管理に使用すべきではありません。ただし、Dashboardで提供されるインターフェイスを使うと、ユーザーのプロファイル情報を迅速かつ簡単に操作できるため、開発時に非常に便利です。
お客様の資格情報をこちらのシステムに保管しているときに、管理者が自分のユーザーを管理できる方法をお客様に提供する必要がある場合は、自分で作成するか、Auth0拡張機能を利用することができます。詳しくは、「管理者ポータル」を参照してください。
Metadata(メタデータ)
正規化ユーザープロファイル情報に加えて、メタデータもAuth0のユーザープロファイルに保存することができます。」メタデータは、IDプロバイダー由来ではない情報を保管する方法、またはIDプロバイダーから提供された情報を上書きする情報を保管する方法を提供します。
ベストプラクティス
メタデータを使用するには、Auth0「ユーザーデータ保存のベストプラクティス」に従ってください。メタデータの保存は汎用のデータストアとして設計されておらず、可能な限り独自の外部ストレージ施設を使用するべきです。メタデータのサイズと複雑さは最小に保たれるべきで、Auth0 Management APIにはユーザーに関連するメタデータの更新および/または削除についての厳格な一連のガイダンスがあります。
メタデータは、Auth0 Management APIとAuth0 Authentication APIの両方を通じて操作できます。正規化ユーザープロファイルを管理する場合と同様に、メタデータを操作するためにManagement APIを呼び出す際には、アクセストークンの使用が必要になります。
ユーザーメタデータ
ユーザーメタデータ(user_metadata
とも呼ばれる)は、ユーザープロファイルに対して保存できる情報で、ユーザーはセルフサービス型のプロファイル管理の一環として、読み取りおよび更新することができます。ユーザーメタデータには、ユーザーの敬称、使用する言語などが含まれており、Auth0から送信するメールのカスタマイズに使用されます。
ベストプラクティス
Auth0のメールをカスタマイズするために使用する情報は、メタデータに保存し、ユーザーが変更できる場合(メールの言語を決定するために使用される情報など)は可能な限りuser_metadata
に保存しましょう。
アプリメタデータ
一方、アプリメタデータ(app_metadata
とも呼ばれる)は、ユーザープロファイルと一緒に保存することができる情報ですが、適切な認可がなければ読み込んだり更新したりすることができません。app_metadata
はユーザーが直接アクセスできるものではありません。アプリメタデータには、ユーザーが最後に承認した有効な利用規約のセットを示すフラグや、ユーザーがこれをいつ承認したかを示す日時などが含まれます。
パスワードリセット
パスワードを忘れたユーザーや、既存のセルフサービスのメカニズムを使ってパスワードを変更することが許可されているユーザーに対して、Auth0はパスワードリセット機能を提供しています。これは既存の実装と統合することができ、ユニバーサルログインの一部として既成のAuth0 UIウィジェットにもすでに組み込まれています。
Auth0ユニバーサルログインには、Auth0 Authentication API機能を使用したパスワードリセットのUXサポートが組み込まれています。別の方法として、お使いの開発環境に適したAuth0 SDKのいずれかを通じて、Auth0 Authentication APIを使用することもできます。パスワードリセットのワークフローで使用されるメールテンプレートは、Auth0の既成のUIウィジェットを使用する場合でも、カスタマイズされたユニバーサルログインを使用する場合でも、完全にカスタマイズが可能です。
一方で、Auth0 Management APIを使用すると、データベース接続タイプで定義されたユーザーIDのパスワードを直接変更することができます。Auth0 Management APIを、セルフサービス型プロファイル管理の実装の一部として、また、パスワード変更ページのカスタマイズの一部として使用することができます。
アカウントの検証
常に検証済みのユーザーアカウントを使用し、Auth0が提供するメカニズムを利用する必要があります。また、EU市民のプライバシーを守り、データ侵害から市民を保護するために非常に具体的な要件を設けている、GDPRなどの規制順守も考慮すべきです。
Auth0には、アカウントを検証するためにユーザーのメールアドレスに検証メールを送信する既成の機能があります。デフォルトでは、Auth0はセルフサインアップの一環として作成されたデータベース接続のIDに対して、自動的に検証メールを送信します。ただし、Auth0は、ユーザー登録時にソーシャルプロバイダーによるメールアドレスの検証が行われない場合に、検証メールの送信に使用できるManagement APIエンドポイントも提供しています。
ユーザーのブロック
Auth0でユーザーアクセスをブロックすることで、特定の条件下でのユーザーのアプリケーションへのログインを防ぐことができます。デフォルトでは、Auth0 Dashboardには、すべてのアプリケーションへのユーザーアクセスをブロックおよびブロック解除できる機能を管理者に提供する既成のメカニズムがあります。この機能は、Auth0 Management APIを使用して実装することもできます。また、Auth0の拡張性を利用して、特定のアプリケーションへのユーザーアクセスを無効にしたり、よりきめ細かいアクセス制御を行ったりすることもできます。
さらに、Auth0 Management APIには、正しくない資格情報の使いすぎによって無効にされたユーザーのブロックを解除する機能もあります。
管理者ポータル
管理者ポータルは、新しいユーザーを作成したり、ユーザープロファイルを編集したり、ユーザーに関するアクティビティを確認したりできるアプリケーションです。このアプリケーションは、管理者のみがアクセスできるようにする必要があります。Auth0は管理ダッシュボードを提供していますが、管理ダッシュボードへのアクセスを多くの人に許可することは推奨されません。誰かが意図せずにAuth0テナントを壊してしまう方法が数多くあるからです。Auth0では、代わりに他のオプションを2つ提供しています。
Auth0 Management API:Management APIを使うと、管理者にユーザーを管理する機能を提供するアプリケーションを簡単に構築することができます。これを管理者向けにすでに存在する既存のアプリケーションに組み込むか、または現在のアプリケーションと一致するUIを持つ新しいアプリケーションを作成することができます。
Auth0委任管理拡張機能:この強力で柔軟な拡張機能を使うことにより、ユーザー管理エクスペリエンスをカスタマイズすることができます。この拡張機能をカスタマイズすることで、お客様の管理者がログインし、自分たちの組織内のユーザーだけを表示および管理できるようにすることができます。
ベストプラクティス
管理者がユーザーを管理するための独自の方法を提供する場合、管理者に直接パスワードを設定させるのではなく、管理者がユーザーにメールでパスワード変更リンクを送れるようにするべきです。この推奨に反して管理者がパスワードを設定できるようにする場合は、次回のログイン時にユーザーにパスワードの変更を強制して、パスワードを知っているのはユーザーだけにしましょう(管理者も知っているということがないようにします)。
プロジェクト計画ガイド
当社では、PDF形式の計画ガイダンスを提供しています。ダウンロードして、推奨される戦略の詳細を参照してください。
B2B IAM Project Planning Guide複数Organizationアーキテクチャ(マルチテナント機能)
B2Bプラットフォームの多くが顧客のOrganizationを何らかの形で分離・ブランディングし、これがIDおよびアクセス管理(IAM)システムをさらに複雑にしています。この問題でお困りであれば、当社がそのような環境に合ったガイダンスとベストプラクティスをご紹介していますので、時間を割いてお読みになることをお勧めします。