Azure AD B2 C Вывод строки API REST или даты / времени в пользовательскую политику с ошибкой типа утверждения даты - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть требование, чтобы получить дату рождения пользователя, чтобы зарегистрироваться только с датой (без времени) - Сценарий 1.

Но в другом потоке сценария в той же политике у меня есть параметр URL (a токен), с помощью которого я буду вызывать REST API и получать информацию о пользователе из другого приложения. В этом случае REST API написан мной для получения сторонних данных и возврата к пользовательской политике b2 c.

Я создал заявку на дату рождения с типом данных "date", и он работает отлично подходит для сценария 1, где он получает дату рождения от пользователя посредством самоутвержденного ввода.

 <ClaimType Id="dateOfBirth">
        <DisplayName>Date of Birth</DisplayName>
        <DataType>date</DataType>
        <DefaultPartnerClaimTypes>
          <Protocol Name="OAuth2" PartnerClaimType="birth_date" />
          <Protocol Name="OpenIdConnect" PartnerClaimType="birth_date" />
          <Protocol Name="SAML2"     PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/birthdate" />
        </DefaultPartnerClaimTypes>
        <UserInputType>DateTimeDropdown</UserInputType>
        <PredicateValidationReference Id="CustomDateRange" />
      </ClaimType>

Но для сценария 2 REST API может возвращаться только как DateTime или строка. Когда я пытаюсь выполнить эту политику, где REST API возвращает dateOfBirth в виде строки, то B2 C выдает ошибку, когда REST API возвращает значение - В AppInsights я вижу, что:

Тип данных 'String' заявки с идентификатором dateOfBirth не совпадает с типом данных DateType для ClaimType с идентификатором dateOfBirth, указанным в политике

Если я изменю API REST dateOfBirth на DateTime, то он выдаст :

Тип данных «DateTime» заявки с идентификатором «dateOfBirth» не соответствует типу данных «Date» типа ClaimType с идентификатором «dateOfBirth», указанным в политике .

Может кто-нибудь помочь, пожалуйста?

Заранее спасибо.

...