Как добавить утверждение типа «StringCollection» в пользовательские политики ad b2c - PullRequest
0 голосов
/ 29 октября 2019

Я хочу добавить две выходные заявки типа «StringCollection», 1. страна (например, США, Великобритания и т. Д.) 2. группа (например, XX, XY, XZ)

Необходимо сохранить эти данныекогда пользователь регистрируется и должен добавить их в токен

, я создал следующий тип заявки:

<ClaimType Id="extension_countries">
        <DisplayName>Countries</DisplayName>
        <DataType>stringCollection</DataType>
        <UserHelpText>Country list</UserHelpText>
 </ClaimType>

и преобразование:

<ClaimsTransformation Id="CreateCountriesFromCountry" TransformationMethod="AddItemToStringCollection">
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="country" TransformationClaimType="item" />
          <InputClaim ClaimTypeReferenceId="extension_countries" TransformationClaimType="collection" />
        </InputClaims>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="extension_countries" TransformationClaimType="collection" />
        </OutputClaims>
</ClaimsTransformation>

Когда я добавлен в«OutputClaims» RelyingParty, в котором отображается ошибка «Тип данных« StringCollection »не поддерживается для свойства расширения extension_countries в техническом профиле»

Ответы [ 2 ]

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

В качестве обходного пути напишите собственную функцию REST для преобразования коллекции в строку и наоборот, если размер строки не превышает 256 символов (я думаю, это максимум).

1 голос
/ 29 октября 2019

Вероятно, ошибка связана с основным ограничением свойств расширения API AAD Graph: https://docs.microsoft.com/en-us/previous-versions/azure/ad/graph/howto/azure-ad-graph-api-directory-schema-extensions#extension-data-types--

Доступные типы:

  • Двоичный
  • Логический
  • DateTime
  • Целое число
  • LargeInteger
  • String

Таким образом, вы не можете создать свойство расширения, которое является коллекцией строк.

...