這很重要
自 2025 年 5 月 1 日起,Azure AD B2C 將不再可供新客戶購買。 在我們的常見問題中深入瞭解。
您的 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 名稱不同,會在括弧中提供 Microsoft Graph 名稱)
- 屬性數據類型
- 屬性描述
- 屬性是否可在 Azure 入口網站中使用
- 屬性是否可以在使用者流程中使用
- 無論屬性可用於自訂原則 Microsoft Entra ID 技術設定檔,以及位於哪個區段 (<InputClaims>、<OutputClaims> 或 <PersistedClaims>)
| 名稱 | 數據類型 | 說明 | 可在 Azure 入口網站中使用 | 用於使用者流程 | 用於自訂原則 |
|---|---|---|---|---|---|
| 帳戶啟用 | 布爾邏輯 | 用戶帳戶是否已啟用或停用:如果已啟用帳戶,則為 true ,否則為 false。 | 是的 | 否 | 保留,輸出 |
| 年齡組別 | 繩子 | 用戶的年齡群組。 可能的值:null、Undefined、Minor、Adult、NotAdult。 | 是的 | 否 | 保留,輸出 |
| alternativeSecurityId (身分識別) | 繩子 | 來自外部識別提供者的單一使用者身分識別。 | 否 | 否 | 輸入、持久化、輸出 |
| alternativeSecurityIds (身分識別) | 替代的 securityId 集合 | 來自外部識別提供者的使用者身分識別集合。 | 否 | 否 | 保留,輸出 |
| 城市 | 繩子 | 使用者的居住城市。 最大長度 128。 | 是的 | 是的 | 保留,輸出 |
| 已為未成年人提供同意書 | 繩子 | 是否已為未成年人提供同意。 允許的值:Null、已授與、已拒絕或不需要。 | 是的 | 否 | 保留,輸出 |
| 國家 | 繩子 | 使用者的居住國家/地區。 例如: 美國 或 英國。 最大長度 128。 | 是的 | 是的 | 保留,輸出 |
| createdDateTime | 日期時間 | 建立用戶物件的日期。 唯讀。 | 否 | 否 | 保留,輸出 |
| 創建類型 | 繩子 | 如果用戶帳戶已建立為 Azure Active Directory B2C 租使用者的本地帳戶,則值為 LocalAccount 或 nameCoexistence。 唯讀。 | 否 | 否 | 保留,輸出 |
| 出生日期 | 日期 | 出生日期。 | 否 | 否 | 保留,輸出 |
| 部門 | 繩子 | 用戶運作所在的部門名稱。 最大長度 64。 | 是的 | 否 | 保留,輸出 |
| 顯示名稱 | 繩子 | 使用者的顯示名稱。 最大長度 256。 | 是的 | 是的 | 保留,輸出 |
| 傳真電話號碼1 | 繩子 | 用戶商務傳真機的電話號碼。 | 是的 | 否 | 保留,輸出 |
| givenName | 繩子 | 使用者的指定名稱(名字)。 最大長度 64。 | 是的 | 是的 | 保留,輸出 |
| 職位名稱 | 繩子 | 用戶的職稱。 最大長度 128。 | 是的 | 是的 | 保留,輸出 |
| 不可變識別碼 | 繩子 | 標識碼,通常用於從內部部署 Active Directory 移轉的使用者。 | 否 | 否 | 保留,輸出 |
| 法定年齡組分類 | 繩子 | 法律年齡組分類。 唯讀並以 ageGroup 和 consentProvidedForMinor 屬性為計算依據。 允許的值:Null、minorWithOutParentalConsent、minorWithParentalConsent、minorNoParentalConsentRequired、notAdult 和 adult。 | 是的 | 否 | 保留,輸出 |
| 合法國家1 | 繩子 | 法律用途的國家/地區。 | 否 | 否 | 保留,輸出 |
| 郵件暱稱 (mailNickName) | 繩子 | 用戶的郵件別名。 最大長度 64。 | 否 | 否 | 保留,輸出 |
| 行動裝置 (mobilePhone) | 繩子 | 使用者的主要行動電話電話號碼。 最大長度 64。 | 是的 | 否 | 保留,輸出 |
| 網路識別碼 | 繩子 | Net ID。 | 否 | 否 | 保留,輸出 |
| 物件ID | 繩子 | 全域唯一標識碼 (GUID),這是使用者的唯一標識碼。 範例:12345678-9abc-def0-1234-56789abcde。 唯讀、不可變。 | 唯讀模式 | 是的 | 輸入、持久化、輸出 |
| 其他郵件 | 字串集合 | 使用者的其他電子郵件地址清單。 範例: [“”bob@contoso.com, “Robert@fabrikam.com”]。 注意:不允許使用重音字元。 | 是 (替代電子郵件) | 否 | 保留,輸出 |
| 密碼 | 繩子 | 使用者建立期間的本機帳戶密碼。 | 否 | 否 | 已保存 |
| 密碼規範 | 繩子 | 密碼的原則。 這是由以逗號分隔的不同原則名稱所組成的字串。 例如,"DisablePasswordExpiration, DisableStrongPassword"。 | 否 | 否 | 保留,輸出 |
| physicalDeliveryOfficeName(辦公室位置) | 繩子 | 使用者營業地點中的辦公室位置。 最大長度 128。 | 是的 | 否 | 保留,輸出 |
| 郵遞區號 | 繩子 | 用戶郵政地址的郵遞區號。 郵遞區編碼專屬於用戶的國家/地區。 在美國,此屬性包含郵遞郵遞區號。 最大長度 40。 | 是的 | 否 | 保留,輸出 |
| 首選語言 | 繩子 | 使用者慣用的語言。 慣用的語言格式是以 RFC 4646 為基礎。 此名稱是與語言相關聯的 ISO 639 雙字母小寫文化特性代碼,以及與國家或地區相關聯的 ISO 3166 雙字母大寫子文化特性代碼的組合。 例如: en-US或 es-ES。 | 否 | 否 | 保留,輸出 |
| refreshTokensValidFromDateTime (signInSessionsValidFromDateTime) | 日期時間 | 此時發出的任何重新整理令牌都無效,而應用程式在使用無效的重新整理令牌來取得新的存取令牌時,會收到錯誤。 在此情況下,應用程式必須向授權端點提出要求,以取得新的重新整理令牌。 唯讀模式。 | 否 | 否 | 輸出 |
| signInNames (身分識別) | 繩子 | 目錄中任何類型之本機帳戶使用者的唯一登入名稱。 使用此屬性來取得具有登入值的使用者,而不需指定本機帳戶類型。 | 否 | 否 | 輸入 |
| signInNames.userName (身份識別) | 繩子 | 目錄中本機帳戶使用者的唯一使用者名稱。 使用這個屬性來建立或取得具有特定登入使用者名稱的使用者。 在 Patch 作業期間單獨在 PersistedClaims 中指定此屬性會移除其他類型的 signInNames。 如果您想要新增新的 signInNames 類型,您也需要保存現有的 signInNames。 注意:用戶名稱中不允許重音符號。 | 否 | 否 | 輸入、持久化、輸出 |
| signInNames.phoneNumber (身分識別) | 繩子 | 目錄中本地帳戶使用者的唯一電話號碼。 使用這個屬性來建立或取得具有特定登入電話號碼的使用者。 在 Patch 作業期間單獨在 PersistedClaims 中指定此屬性會移除其他類型的 signInNames。 如果您想要新增新的 signInNames 類型,您也需要保存現有的 signInNames。 | 否 | 否 | 輸入、持久化、輸出 |
| signInNames.emailAddress (身分識別) | 繩子 | 目錄中本機帳戶使用者的唯一電子郵件地址。 使用此屬性來建立或取得具有特定登入電子郵件地址的使用者。 在 Patch 作業期間單獨在 PersistedClaims 中指定此屬性會移除其他類型的 signInNames。 如果您想要新增新的 signInNames 類型,您也需要保存現有的 signInNames。 | 否 | 否 | 輸入、持久化、輸出 |
| 狀態 | 繩子 | 用戶位址中的州或省。 最大長度 128。 | 是的 | 是的 | 保留,輸出 |
| 街道地址 | 繩子 | 使用者營業地點的街道位址。 最大長度 1024。 | 是的 | 是的 | 保留,輸出 |
| 強式驗證 備用電話號碼1 | 繩子 | 用於多重要素驗證之使用者的次要電話號碼。 | 是的 | 否 | 保留,輸出 |
| 強驗證電子郵件地址1 | 繩子 | 使用者的 SMTP 位址。 範例:「bob@contoso.com此屬性用於使用使用者名稱原則登入,以儲存使用者電子郵件位址。 然後此電子郵件地址會在密碼重設流程中使用。 此屬性中不允許使用重音字元。 | 是的 | 否 | 保留,輸出 |
| 強驗證電話號碼2 | 繩子 | 使用者的主要電話號碼,用於多重要素驗證。 | 是的 | 否 | 保留,輸出 |
| 姓 | 繩子 | 使用者的姓氏(姓氏或姓氏)。 最大長度 64。 | 是的 | 是的 | 保留,輸出 |
| telephoneNumber (businessPhones 的第一個項目) | 繩子 | 用戶業務地點的主要電話號碼。 | 是的 | 否 | 保留,輸出 |
| 用戶主名稱 | 繩子 | 使用者的使用者主體名稱 (UPN) 。 UPN 是以因特網標準 RFC 822 為基礎的使用者因特網樣式登入名稱。 網域必須存在於租使用者的已驗證網域集合中。 建立帳戶時需要這個屬性。 不可變。 | 否 | 否 | 輸入、持久化、輸出 |
| usageLocation | 繩子 | 指派授權的使用者需要檢查國家/地區服務的可用性,這是由於法律要求。 不可為空。 兩個字母國家/地區代碼(ISO 標準 3166)。 例如 ,US、 JP 和 GB。 | 是的 | 否 | 保留,輸出 |
| 用戶類型 | 繩子 | 字串值,可用來分類目錄中的用戶類型。 值必須是「成員」。 唯讀模式。 | 唯讀模式 | 否 | 保留,輸出 |
| userState (externalUserState)3 | 繩子 | 僅適用於 Microsoft Entra B2B 帳戶,並表示邀請的狀態為「待接受」(PendingAcceptance)或「已接受」(Accepted)。 | 否 | 否 | 保留,輸出 |
| 使用者狀態變更於(外部使用者狀態變更日期時間)3 | 日期時間 | 顯示 UserState 屬性最新變更的時間戳。 | 否 | 否 | 保留,輸出 |
1 Microsoft Graph 不支援
2 如需詳細資訊,請參閱 MFA 電話號碼屬性
3 不應該與 Azure AD B2C 搭配使用
必要屬性
若要在 Azure AD B2C 目錄中建立使用者帳戶,請提供下列必要屬性:
顯示名稱屬性
displayName 是要在使用者的 Azure 入口網站使用者管理中,以及在 Azure AD B2C 傳回給應用程式之存取權杖中顯示的名稱。 此屬性為必填項。
Identities 屬性
客户帐户可以是消费者、合作夥伴或公民,並可與這些身分識別類型相關聯:
- 本機 身分識別 - 使用者名稱和密碼會儲存在本機的 Azure AD B2C 目錄中。 我們通常會將這些身分識別稱為「本機帳戶」。
- 聯邦身分 - 也稱為 社交帳戶 或 企業帳戶,使用者的身分是由 Facebook、Microsoft、ADFS 或 Salesforce 等聯邦身分提供者所管理。
具有客戶帳戶的使用者可以使用多個身分識別登入。 例如,使用者名稱、電子郵件、員工標識碼、政府標識碼等等。 單一帳戶可以有多個具有相同密碼的身分識別,包括本機和社交。
在 Microsoft Graph API 中,本機和同盟身分識別均儲存於使用者 identities 屬性中,其類型為 objectIdentity。 集合 identities 代表一組用來登入用戶帳戶的身分識別。 此集合可讓使用者使用其任何相關聯的身分識別登入用戶帳戶。 identities 屬性最多可以包含10 個 objectIdentity 物件。 每個物件均包含下列屬性:
| 名稱 | 類型 | 說明 |
|---|---|---|
| 登入類型 | 字符串 | 指定目錄中的使用者登入類型。 針對本機帳戶:emailAddress、emailAddress1、emailAddress2、emailAddress3、userName 或您所需的任何其他類型。 社交帳號必須設定為 federated。 |
| 發行者 | 字符串 | 指定身分識別的簽發者。 針對本地帳戶(其中 signInType 不是 federated),此屬性為本地 B2C 租戶的預設網域名稱,例如 contoso.onmicrosoft.com。 對於社會身分(其中 signInType 是 federated),其值為發行者的名稱,例如 facebook.com |
| 發行人指定編號 | 字符串 | 指定簽發者指派給使用者的唯一標識碼。
issuer 和 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 會指出使用者是否必須在下一次登入時重設密碼。 若要處理強制密碼重設,請使用 設定強制密碼重設流程中的指示。
對於聯合「社交」身份,不需要 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 應用程式,則會從所有使用者移除這些擴充屬性,以及其包含的任何數據。
- 如果應用程式刪除擴充屬性,則會從所有用戶帳戶中移除該屬性,並刪除這些值。
Microsoft Graph API 中的擴充屬性會使用慣例 extension_ApplicationClientID_AttributeName來命名,其中:
-
ApplicationClientID是應用程式的應用程式 (用戶端) 識別碼b2c-extensions-app。 瞭解如何尋找擴充功能應用程式。 -
AttributeName是擴充屬性的名稱。
用來建立擴充屬性名稱的應用程式 (用戶端) 識別碼 不包含連字元。 例如:
"extension_831374b3bd5041bfaa54263ec9e050fc_loyaltyNumber": "212342"
在架構延伸模組中定義屬性時,支援下列資料類型:
| 類型 | 備註 |
|---|---|
| 布爾邏輯 | 可能的值: true 或 false。 |
| 日期時間 | 必須以 ISO 8601 格式指定。 此值會以UTC儲存。 |
| 整數 | 32 位元值。 |
| 繩子 | 最多 256 個字元。 |
相關內容
深入了解擴充屬性: