使用者配置檔屬性
您的 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 入口網站 中使用
- 屬性是否可以在使用者流程中使用
- 屬性是否可用於自定義原則 Microsoft Entra ID 技術配置檔,以及哪個區段 (<InputClaims、<OutputClaims>> 或 <PersistedClaims>)
名稱 | 資料型別 | 描述 | Azure 入口網站 | 用於使用者流程 | 用於自定義原則 |
---|---|---|---|---|---|
accountEnabled | 布林值 | 用戶帳戶是否已啟用或停用: 如果已啟用帳戶,則為 true ,否則 為 false。 | 是 | No | 保存、輸出 |
ageGroup | String | 用戶的年齡群組。 可能的值:null、Undefined、Minor、Adult、NotAdult。 | 是 | No | 保存、輸出 |
alternativeSecurityId (身分識別) | String | 來自外部識別提供者的單一使用者身分識別。 | No | No | 輸入、保存、輸出 |
alternativeSecurityIds (身分識別) | alternative securityId 集合 | 來自外部識別提供者的使用者身分識別集合。 | No | No | 保存、輸出 |
市/鎮 | String | 使用者的居住城市。 最大長度 128。 | Yes | Yes | 保存、輸出 |
consentProvidedForMinor | String | 是否已為未成年人提供同意。 允許的值:null、granted、denied 或 notRequired。 | 是 | No | 保存、輸出 |
國家/地區 | String | 使用者的居住國家/地區。 例如: 美國 或 英國。 最大長度 128。 | Yes | Yes | 保存、輸出 |
createdDateTime | Datetime | 建立用戶物件的日期。 唯讀。 | No | No | 保存、輸出 |
creationType | String | 如果用戶帳戶已建立為 Azure Active Directory B2C 租使用者的本機帳戶,則值為 LocalAccount 或 nameCoexistence。 唯讀。 | No | No | 保存、輸出 |
dateOfBirth | Date | 出生日期。 | No | No | 保存、輸出 |
部門 | String | 用戶運作所在的部門名稱。 最大長度 64。 | 是 | No | 保存、輸出 |
displayName | String | 用戶的顯示名稱。 最大長度 256。 <> 不允許字元。 | Yes | Yes | 保存、輸出 |
facsimileTelephoneNumber1 | String | 用戶商務傳真機的電話號碼。 | 是 | No | 保存、輸出 |
givenName | String | 使用者的指定名稱(名字)。 最大長度 64。 | Yes | Yes | 保存、輸出 |
jobTitle | String | 用戶的職稱。 最大長度 128。 | Yes | Yes | 保存、輸出 |
immutableId | String | 一個標識碼,通常用於從 內部部署的 Active Directory 移轉的使用者。 | No | No | 保存、輸出 |
legalAgeGroupClassification | String | 法律年齡組分類。 只讀,並根據 ageGroup 和 consentProvidedForMinor 屬性計算。 允許的值:null、minorWithOutParentalConsent、minorWithParentalConsent、minorNoParentalConsentRequired、notAdult 和成人。 | 是 | No | 保存、輸出 |
legalCountry1 | String | 法律用途的國家/地區。 | No | No | 保存、輸出 |
mailNickName | String | 用戶的郵件別名。 最大長度 64。 | No | No | 保存、輸出 |
mobile (mobile 電話) | String | 使用者的主要行動電話電話號碼。 最大長度 64。 | 是 | No | 保存、輸出 |
netId | String | Net ID。 | No | No | 保存、輸出 |
objectId | String | 全域唯一標識碼 (GUID),這是使用者的唯一標識碼。 範例:12345678-9abc-def0-1234-56789abcde。 唯讀,不可變。 | 唯讀 | Yes | 輸入、保存、輸出 |
otherMails | 字串集合 | 使用者的其他電子郵件地址清單。 範例: [“”bob@contoso.com, “Robert@fabrikam.com”]。 注意:不允許輔色字元。 | 是 (替代電子郵件) | No | 保存、輸出 |
password | String | 使用者建立期間本機帳戶的密碼。 | No | No | 已保存 |
passwordPolicies | String | 密碼的原則。 這是由以逗號分隔的不同原則名稱所組成的字串。 例如,「DisablePasswordExpiration, DisableStrongPassword」。 | No | No | 保存、輸出 |
physicalDeliveryOfficeName (officeLocation) | String | 使用者營業地點中的辦公室位置。 最大長度 128。 | 是 | No | 保存、輸出 |
郵遞區號 | String | 使用者郵政位址的郵遞區號。 郵遞區號專屬於使用者的國家/地區。 在美國的美國中,此屬性包含郵遞區號。 最大長度 40。 | 是 | No | 保存、輸出 |
preferredLanguage | String | 使用者慣用的語言。 慣用的語言格式是以 RFC 4646 為基礎。 此名稱是與語言相關聯的 ISO 639 雙字母小寫文化特性代碼,以及與國家或地區相關聯的 ISO 3166 雙字母大寫子文化特性代碼的組合。 例如: en-US 或 es-ES 。 | No | No | 保存、輸出 |
refreshTokensValidFromDateTime (signInSessionsValidFromDateTime) | Datetime | 此時發出的任何重新整理權杖都無效,而應用程式在使用不正確重新整理權杖來取得新的存取權杖時,會收到錯誤。 在此情況下,應用程式必須向授權端點提出要求,以取得新的重新整理權杖。 唯讀。 | No | No | 輸出 |
signInNames ( Identities ) | String | 目錄中任何類型之本機帳戶使用者的唯一登入名稱。 使用此屬性來取得具有登入值的使用者,而不需指定本機帳戶類型。 | No | No | 輸入 |
signInNames.userName ( Identities ) | String | 目錄中本機帳戶使用者的唯一使用者名稱。 使用這個屬性來建立或取得具有特定登入使用者名稱的使用者。 在 Patch 作業期間單獨在 PersistedClaims 中指定此屬性會移除其他類型的 signInNames。 如果您想要新增新的 signInNames 類型,您也需要保存現有的 signInNames。 注意:使用者名稱中不允許輔色字元。 | No | No | 輸入、保存、輸出 |
signInNames.phoneNumber ( Identities ) | String | 目錄中本機帳戶使用者的唯一電話號碼。 使用這個屬性來建立或取得具有特定登入電話號碼的使用者。 在 Patch 作業期間單獨在 PersistedClaims 中指定此屬性會移除其他類型的 signInNames。 如果您想要新增新的 signInNames 類型,您也需要保存現有的 signInNames。 | No | No | 輸入、保存、輸出 |
signInNames.emailAddress ( Identities ) | String | 目錄中本機帳戶使用者的唯一電子郵件地址。 使用此屬性來建立或取得具有特定登入電子郵件地址的使用者。 在 Patch 作業期間單獨在 PersistedClaims 中指定此屬性會移除其他類型的 signInNames。 如果您想要新增新的 signInNames 類型,您也需要保存現有的 signInNames。 | No | No | 輸入、保存、輸出 |
State | String | 使用者位址中的州或省。 最大長度 128。 | Yes | Yes | 保存、輸出 |
streetAddress | String | 使用者營業地點的街道位址。 最大長度 1024。 | Yes | Yes | 保存、輸出 |
strongAuthentication Alternative電話Number 1 | String | 用於多重要素驗證之使用者的次要電話號碼。 | 是 | No | 保存、輸出 |
strongAuthenticationEmailAddress 1 | String | 使用者的 SMTP 位址。 範例:「 bob@contoso.com 」此屬性用於使用使用者名稱原則登入,以儲存使用者電子郵件地址。 然後,密碼重設流程中使用的電子郵件地址。 此屬性中不允許輔色字元。 | 是 | No | 保存、輸出 |
strongAuthentication電話Number 2 | String | 使用者的主要電話號碼,用於多重要素驗證。 | 是 | No | 保存、輸出 |
surname | String | 使用者的姓氏(姓氏或姓氏)。 最大長度 64。 | Yes | Yes | 保存、輸出 |
telephoneNumber (第一次進入業務電話) | String | 使用者業務地點的主要電話號碼。 | 是 | No | 保存、輸出 |
userPrincipalName | String | 使用者的使用者主要名稱 (UPN)。 UPN 是以網際網路標準 RFC 822 為基礎的使用者網際網路樣式登入名稱。 網域必須存在於租使用者的已驗證網域集合中。 建立帳戶時需要這個屬性。 不可變。 | No | No | 輸入、保存、輸出 |
usageLocation | String | 由於法律要求檢查國家/地區服務可用性,因此需要指派授權的使用者。 不可為 Null。 兩個字母國家/地區代碼(ISO 標準 3166)。 例如, US 、 JP 和 GB 。 | 是 | No | 保存、輸出 |
userType | String | 字串值,可用來分類目錄中的使用者類型。 值必須是 Member。 唯讀。 | 唯讀 | No | 保存、輸出 |
userState (externalUserState) 3 | String | 僅適用于 Microsoft Entra B2B 帳戶,並指出邀請為 PendingAcceptance 或 Accepted。 | No | No | 保存、輸出 |
userStateChangedOn (externalUserStateChangeDateTime) 2 | Datetime | 顯示 UserState 屬性最新變更的時間戳記。 | No | No | 保存、輸出 |
1 Microsoft Graph 不支援
2 如需詳細資訊,請參閱 MFA 電話號碼屬性
3 不應該與 Azure AD B2C 搭配使用
必要屬性
若要在 Azure AD B2C 目錄中建立使用者帳戶,請提供下列必要屬性:
顯示名稱屬性
displayName
是要向使用者顯示Azure 入口網站使用者管理的名稱,以及 Azure AD B2C 傳回應用程式的存取權杖中。 此屬性是必要項。
身分識別屬性
客戶帳戶可以是取用者、合作夥伴或公民,可以與這些身分識別類型相關聯:
- 本機 身分識別 - 使用者名稱和密碼會儲存在本機的 Azure AD B2C 目錄中。 我們通常會將這些身分識別稱為「本機帳戶」。
- 同盟身 分識別 - 也稱為 社交 或 企業 帳戶,使用者的身分識別是由Facebook、Microsoft、ADFS或 Salesforce 等同盟身分識別提供者所管理。
具有客戶帳戶的使用者可以使用多個身分識別登入。 例如,使用者名稱、電子郵件、員工標識碼、政府標識碼等等。 單一帳戶可以有多個身分識別,同時具有相同密碼的本機和社交身分識別。
在 Microsoft Graph API 中,本機和同盟身分識別都會儲存在 user identities
屬性中,其類型 為 objectIdentity。 集合 identities
代表一組用來登入用戶帳戶的身分識別。 此集合可讓使用者使用其任何相關聯的身分識別登入用戶帳戶。 identities 屬性最多可以包含10 個 objectIdentity 物件。 每個物件都包含下列屬性:
名稱 | Type | 描述 |
---|---|---|
signInType | string | 指定目錄中的使用者登入類型。 針對本機帳戶:emailAddress 、、、emailAddress2 emailAddress1 、emailAddress3 、userName 或任何其他您喜歡的類型。 社交帳號必須設定為 federated 。 |
issuer | string | 指定身分識別的簽發者。 對於本機帳戶(其中 signInType 不是 federated ),此屬性是本機 B2C 租用戶預設功能變數名稱,例如 contoso.onmicrosoft.com 。 針對社交身分識別(其中 signInType 為 federated )值是簽發者的名稱,例如 facebook.com |
issuerAssignedId | string | 指定簽發者指派給使用者的唯一標識碼。 簽發者和 issuerAssignedId的組合在您的租用戶中必須是唯一的。 若為本機帳戶,當 signInType 設定為 emailAddress 或 userName 時,它代表使用者的登入名稱。當 signInType 設定為:
|
下列 JSON 代碼段顯示 Identities 屬性、具有登入名稱的本機帳戶身分識別、電子郵件地址作為登入,以及具有社交身分識別。
"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"
}
]
針對同盟身分識別,根據識別提供者而定, issuerAssignedId 是每個應用程式或開發帳戶指定使用者的唯一值。 以社交提供者或相同開發帳戶內另一個應用程式指派的相同應用程式標識碼來設定 Azure AD B2C 原則。
密碼配置檔屬性
針對本機身分識別, 需要passwordProfile 屬性,且包含用戶的密碼。 屬性 forceChangePasswordNextSignIn
會指出使用者是否必須在下一次登入時重設密碼。 若要處理強制密碼重設,請使用設定強制密碼重設流程中的指示。
對於同盟 (social) 身分識別, 不需要 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 電話號碼屬性
使用手機進行多重要素驗證時,會使用行動電話來驗證使用者身分識別。 若要以程式設計方式新增電話號碼、更新、取得或刪除電話號碼,請使用 MS Graph API 電話驗證方法。
在 Azure AD B2C 自定義原則中,電話號碼可透過 strongAuthenticationPhoneNumber
宣告類型取得。
擴充屬性
每個面向客戶的應用程式對於要收集的資訊都有獨特的需求。 您的 Azure AD B2C 租使用者隨附一組內建的資訊,儲存在屬性中,例如指定的名稱、姓氏和郵遞區編碼。 透過 Azure AD B2C,您可以擴充儲存在每個客戶帳戶中的一組屬性。 如需詳細資訊,請參閱 在 Azure Active Directory B2C 中新增使用者屬性和自定義使用者輸入
擴充屬性會 擴充目錄中用戶對象的架構 。 延伸模組屬性只能在應用程式對象上註冊,即使它們可能包含用戶的數據也一樣。 擴充屬性會附加至名為 b2c-extensions-app
的應用程式。 請勿修改此應用程式,因為 Azure AD B2C 會使用它來儲存用戶數據。 您可以在 Microsoft Entra 應用程式註冊 下找到此應用程式。 深入瞭解 Azure AD B2Cb2c-extensions-app
。
注意
- 您可以將最多 100 個擴充屬性寫入任何用戶帳戶。
- 如果刪除 b2c-extensions-app 應用程式,則會從所有使用者移除這些擴充屬性,以及其包含的任何數據。
- 如果應用程式刪除擴充屬性,則會從所有用戶帳戶中移除該屬性,並刪除這些值。
圖形 API 中的擴充屬性是使用慣例 extension_ApplicationClientID_AttributeName
來命名,其中:
ApplicationClientID
是應用程式的應用程式 (用戶端) 識別碼b2c-extensions-app
。 瞭解如何尋找擴充功能應用程式。AttributeName
是擴充屬性的名稱。
用來建立擴充屬性名稱的應用程式 (用戶端) 識別碼不包含連字元。 例如:
"extension_831374b3bd5041bfaa54263ec9e050fc_loyaltyNumber": "212342"
在架構延伸模組中定義屬性時,支援下列資料類型:
類型 | 備註 |
---|---|
布林值 | 可能的值: true 或 false。 |
Datetime | 必須以 ISO 8601 格式指定。 此值會以UTC儲存。 |
整數 | 32 位值。 |
String | 最多 256 個字元。 |
下一步
深入了解擴充屬性: