![](/img/trans.png)
[英]Can't create custom attributes in Azure AD B2C with asp.net core Graph API
[英]Create user with Custom Attributes in Azure AD B2C with Graph API
我正在嘗試使用Graph API創建用戶。 用戶json對象如下所示。 我創建了一個名為Role
的自定義屬性。 因此,在創建用戶時,我還需要賦予該Role
一些價值。 但是,如果我包含此自定義屬性,則會出錯。
一個或多個屬性無效
如果我未指定此自定義屬性,則創建用戶成功。
var jsonObject = new JObject
{
{"accountEnabled", true},
{"country", "India"},
{"creationType", "LocalAccount"},
{"givenName","given"},
{"surName","surname"},
{"extension_Role","Admin"},
{"displayName","test12@xxx.com"},
{"passwordPolicies", "DisablePasswordExpiration,DisableStrongPassword"},
{"passwordProfile", new JObject
{
{"password", "Password@12"},
{"forceChangePasswordNextLogin", false}
} },
{"signInNames", new JArray
{
new JObject
{
{"value", "test12@xxx.com"},
{"type", "emailAddress"}
}
}
}
};
extension_Role
是引發錯誤的屬性。 我試着給extension_appId_Role
。 它給出了不同的錯誤說明
此名稱不存在擴展屬性
我猜我們在創建用戶時不能添加自定義屬性。 只有我們可以使用編輯配置文件來更新它們。 如果我錯了請糾正我。 我已將此自定義屬性添加到sign-up
和edit-profile
策略以及聲明中。
注意:我已授予圖形API適當的權限,並在App Registration門戶中注冊了一個應用。
答:我找到了答案。 但是不確定那是否是正確的行為。 當我將其附加b2c-extensions-app
應用程序ID時,可以插入自定義屬性。 我在“ App Registrations
下注冊了一個單獨的應用App Registrations
但不確定為什么仍使用default b2c-extensions-app
應用程序ID。 可能是因為我在“應用App Registrations
注冊應用App Registrations
之前創建了自定義用戶屬性。
如注釋中所指出的,您需要在屬性名稱中指定前綴extension_
和b2c-extensions-app
應用ID。 應用程序ID是GUID,但必須包含不帶連字符的字符,例如
extension_93ae98b337124e0aaced3698b59f8acb_Role
可以通過在Azure AD B2C租戶內部的Azure門戶中選擇“ All Resources -> App Registrations
來找到b2c-extension-app
ID。 默認情況下它顯示My apps
列表; 將下拉菜單更改為All apps
然后單擊b2c-extension-app
並復制其Application ID
。
注意:可以通過在AAD下找到在B2C租戶中注冊的App的appid(名稱為b2c-extensions-app)來找到自定義屬性的名稱。 然后,將extension_appid_附加到自定義屬性,然后就可以使用它了。
如果您使用內置策略,則無法控制其用於存儲自定義屬性的應用 。
如果您使用的是自定義策略 , 請參閱本指南,以配置用於存儲自定義屬性的應用。
<ClaimsProviders>
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfile Id="AAD-Common">
<DisplayName>Azure Active Directory</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<!-- Provide objectId and appId before using extension properties. -->
<Metadata>
<Item Key="ApplicationObjectId">insert objectId here</Item>
<Item Key="ClientId">insert appId here</Item>
</Metadata>
<!-- End of changes -->
<CryptographicKeys>
<Key Id="issuer_secret" StorageReferenceId="TokenSigningKeyContainer" />
</CryptographicKeys>
<IncludeInSso>false</IncludeInSso>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
</ClaimsProvider>
</ClaimsProviders>
您需要為注冊策略之一(無論是否自定義)啟用這些屬性(顯示它們),並通過該策略創建一個為其設置了值的帳戶。 在完成該操作之前,它們將在該租戶和目錄中不可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.