メインコンテンツへスキップ
テナント内のアプリケーションにアクセスするには、各ユーザーがそのテナント内にプロフィールを持っている必要があります。ユーザープロフィールには、名前や連絡先情報など、ユーザーに関する情報が含まれます。ユーザープロフィールは、Auth0 DashboardAuth0 Management API で管理できます。

ユーザーデータソース

ユーザーデータは、自社のデータベースだけでなく、ソーシャル、法律関連、エンタープライズのなど、さまざまなソースから取得できます。たとえば、Google、Facebook、Active Directory、 などがあります。サポートされている任意のデータソースから取得したユーザーデータは正規化できます。 ユーザープロフィール属性には、IDプロバイダーからの情報を含めることができます。以下に例を示します。
ユーザーデータの取得元含まれる可能性がある情報
LinkedIn現在の勤務先や取得した学位
Facebookプロフィール写真、誕生日、交際ステータス
Active Directory社員番号、役職、部署
Auth0 では、すべてのユーザーデータソースを 接続 と呼びます。これは、Auth0 がそれらに接続してユーザーを認証するためです。

ユーザーデータの正規化

Auth0 は、さまざまな IDプロバイダーデータベース接続 をサポートしています。各接続から返されるユーザー属性のセットは異なる場合があります。また、接続によっては、同じ属性に別の名前が使われることもあります。たとえば、ある接続の surname が、別のユーザーデータソースでは last_namefamily_name になっている場合があります。 こうした複雑さに対処するため、Auth0 では、ユーザーデータを保存するための Auth0 独自の標準である Normalized User Profile を提供しています。
Auth0 の ユーザープロファイルのデータ構造 を表示するには、Dashboard > User Management > Users に移動し、ユーザーをクリックします。

ユーザープロフィールの属性マッピング

AD/LDAP Connector

Auth0 AD/LDAP Connector を使用する Active Directory やその他の LDAP 接続では、ディレクトリサービス内のユーザープロフィール属性を Auth0 の Normalized User Profile にマッピングする仕組みがあります。AD/LDAP Connector のインストールディレクトリにある profileMapper.js ファイルによって、ユーザーの認証時に属性がマッピングされます。

SAML アサーション

アプリケーションが Auth0 との通信に SAML プロトコルを使用している場合、ユーザー属性を Auth0 の Normalized User Profile に対応付ける方法は 2 つあります。
If Auth0 is a…Then…
SAML Service ProviderSAML 接続の Mappings タブを使用して、IdP から渡される属性を Auth0 ユーザープロフィールの属性にマッピングします。Dashboard > Authentication > Enterprise > SAMLP に移動します。SAML 接続の名前をクリックし、Mappings をクリックします。
SAML Identity ProviderApplication AddOns の Settings タブを使用して、Auth0 ユーザープロフィールの属性を、サービスプロバイダーに返される SAML アサーション内の属性にマッピングします。Dashboard > Applications に移動します。アプリケーションの名前をクリックし、Addons をクリックしてから、SAML2 Web App をクリックします。

アカウントのリンク

ユーザーは、最初は 1 つの接続 (カスタムデータベースなど) を使用してアプリケーションにログインし、その後で別の接続 (Facebook など) を使用してログインできます。この場合、2 回目の認証の user_id は、1 回目の認証の user_id とは異なります。 Auth0 には、この 2 つのアカウントをリンクする仕組みがあります。Auth0 が 2 つのアカウントをリンクすると、ユーザープロフィールの identities 配列に、各接続に対応する要素が 1 つずつ、合計 2 つ保存されます。 Auth0 は、複数のプロバイダーから取得したユーザープロフィール属性をマージしません。Auth0 は、最初に使用されたプロバイダーから コア ユーザープロフィール属性を取得します。 詳細については、ユーザーアカウントのリンク を参照してください。

ユーザープロフィールのキャッシュ

Auth0 は、接続から受け取ったユーザープロフィールを、呼び出し元のアプリケーションに渡す前にキャッシュします。このキャッシュは Auth0 のデータベースに保存されます。ユーザーが認証されるたびに、Auth0 はこのキャッシュを更新します。詳細については、データベースを使用してユーザープロフィールを更新するを参照してください。

カスタムユーザープロフィールデータ

Auth0 では、metadata を保存できます。これは、IDプロバイダーから提供されるものではない、各ユーザーに関連するデータです。user_metadata を使用すると、ユーザーの好きな色や趣味などのカスタム属性を保存できます。

ユーザープロフィールデータを変更する

ユーザーのプロフィール情報は、いくつかの方法で変更できます。
  • Scopes: Auth0 でサポートされている認証フローには、スコープを指定できるオプションのパラメーターがあります。これにより、 () に含めるユーザープロフィール情報 (クレーム) を制御できます。
  • Auth0 Dashboard: Dashboard では、任意のユーザーのプロフィール内の user_metadataapp_metadata を手動で編集できます。
  • Management API: Auth0 データベースに保存されているユーザープロフィールの読み取り、更新、削除を行えます。
  • Custom database scripts: 接続としてカスタムデータベースを使用している場合は、作成、ログイン、検証、削除、パスワード変更などのライフサイクルイベントを実装するスクリプトを作成できます。Auth0 には、利用するデータベースやスキーマに合わせて変更できる、これらのスクリプト用テンプレートが用意されています。
  • Rules: 認証トランザクション中に Rules を使用してユーザープロフィールを拡張し、必要に応じてその変更を Auth0 に永続化できます。

ユーザープロフィールにアクセスする

アプリと Auth0 の は、どちらもユーザーのプロフィール情報にアクセスできます。

アプリからユーザープロフィールにアクセスする

Auth0 が認証を完了してアプリケーションに制御を戻すと、ユーザープロフィールがアプリケーションに提供されます。これを低レベルで実装するには、Auth0 がサポートしているアプリケーション プロトコル のいずれかを使用できます。ただし、ほとんどの開発者は Auth0 SDK の使用を選びます。詳しくは、クイックスタート を参照してください。 SDK の 1 つに、ユーザー向けのログインインターフェースを提供する Auth0 Lock ウィジェットがあります。詳しくは、次を参照してください。 Web アプリにカスタムのログイン UI を実装したい場合は、Auth0.js を使用できます。この Auth0 向けのヘッドレス JavaScript ライブラリは、認証フロー (およびその他のタスク) を呼び出し、戻り値としてユーザープロフィール オブジェクトを受け取ります。詳しくは、Auth0.js v9 Reference を参照してください。

Management API からユーザープロフィールにアクセスする

Auth0 では、アプリケーションやサービスが ユーザープロフィール オブジェクトにアクセスし、操作できる REST API を提供しています。 API Explorer では、Management API をインタラクティブに確認できます。次の情報が提供されます。
  • 利用可能な API コール
  • 各コールに必要な情報
  • 各コールから返される情報
API Explorer を使うと、Explorer UI またはコマンドラインでの CuRL コマンドを通じて、各エンドポイントを試すことができます。Management API のコマンドを試すには、API Explorer に移動します。選択したコマンドの Scopes で、update:users など必要なアクセス権を選択し、TRY をクリックします。 Auth0 Authentication API は、認証フロー専用の API です。詳しくは、Authentication API Explorer を参照してください。通常、これらのエンドポイントの大半は独自のコードではなく、各種 Auth0 SDK で使用されます。

ユーザープロフィールとトークンの違い

上記で説明した認証フローでは、Auth0 は完全なユーザープロフィールの代わりに、一連のトークンを返します。 返されるトークンの 1 つが IDトークン です。これは、ユーザープロフィールの属性を claims として含む JSON Web Token (JWT) です。これらの claims は、ユーザーに関する情報を表す記述です。トークンの利用側が署名を検証できれば、その claim は信頼できます。この署名は (HS256 の場合) Auth0 アプリの を使って生成されます。アプリで RS256 を使用している場合、IDトークン は秘密鍵で署名され、公開鍵で検証されます。その後、アプリは JWT をデコードして、そのペイロードに含まれるユーザー情報を取得できます。この情報の例としては、ユーザーの名前、メールアドレス、その他、通常はユーザー体験の一部となるデータが挙げられます。 JWT 内の claims には、一般にユーザープロフィールで利用できる情報の一部しか含まれません。その目的は、トークンのサイズを最小限に抑えることです。詳しくは、JSON Web Tokens を参照してください。 認証時に返されるトークンには、ほかに 3 種類あります。
  • Auth0
  • サードパーティープロバイダーのアクセストークン
トークンと claims の詳細については、Tokens を参照してください。

詳しく見る