Пользовательская политика сброса пароля Azure AD B2C не проверяет электронную почту с + char \ sign - PullRequest
0 голосов
/ 31 октября 2019

Пользователь может зарегистрироваться и просто может войти в систему с помощью Azure AD B2C с электронным письмом, содержащим +. Однако при нажатии на ссылку «Забыли пароль» на странице входа и вводе их адреса электронной почты с символом + отображается следующая ошибка:

enter image description here

На сайте обратной связи Azure я увидел 2 связанных проблемы:

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

Я видел успешную регистрацию с использованием символа «+» в адресе электронной почты. К сожалению, функция сброса пароля не работает с использованием адреса электронной почты с символом «+».

и

Поддержка плюсации в электронной почте, что неоценимо для тестирования [здесь упоминается функция электронной почты sub-addressing, которая описывает нашу ситуацию. Мы используем + адреса электронной почты для тестирования нашего приложения. ]

Есть ли место в файлах пользовательских политик .xml, где я могу ввести пользовательское регулярное выражение для проверки этого адреса электронной почты и разрешить знак +?

Я видел <TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress"> в TrustFrameworkBase.xml файле, но я не уверен, где его изменить ...

<!-- This technical profile forces the user to verify the email address that they provide on the UI. Only after email is verified, the user account is
        read from the directory. -->
        <TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">
.
.
.

1 Ответ

0 голосов
/ 31 октября 2019

Что ж ... после еще нескольких исследований я обнаружил сообщение об ошибке " Пожалуйста, введите действительный адрес электронной почты. " в электронном письме ClaimType внутри TrustFrameworkBase.xml.

<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
  <Protocol Name="OpenIdConnect"
    PartnerClaimType="email" />
</DefaultPartnerClaimTypes>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
<Restriction>
  <Pattern RegularExpression="^[a-zA-Z0-9.!#$%&amp;'^_`{}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$"
    HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>

Это регулярное выражение

^ [a-zA-Z0-9.! # $% & '^ _ `{} ~ -] + @ [a-zA-Z0-9-] + (?:. [a-zA-Z0-9 -] +) * $

- это тот, который проверяет электронную почту ... нам просто нужно настроить ее так, чтобы она принималазнак + выглядит следующим образом:

^ [a-zA-Z0-9. +! # $% & '^ _ `{} ~ -] + @ [a-zA-Z0-9 -] + (?:. [A-zA-Z0-9 -] +) * $

Документ Microsoft о ClaimsSchema .

...