В настоящее время я использую Azure AD v1 (ADAL) для аутентификации. Как я могу добавить поддержку учетных записей Outlook.com?

Мне нужно использовать расширенные сценарии проверки подлинности, доступные в ADAL, которых нет в MSAL.

Кроме того, я хочу, чтобы пользователь outlook.com (live.com / личная учетная запись) мог войти в систему.

Live SDK недоступен, но я могу создавать новые идентификаторы приложений на портале.

Вопрос

  • Если моей целью является поддержка ADALv1, а также поддержка учетных записей LiveID, по какому маршруту мне следует пойти?

Я подумываю создать двухстраничный экран аутентификации, аналогичный тому, что уже есть в Azure и Office, и запросить адрес электронной почты, как показано ниже.

http://odc.officeapps.live.com/odc/emailhrd/getidp?hm=0&[email protected]

https://login.microsoftonline.com/[email protected]

Если в AD есть только учетная запись пользователя, я буду прозрачно перенаправлять в AzureAD.

Если в Outlook.com/live.com есть только учетная запись, я перенаправлю туда.


person halfbit    schedule 08.05.2017    source источник


Ответы (1)


Не уверен, с каким ограничением вы столкнулись. Однако упомянутый вами портал предназначен для регистрации приложения для конечной точки Azure AD V2.0.

Полезно ли в вашем сценарии предоставить отдельную кнопку для входа в учетную запись Azure AD? Если да, вы можете сослаться на приведенный ниже код:

Поставщик две кнопки для выбора учетной записи для входа:

<input type="button" value="AzureAD" onclick="location.href='@Url.Action("SignIn", "Account",new { provider="aad"} )'" />
<input type="button" value="Microsoft" onclick="location.href='@Url.Action("SignIn", "Account",new { provider="microsoft"} )'" />

Контроллер учетной записи:

public void SignIn(string provider,string ReturnUrl = "/")
{
    if (!Request.IsAuthenticated)
    {
        if ("aad" == provider)
            HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = ReturnUrl }, OpenIdConnectAuthenticationDefaults.AuthenticationType);
        else
            HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = ReturnUrl }, "Microsoft");
    }
}

Startup.cs

    app.UseMicrosoftAccountAuthentication(
        clientId: "",
        clientSecret: "");

    app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
    {
        ClientId = "",
        Authority = "",
    });
person Fei Xue - MSFT    schedule 09.05.2017