IssueUserId с различным форматированием при использовании поставщика учетных записей Microsoft в Azure AD B2C - PullRequest
0 голосов
/ 13 июня 2018

Мы изучаем миграцию нашей существующей системы аутентификации на Azure AD B2C.Наша текущая система принимает логины MSA и Google, и мы используем собственную службу, основанную на IdentityServer, которая хранит идентификаторы сторонних IdP в хранилище Azure Table.

Я следовал инструкциямдля настройки MSA в качестве поставщика идентификаторов и для миграции пользователей с социальной учетной записью и преобразования моих существующих идентификаторов MSA в base64 при публикации их в качестве пользовательских идентификаторов в API графа AD (встрока с примером кода из второй ссылки выше).Но когда я вхожу в MSA, вместо того, чтобы распознать мою учетную запись, она направляет меня на страницу регистрации (как часть определенной мной политики входа / регистрации).

Если япосле создания пользователя, а затем проверки вновь созданного пользователя с помощью конечной точки /users/<new-user-id> в API Graph, я получаю странный вид IssueUserId по сравнению с тем, что я сохранил для своих пользователей Microsoft в настоящее время.

У моих существующих пользователей идентификаторы выглядят примерно как 1234ab56789cde01, а идентификаторы, отправляемые мне через B2C, форматируются как AAAAAAAAAAAAAAAAAAAAAAbCdEF12GhIj_KlM34nOPQ при декодировании base64.(Значения изменены, чтобы избежать возможных проблем с конфиденциальностью.) Буквы «А» всегда присутствуют в начале, и я получаю символы из всего диапазона буквенно-цифровых значений в новом формате по сравнению с исходными идентификаторами, которые имеют только диапазон шестнадцатеричногосимволов.

Мне удалось настроить учетные записи Google.Все, что нужно, это конвертировать их в base64, и они просто работают.Но я изо всех сил пытаюсь выяснить, как перенести MSA.Либо я делаю что-то не так на стороне регистрации приложения, либо есть еще один шаг к созданию идентификаторов с префиксом AAAAAAAA, которые я просто пропускаю.Любая помощь приветствуется.Спасибо!

1 Ответ

0 голосов
/ 14 июня 2018

Встроенный поставщик удостоверений для учетной записи Microsoft сопоставляет из утверждения sub (субъект) для учетной записи Microsoft свойство IssueUserId объекта userIdentity ..

Если вы хотите перенести удостоверения, сопоставленные с другой заявкой (например, заявка oid (идентификатор объекта)) учетной записи Microsoft, вы должны использоватьнастраиваемые политики , а затем добавьте настраиваемый поставщик удостоверений для учетной записи Microsoft со следующими изменениями:

<ClaimsProvider>
    <Domain>live.com</Domain>
    <DisplayName>Microsoft Account</DisplayName>
    <TechnicalProfiles>
        <TechnicalProfile Id="MSA-OIDC">
            <DisplayName>Microsoft Account</DisplayName>
            <Protocol Name="OpenIdConnect" />
            <Metadata>
                <Item Key="ProviderName">https://login.live.com</Item>
                <Item Key="METADATA">https://login.live.com/.well-known/openid-configuration</Item>
                <Item Key="response_types">code</Item>
                <Item Key="response_mode">form_post</Item>
                <Item Key="scope">openid profile email</Item>
                <Item Key="HttpBinding">POST</Item>
                <Item Key="UsePolicyInRedirectUri">0</Item>
                <Item Key="client_id">Your Microsoft application client id</Item>
            </Metadata>
            <CryptographicKeys>
                <Key Id="client_secret" StorageReferenceId="B2C_1A_MSASecret" />
            </CryptographicKeys>
            <OutputClaims>
                <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="live.com" />
                <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
                <!-- ORIGINAL: The following output claims maps from the "sub" claim to the "issuerUserId" property. -->
                <!--<OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="sub" />-->
                <!-- MODIFICATION: The following output claims maps from the "oid" claim to the "issuerUserId" property. -->
                <OutputClaim ClaimTypeReferenceId="socialIdpUserId" PartnerClaimType="oid" />
                <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
                <OutputClaim ClaimTypeReferenceId="email" />
            </OutputClaims>
            <OutputClaimsTransformations>
                <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
                <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
                <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
                <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
            </OutputClaimsTransformations>
            <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
    </TechnicalProfiles>
</ClaimsProvider>

Сведения о начале работы с настраиваемыми политиками см. в Azure ActiveКаталог B2C: Начало работы с пользовательскими политиками .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...