ユーザー プロファイルの属性

Azure Active Directory B2C (Azure AD B2C) ディレクトリのユーザー プロファイルには、一連の組み込み属性 (名、姓、市区町村、郵便番号、電話番号など) があります。 外部のデータ ストアを必要とせずに、ユーザー プロファイルを独自のアプリケーション データで拡張できます。

Microsoft Graph API では、Azure で使用できるほとんどの属性がサポートされています。この記事では、Azure AD B2C でサポートされるユーザー プロファイル属性について説明します。 また、Microsoft Graph でサポートされていない属性と、Azure AD B2C で使用すべきではない Microsoft Graph API 属性についても説明します。

重要

機密性の高い個人データ (アカウントの資格情報、政府の識別番号、カード所有者のデータ、金融口座データ、医療情報、機密性の高い経歴情報など) を保存するために組み込み属性または拡張属性を使用しないでください。

外部システムとの統合も可能です。 たとえば、認証には Azure AD B2C を使用できますが、顧客データの信頼できるソースとしての機能は、外部の顧客関係管理 (CRM) や顧客ロイヤルティ データベースに委任します。 詳細については、リモート プロファイル ソリューションに関する記事を参照してください。

Microsoft Entra ユーザー リソースの種類

Azure AD B2C ディレクトリ ユーザー プロファイルでは、以下の表に一覧表示されているユーザー リソースの種類の属性がサポートされています。 各属性について次の情報を提供します。

  • Azure AD B2C で使用される属性名 (その後のかっこ内は Microsoft Graph での属性名 (異なる場合))
  • 属性のデータ型
  • 属性の説明
  • 属性を Azure portal で使用できるかどうか
  • 属性をユーザー フローで使用できるかどうか
  • 属性をカスタム ポリシーの Microsoft Entra ID 技術プロファイルで使用できるかどうか、およびどのセクション (<InputClaims>、<OutputClaims>、または <PersistedClaims>) で使用できるか
名前 日付タイプ 説明 Azure portal で利用可能 ユーザー フローで使用される カスタム ポリシーで使用される
accountEnabled Boolean ユーザー アカウントが有効か無効か: アカウントが有効の場合は true、それ以外の場合は false はい いいえ Persisted、Output
ageGroup String ユーザーの年齢グループ。 指定できる値: null、Undefined、Minor、Adult、NotAdult。 はい いいえ Persisted、Output
alternativeSecurityId (Identities) String 外部 ID プロバイダーからの単一ユーザー ID。 いいえ いいえ Input、Persisted、Output
alternativeSecurityIds (Identities) 代替のセキュリティ ID コレクション 外部 ID プロバイダーからのユーザー ID のコレクション。 いいえ いいえ Persisted、Output
city String ユーザーの居住市。 最大長 128。 はい はい Persisted、Output
consentProvidedForMinor String 未成年について同意が提供されているかどうか。 使用できる値: null、granted、denied、または notRequired。 はい いいえ Persisted、Output
country String ユーザーの居住国/地域。 例: USUK。 最大長 128。 はい はい Persisted、Output
createdDateTime DateTime ユーザー オブジェクトが作成された日付。 読み取り専用。 いいえ いいえ Persisted、Output
creationType String ユーザー アカウントが Azure Active Directory B2C テナントのローカル アカウントとして作成された場合、値は LocalAccount または nameCoexistence です。 読み取り専用。 いいえ いいえ Persisted、Output
dateOfBirth Date 誕生日。 いいえ いいえ Persisted、Output
department String ユーザーが勤務する部署の名前。 最大長 64。 はい いいえ Persisted、Output
displayName String ユーザーの表示名。 最大長 256。 <> 文字は使用できません。 はい はい Persisted、Output
facsimileTelephoneNumber1 String ユーザーの業務用ファックスの電話番号。 はい いいえ Persisted、Output
givenName String ユーザーの名。 最大長 64。 はい はい Persisted、Output
jobTitle String ユーザーの役職。 最大長 128。 はい はい Persisted、Output
immutableId String オンプレミスの Active Directory から移行されたユーザーに通常使用される識別子。 いいえ いいえ Persisted、Output
legalAgeGroupClassification String 法的年齢グループの分類。 読み取り専用で、ageGroup および consentProvidedForMinor プロパティに基づいて計算されます。 使用可能な値: null、minorWithOutParentalConsent、minorWithParentalConsent、minorNoParentalConsentRequired、notAdult、および adult。 はい いいえ Persisted、Output
legalCountry1 String 国またはリージョン (法的な目的)。 いいえ いいえ Persisted、Output
mailNickName String ユーザーのメール エイリアス。 最大長 64。 いいえ いいえ Persisted、Output
mobile (mobilePhone) String ユーザーのメインの携帯電話番号。 最大長 64。 はい いいえ Persisted、Output
netId String Net ID。 いいえ いいえ Persisted、Output
objectId String ユーザーの一意識別子であるグローバル一意識別子 (GUID)。 例:12345678-9abc-def0-1234-56789abcde。 読み取り専用で、変更できません。 読み取り専用 はい Input、Persisted、Output
otherMails 文字列コレクション ユーザーの他の電子メール アドレスの一覧。 例: ["bob@contoso.com", "Robert@fabrikam.com"]。 注: アクセント文字は使用できません。 はい (連絡用電子メール アドレス) いいえ Persisted、Output
password String ユーザー作成時のローカル アカウントのパスワード。 いいえ いいえ Persisted
passwordPolicies String パスワードのポリシー。 コンマで区切られた複数のポリシー名で構成される文字列です。 たとえば、"DisablePasswordExpiration, DisableStrongPassword"。 いいえ いいえ Persisted、Output
physicalDeliveryOfficeName (officeLocation) String ユーザーの勤務先のオフィス所在地。 最大長 128。 はい いいえ Persisted、Output
postalCode String ユーザーの住所の郵便番号。 郵便番号は、ユーザーの国/地域に固有のものです。 米国では、この属性に ZIP コードが含まれます。 最大長 40。 はい いいえ Persisted、Output
preferredLanguage String ユーザーの優先言語。 優先される言語形式は RFC 4646 を基準とします。 名前は、言語に関連付けられた ISO 639 の 2 文字の小文字カルチャ コードと、国または地域に関連付けられた ISO 3166 の 2 文字の大文字サブカルチャ コードの組み合わせです。 例: en-USes-ES いいえ いいえ Persisted、Output
refreshTokensValidFromDateTime (signInSessionsValidFromDateTime) DateTime この日時より前に発行された更新トークンは無効です。無効な更新トークンを使用して新しいアクセス トークンを取得すると、アプリケーションでエラーが発生します。 この場合、アプリケーションでは、承認エンドポイントに対して要求を行うことによって、新しい更新トークンを取得する必要があります。 読み取り専用です。 いいえ いいえ 出力
signInNames (Identities) String ディレクトリ内の任意の種類のローカル アカウント ユーザーの一意のサインイン名。 ローカル アカウントの種類を指定せずにサインイン値でユーザーを取得するには、この属性を使用します。 いいえ いいえ 入力
signInNames.userName (Identities) String ディレクトリ内のローカル アカウント ユーザーの一意のユーザー名。 特定のサインイン ユーザー名でユーザーを作成または取得するには、この属性を使用します。 パッチ操作中に PersistedClaims 単独でこの属性を指定すると、他の種類の signInNames は削除されます。 新しい種類の signInNames を追加する場合は、既存の signInNames も保持する必要があります。 注: ユーザー名にアクセント文字は使用できません。 いいえ いいえ Input、Persisted、Output
signInNames.phoneNumber (Identities) String ディレクトリ内のローカル アカウント ユーザーの一意の電話番号。 特定のサインイン電話番号でユーザーを作成または取得するには、この属性を使用します。 パッチ操作中に PersistedClaims 単独でこの属性を指定すると、他の種類の signInNames は削除されます。 新しい種類の signInNames を追加する場合は、既存の signInNames も保持する必要があります。 いいえ いいえ Input、Persisted、Output
signInNames.emailAddress (Identities) String ディレクトリ内のローカル アカウント ユーザーの一意のメール アドレス。 特定のサインイン メール アドレスを持つユーザーを作成または取得するには、この属性を使用します。 パッチ操作中に PersistedClaims 単独でこの属性を指定すると、他の種類の signInNames は削除されます。 新しい種類の signInNames を追加する場合は、既存の signInNames も保持する必要があります。 いいえ いいえ Input、Persisted、Output
state String ユーザーの住所の都道府県。 最大長 128。 はい はい Persisted、Output
streetAddress String ユーザーの勤務地の番地。 最大長 1024。 はい はい Persisted、Output
strongAuthentication AlternativePhoneNumber1 String 多要素認証に使用される、ユーザーの 2 次電話番号。 はい いいえ Persisted、Output
strongAuthenticationEmailAddress1 String ユーザーの SMTP アドレス。 例: "bob@contoso.com"。この属性は、ユーザー名ポリシーでのサインインで、ユーザーの電子メール アドレスを保存するために使用されます。 この電子メール アドレスは、パスワード リセット フローで使用されます。 この属性ではアクセント文字は使用できません。 はい いいえ Persisted、Output
strongAuthenticationPhoneNumber2 String 多要素認証に使用される、ユーザーの 1 次電話番号。 はい いいえ Persisted、Output
surname String ユーザーの姓。 最大長 64。 はい はい Persisted、Output
telephoneNumber (businessPhones の最初のエントリ) String ユーザーの勤務地の 1 次電話番号。 はい いいえ Persisted、Output
userPrincipalName String ユーザーのユーザー プリンシパル名 (UPN)。 UPN は、インターネット標準 RFC 822 に基づくユーザーのインターネット形式のログイン名です。 ドメインがテナントの確認済みドメインのコレクションに存在している必要があります。 このプロパティは、アカウントを作成するときに必要です。 変更不可。 いいえ いいえ Input、Persisted、Output
usageLocation String 法的要件のためにライセンスを割り当てられるユーザーが、国/地域でサービスを利用できるかどうかを確認するのに必要です。 NULL 値は許可されません。 2 文字の国またはリージョン番号 (ISO 標準 3166)。 たとえば、USJPGB です。 はい いいえ Persisted、Output
userType String ディレクトリ内のユーザー タイプを分類するために使用できる文字列値。 値は Member にする必要があります。 読み取り専用です。 読み取り専用 いいえ Persisted、Output
userState (externalUserState)3 String Microsoft Entra B2B アカウントの場合のみ、招待が PendingAcceptance であるか Accepted であるかを示します。 いいえ いいえ Persisted、Output
userStateChangedOn (externalUserStateChangeDateTime)2 DateTime UserState プロパティに対する最新の変更のタイムスタンプを示します。 いいえ いいえ Persisted、Output

1 Microsoft Graph ではサポート対象外
2 詳細については、「MFA 電話番号属性」を参照してください
3 Azure AD B2C では使用不可

必須属性

Azure AD B2C ディレクトリにユーザー アカウントを作成するには、次の必須属性を指定します。

  • 表示名

  • ID - 少なくとも 1 つのエンティティ (ローカル アカウントまたはフェデレーション アカウント) を使用します。

  • パスワード プロファイル - ローカル アカウントを作成する場合は、パスワード プロファイルを指定します。

表示名属性

displayName は、ユーザーに対して Azure portal ユーザー管理で表示され、Azure AD B2C がアプリケーションに返すアクセス トークンで表示される名前です。 このプロパティは必須です。

ID 属性

顧客アカウント (コンシューマー、パートナー、または一般ユーザー) は、次の ID の種類に関連付けることができます。

  • ローカル ID - ユーザー名とパスワードは、Azure AD B2C ディレクトリにローカルに格納されます。 これらの ID は、"ローカル アカウント" とよく呼ばれます。
  • フェデレーション ID - "ソーシャル" または "エンタープライズ" アカウントとも呼ばれ、ユーザーの ID は、Facebook、Microsoft、ADFS、Salesforce などのフェデレーション ID プロバイダーによって管理されます。

顧客アカウントを持つユーザーは、複数の ID でサインインできます。 たとえば、ユーザー名、電子メール、従業員 ID、政府 ID などです。 1 つのアカウントで、同じパスワードを持つ複数の ID (ローカルとソーシャルの両方) を持つことができます。

Microsoft Graph API では、ローカル ID とフェデレーション ID の両方が、objectIdentity 型のユーザー identities 属性に格納されます。 identities コレクションは、ユーザー アカウントへのサインインに使用される一連の ID を表します。 このコレクションにより、ユーザーは、関連付けられた任意の ID を使用してユーザー アカウントにサインインできます。 識別子属性には最大 10 個の objectIdentity オブジェクトを含めることができます。 各オブジェクトには次のプロパティが含まれます。

名前 タイプ 説明
signInType string お使いのディレクトリ内のユーザー サインインの種類を指定します。 ローカル アカウントの場合: emailAddressemailAddress1emailAddress2emailAddress3userName、または他の任意の種類。 ソーシャル アカウントは federated に設定する必要があります。
発行者 string ID の発行者を指定します。 ローカル アカウント (signInTypefederated でない) の場合、このプロパティは、ローカル B2C テナントの既定のドメイン名 (contoso.onmicrosoft.com など) になります。 ソーシャル ID (signInTypefederated) の場合、値は発行者の名前 (facebook.com など) になります。
issuerAssignedId string 発行者がユーザーに割り当てる一意識別子を指定します。 issuerissuerAssignedId の組み合わせは、テナント内で一意である必要があります。 ローカル アカウントの場合、signInTypeemailAddress または userName に設定されているときは、ユーザーのサインイン名を表します。
signInType が次のように設定されている場合:
  • emailAddress (または、emailAddress1 のように emailAddress で始まる)。issuerAssignedId は有効なメール アドレスである必要があります
  • userName (または、その他の値)。issuerAssignedId は、メール アドレスの有効なローカル部分である必要があります
  • federatedissuerAssignedId は、フェデレーション アカウントの一意識別子を表します

次の JSON スニペットは Identities 属性を示しており、サインイン名を含むローカル アカウント ID、サインインとしての電子メール アドレス、およびソーシャル ID を備えています。

"identities": [
  {
    "signInType": "userName",
    "issuer": "contoso.onmicrosoft.com",
    "issuerAssignedId": "johnsmith"
  },
  {
    "signInType": "emailAddress",
    "issuer": "contoso.onmicrosoft.com",
    "issuerAssignedId": "jsmith@yahoo.com"
  },
  {
    "signInType": "federated",
    "issuer": "facebook.com",
    "issuerAssignedId": "5eecb0cd"
  }
]

フェデレーション ID の場合、ID プロバイダーによっては、issuerAssignedId は、アプリケーションごとの特定のユーザーまたは開発アカウントの一意の値です。 ソーシャル プロバイダーまたは同じ開発アカウント内の別のアプリケーションによって割り当てられるものと同じアプリケーション ID で、Azure AD B2C ポリシーを構成します。

パスワード プロファイル プロパティ

ローカル ID の場合、passwordProfile 属性が必須であり、これにはユーザーのパスワードが含まれています。 forceChangePasswordNextSignIn 属性は、ユーザーが次回サインイン時にパスワードをリセットする必要があるかどうかを示します。 パスワードの強制リセットを処理するには、パスワードの強制リセット フローの設定の指示に従います。

フェデレーション (ソーシャル) ID の場合、passwordProfile 属性は必須ではありません。

"passwordProfile" : {
    "password": "password-value",
    "forceChangePasswordNextSignIn": false
  }

パスワード ポリシー属性

Azure AD B2C の (ローカル アカウントの) パスワード ポリシーは、Microsoft Entra ID の強力なパスワード強度ポリシーに基づいています。 Azure AD B2C のサインアップまたはサインインとパスワード リセットの各ポリシーでは、この強力なパスワード強度を必要とし、パスワードに有効期限がありません。

ユーザー移行シナリオでは、移行するアカウントのパスワード強度が、Azure AD B2C によって適用された強力なパスワード強度より弱い場合は、強力なパスワードという要件を無効にすることができます。 既定のパスワード ポリシーを変更するには、passwordPolicies 属性を DisableStrongPassword に設定します。 たとえば、ユーザー作成要求を次のように変更できます。

"passwordPolicies": "DisablePasswordExpiration, DisableStrongPassword"

MFA 電話番号属性

多要素認証 (MFA) に電話を使用する場合は、ユーザー ID を確認するために携帯電話を使用します。 新しい電話番号をプログラムによって追加し、電話番号の更新取得削除を行うには、MS Graph API phone authentication method を使用します。

Azure AD B2C のカスタム ポリシーでは、電話番号は要求の種類 strongAuthenticationPhoneNumber を通じて利用できます。

拡張属性

すべての顧客向けアプリケーションには、収集する情報についての固有の要件があります。 Azure AD B2C テナントには、名、姓、郵便番号などのプロパティに格納された組み込みの一連の情報が用意されています。 Azure AD B2C では、各顧客アカウントに格納されている一連のプロパティを拡張できます。 詳細については、「Azure Active Directory B2C でユーザー属性を追加してユーザー入力をカスタマイズする」を参照してください。

拡張属性は、ディレクトリ内のユーザー オブジェクトのスキーマを拡張します。 拡張属性は、ユーザーに関するデータを保持できる場合でも、アプリケーション オブジェクトにしか登録できません。 拡張属性は、b2c-extensions-app というアプリケーションに関連付けられます。 Azure AD B2C は、ユーザー データを保存するためにこのアプリケーションを使用します。このため、このアプリケーションは変更しないでください。 このアプリケーションは、Microsoft Entra アプリの登録 から確認できます。 Azure AD B2C に関する詳細b2c-extensions-app

注意

  • 任意のユーザー アカウントに最大 100 個の拡張機能属性を書き込むことができます。
  • b2c-extensions-app アプリケーションが削除されると、これらの拡張属性は、格納されているデータと共に、すべてのユーザーから削除されます。
  • 拡張属性は、アプリケーションによって削除されると、すべてのユーザー アカウントから削除され、その値も削除されます。

Graph API の拡張属性には、extension_ApplicationClientID_AttributeName という規則を使って名前が付けられます。

拡張属性の名前を作成するときに使用されるアプリケーション (クライアント) ID にはハイフンは含まれません。 次に例を示します。

"extension_831374b3bd5041bfaa54263ec9e050fc_loyaltyNumber": "212342"

スキーマ拡張で属性を定義する場合、次のデータ型がサポートされます。

Type 解説
Boolean 使用可能な値: True または False
DateTime ISO 8601 形式で指定する必要があります。 値は UTC で格納されます。
整数型 32 ビット値。
String 最大 256 文字。

次のステップ

拡張属性に関する詳細情報: