Массовая загрузка пользователей в Azure B2C с пользовательскими атрибутами - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь перенести существующих пользователей в Azure B2C, я добавил новый настраиваемый атрибут в B2C под названием «CompanyId». При массовой загрузке я добавил в CSV-файл столбец с именем «CompanyId», но средство загрузки B2C отклоняет файл, сообщая, что заголовок столбца «CompanyId» недопустим.

Возможно лимассовая загрузка пользователей в B2C с пользовательскими атрибутами?

1 Ответ

2 голосов
/ 07 октября 2019

Нет, вы не можете массово загружать пользователей с пользовательским атрибутом на портал Azure, используя CSV напрямую. Но вы можете обновить пользовательский атрибут после пользователей, созданных с помощью PowerShell, как показано ниже:

Connect-AzureAD  //connect to your b2c tenant

$userNameList = <string array list of signin name of users in your CSV>
$ExtensionName = <extension name of your company id attribute>
$ExtensionValue = <value of your companyID>


$userlist = Get-AzureADUser | Where-Object {$userNameList.Contains($_.SignInNames[0].Value) }

foreach( $user in $userlist){
   Set-AzureADUserExtension -ExtensionName $ExtensionName -ExtensionValue $ExtensionValue -ObjectId $user.ObjectId
} 

Как видите, есть один параметр, который мы не знаем, это "ExtensionName". После того как мы создали собственный атрибут в B2C, бэкэнд создаст для него ключ ( дополнительная информация ), обычно формат ключа: extension_<some id>_<name of custom attribute>. Ключом является значение ExtensionName здесь. Чтобы найти ключ, выполните команду ps ниже:

Get-AzureADExtensionProperty

enter image description here

Я создал пользовательский атрибут, как вы, и, как вы можете видеть, ключв моем случае это extension_48c33b45c4f8419eb9d97a0f3ff1817b_CompanyId

Так что мы можем просто добавить этот ключ расширения со значением, которое вам нужно для новых созданных пользователей, которые будут соответствовать вашим требованиям.

В этом случае я загрузил тестового пользователя с портала Azure, как вы можете видеть, пока я использую пользователя для получения токена доступа, претензия companyID отсутствует: enter image description here

После запуска скрипта ниже:

Connect-AzureAD


$userNameList = New-Object System.Collections.ArrayList 
$userNameList.Add("newuser")


$ExtensionName = "extension_48c33b45c4f8419eb9d97a0f3ff1817b_CompanyId"
$ExtensionValue = "MSFT"


$userlist = Get-AzureADUser | Where-Object {$userNameList.Contains($_.SignInNames[0].Value) }

foreach( $user in $userlist){
   Set-AzureADUserExtension -ExtensionName $ExtensionName -ExtensionValue $ExtensionValue -ObjectId $user.ObjectId
}

Получите токен доступа вновь созданного пользователя с именем "newuser" снова: enter image description here Как видите, компанияИдентификатор был установлен. Надеюсь, это поможет .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...