クレームのマッピングの例
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
これは、外部のログイン プロバイダーから提供された情報を読み取り、ログオンしたユーザーのプロファイルに保存するユーザー サインイン スクリプトの例です。
ユース ケース
ユース ケース
外部ログイン プロバイダーは、ログオンしたユーザーに関する情報をクレームの形式で提供します。提供されるクレームは、使用するログイン プロバイダーに大きく依存します。
この例は、ログイン プロバイダーとして Google を使用して開発されています。Google は、givenname および surname という 2 つのクレームを提供します。M.UserProfile エンティティ定義には、FirstName および LastName という 2 つのプロパティが含まれると仮定します。このスクリプトは、givenname および surname クレームの値をこれらのプロパティにマッピングします。
「FirstName」および「LastName」プロパティは、最初から用意されているわけではありません。スキーマエディターを使用して追加されています。
スクリプト
スクリプト
スクリプトの説明
スクリプトの説明
-
スクリプトで使用するライブラリをインクルードします。
-
ユーザーは、Basic 認証 (ユーザー名とパスワード) または外部のログイン プロバイダーのいずれかを使用してログインできます。ユーザーが Basic 認証を使用してログオンしている場合、Context.ExternalUserInfo は null になります。この場合、マッピングするクレームはないので、何もせずにスクリプトから戻ります。
-
提供されたクレームから値を抽出します。クレームは、「ClaimTypes」クラスの定数として定義されています。
-
givenname または surname クレームが提供されていない場合は、マッピングする対象がないため、スクリプトから戻ります。
-
ログオンしたユーザーに関連するユーザー プロファイルをロードする必要があります。ログオンしたユーザーは Context.User で指定されます。ユーザー プロファイルは、「UserToUserProfile」リレーションを使用してユーザーに関連付けられます。システム内のすべてのユーザーは、プロファイルが関連付けられているものと予期されます。ユーザー プロファイルが見つからない場合は問題が発生し、例外がスローされます。
-
プロファイル エンティティの「FirstName」プロパティと「LastName」プロパティにデータを入力します。いずれかのクレームが提供されていない場合は、単にスキップしてください。
-
ユーザー プロファイルに加えられた変更をデータベースに保存します。
設定
設定
- ユーザー サインイン スクリプトを作成し、パブリッシュして有効にします。