Как получить свойство extensionProperty на B2C?

Мы пытаемся работать с необязательными утверждениями B2E… мы следовали этому документу и этому, чтобы создать заявление о расширении в B2E, затем заполнить его некоторым значением… и включить его в Token Conf / Manifest. Мы также настраиваем de XML с помощью PartnerClaimType, но не можем получить претензию от B2E. У вас есть подсказка или идея, почему мы не можем принять претензию?

Заявления по умолчанию работают нормально, но необязательно ... мы потратили как минимум 2 дня на множество тестов ... = (

Extension Claim
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#applications('XXX9f805-40cb-41af-80ae-c63201919XXX')/extensionProperties",
"value": [
{
"id": "XXX707f9-8cdb-4cfa-996e-59da8512fXXX",
"deletedDateTime": null,
"appDisplayName": "",
"name": "extension_XXXb714c01374c3e89a7c700bbd0eXXX_perfil",
"dataType": "String",
"isSyncedFromOnPremises": false,
"targetObjects": ["User"]
}
]
}

Populated claim from and User
{ "extension_XXXb714c01374c3e89a7c700bbd0eXXX_perfil": "tempinfo",
}

B2E App Manifest
"saml2Token": [
{
"name": "extension_XXXb714c01374c3e89a7c700bbd0eXXX_perfil",
"source": "user",
"essential": false,
"additionalProperties": []
}
]

OpenId ClaimProvider

Замечания: мы также пробовали extension_perfil и extn.perfil

Использованная литература:

https://docs.microsoft.com/en-us/graph/api/resources/extensionproperty?view=graph-rest-1.0

https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-optional-claims


person Reni Dantas    schedule 07.10.2020    source источник
comment
Вы настроили AAD как IdP для AAD B2C и хотите проанализировать атрибут расширения из необязательной настройки утверждений в AAD? Совершенно непонятно, что вы настроили или какова ваша цель. Будьте более точными в описании и дайте ссылки на документы, которые вы использовали.   -  person Jas Suri - MSFT    schedule 08.10.2020
comment
Привет, Джас, я отредактировал сообщение, можешь еще раз просмотреть, пожалуйста?   -  person Reni Dantas    schedule 08.10.2020
comment
Использовали ли вы поток кода аутентификации в POSTman непосредственно против AAD, чтобы вы могли изолировать, связана ли проблема с тем, что AAD не выдает ваше необязательное утверждение, или AAD B2C не имеет правильного сопоставления утверждения для анализа утверждения? Попробуйте определить причину проблемы, протестировав AAD без участия AAD B2C.   -  person Jas Suri - MSFT    schedule 08.10.2020
comment
Как я могу изолировать поток кода аутентификации AAD через почтальона? Вы можете мне в этом помочь? Это мой первый раз   -  person Reni Dantas    schedule 09.10.2020
comment
Следуйте этому docs.microsoft. ru / en-us / azure / active-directory / develop /   -  person Jas Suri - MSFT    schedule 09.10.2020
comment
Не могли бы вы просмотреть ответ ниже, пожалуйста?   -  person Reni Dantas    schedule 13.10.2020


Ответы (1)


В техническом профиле OIDC-ViaVarejo изменить

<OutputClaim ClaimTypeReferenceId="extension_perfil" />

To

<OutputClaim ClaimTypeReferenceId="extension_perfil" PartnerClaimType="extn.perfil" />

Ваше определение утверждений должно быть следующим, поскольку AAD возвращает массив:

<ClaimType Id="extension_perfil">
  <DisplayName>extension_perfil</DisplayName>
  <DataType>stringCollection</DataType>
  <UserHelpText>extension_perfil</UserHelpText>
</ClaimType>

Если вы хотите отобразить значение на экране в текстовом поле, вам необходимо преобразовать stringCollection в string (он получит только первое значение):

<ClaimsTransformation Id="ExtractPerfil" TransformationMethod="GetSingleItemFromStringCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="extension_perfil" TransformationClaimType="collection" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="perfil" TransformationClaimType="extractedItem" />
  </OutputClaims>
</ClaimsTransformation>

Определите претензию perfil

<ClaimType Id="perfil">
  <DisplayName>perfil</DisplayName>
  <DataType>string</DataType>
  <UserHelpText>extension_perfil</UserHelpText>
  <UserInputType>TextBox</UserInputType>
</ClaimType>

Затем измените SelfAsserted-AADVV-PersonalData:

...
    </CryptographicKeys>
    <InputClaimsTransformations>
      <InputClaimsTransformation ReferenceId="ExtractPerfil" />
    </InputClaimsTransformations>
    <InputClaims>
      <InputClaim ClaimTypeReferenceId="Step" DefaultValue="SelfAsserted-AADVV-PersonalData" AlwaysUseDefaultValue="true" />
      <InputClaim ClaimTypeReferenceId="displayName" />
      <InputClaim ClaimTypeReferenceId="email" />
      <InputClaim ClaimTypeReferenceId="perfil" />
      <InputClaim ClaimTypeReferenceId="extension_DataNasc" />
    </InputClaims>
    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="Step" />
      <OutputClaim ClaimTypeReferenceId="displayName" Required="true" />
      <OutputClaim ClaimTypeReferenceId="email" Required="true" />
      <OutputClaim ClaimTypeReferenceId="perfil" Required="true" />
      <OutputClaim ClaimTypeReferenceId="extension_DataNasc" Required="true" />
      <OutputClaim ClaimTypeReferenceId="DDIBrasil" DefaultValue="+55" AlwaysUseDefaultValue="true" />
      <OutputClaim ClaimTypeReferenceId="extension_Celular" Required="true" />
    </OutputClaims>
...
person Jas Suri - MSFT    schedule 13.10.2020