Пользовательскую политику Azure AD B2C можно интегрировать со службой REST, как описано Интеграция обменов утверждениями API REST в вашем пути пользователя Azure AD B2C в качестве проверки ввода пользователя статья в документации Azure AD B2C.
Пример проверки учетных данных пользователя с использованием REST API можно найти в примере Wingtip .
В этом примере Wingtip объявлен технический профиль , представляющий API REST:
<TechnicalProfile Id="ClassicAccount-CheckPassword">
<DisplayName>Classic Account Check Password</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ServiceUrl">https://wingtipidentityb2c.azurewebsites.net/api/account/checkpassword</Item>
<Item Key="AuthenticationType">Basic</Item>
<Item Key="HttpBinding">POST</Item>
<Item Key="SendClaimsIn">Form</Item>
</Metadata>
<CryptographicKeys>
<Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_WingTipClassicAccountClientId" />
<Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_WingTipClassicAccountClientSecret" />
</CryptographicKeys>
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" PartnerClaimType="userName" />
<InputClaim ClaimTypeReferenceId="password" />
</InputClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SSOSession-Noop" />
</TechnicalProfile>
Этот технический профиль вызывается при входе в систему:
<TechnicalProfile Id="LocalAccount-Login">
<DisplayName>WingTip Account</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.localaccount.login</Item>
<Item Key="setting.operatingMode">Email</Item>
<Item Key="SignUpTarget">LocalAccountRegistrationExchange</Item>
</Metadata>
<IncludeInSso>false</IncludeInSso>
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="signInName" Required="true" />
<OutputClaim ClaimTypeReferenceId="password" Required="true" />
<OutputClaim ClaimTypeReferenceId="authenticationSource" />
<OutputClaim ClaimTypeReferenceId="objectId" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="ClassicAccount-CheckPassword" />
<ValidationTechnicalProfile ReferenceId="LocalAccount-OpenIdConnect" />
</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SSOSession-AzureActiveDirectory" />
</TechnicalProfile>
Реализация API проверяет учетные данные пользователя и затем переносит учетную запись пользователя из базы данных SQL Server в каталог Azure AD B2C.
(Пользовательская миграция необязательна.)