Не удается получить веб-приложение для перенаправления на страницу входа Azure AD B2C - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть веб-приложение в веб-формах, которое пытается пройти аутентификацию для клиента Azure AD B2C. Я настроил своего B2C-клиента, добавил все ключи в web.config, т.е.

<add key="ida:ClientId" value="xxxxx"/>
<add key="ida:AadInstance" value="https://login.microsoftonline.com/" />
<add key="ida:Domain" value="xxxxx.onmicrosoft.com" />
<add key="ida:TenantId" value="xxxxx" />
<add key="ida:ClientSecret" value="xxxxx"/>
<add key="ida:PostLogoutRedirectUri" value="https://xxxxx.azurewebsites.net/" />
<add key="ida:SignUpSignInPolicyId" value="B2C_1_SignUpSignIn" />
<add key="ida:EditProfilePolicyId" value="B2C_1_Edit_Profile" />
<add key="ida:ResetPasswordPolicyId" value="B2C_1_Password_Reset" />

Остальная часть кода (т. Е. StartupAuth.cs), которую я оставил, была сгенерирована Visual Studio, т. Е.

private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];
    private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];
    private static string tenantId = ConfigurationManager.AppSettings["ida:TenantId"];
    private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];

    string authority = aadInstance + tenantId;

    public void ConfigureAuth(IAppBuilder app)
    {
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions
            {
                ClientId = clientId,
                Authority = authority,
                PostLogoutRedirectUri = postLogoutRedirectUri,

                Notifications = new OpenIdConnectAuthenticationNotifications()
                {
                    AuthenticationFailed = (context) =>
                    {
                        return System.Threading.Tasks.Task.FromResult(0);
                    }
                }

            }
            );

        // This makes any middleware defined above this line run before the Authorization rule is applied in web.config
        app.UseStageMarker(PipelineStage.Authenticate);

Если я нажму на кнопку ссылки, которая запускает этот код:

if (!Request.IsAuthenticated)
        {
            HttpContext.Current.GetOwinContext().Authentication.Challenge(
                new AuthenticationProperties { RedirectUri = "/" },
                OpenIdConnectAuthenticationDefaults.AuthenticationType);
        }

затем я попадаю на стандартную страницу входа в MS, а не на страницу, указанную в клиенте B2C, с социальными провайдерами и ссылкой для регистрации. Оба они - login.microsoftonline.com, но строки запросов существенно различаются. Я пробовал варианты всего кода уже 2 дня, но безуспешно - все, что я пробовал, возвращается с кодом «Код состояния ответа не указывает на успех: 400 (неверный запрос)».

1 Ответ

0 голосов
/ 30 апреля 2018

Я понимаю, что вам нужно перейти на панель мониторинга приложений в Azure и включить аутентификацию службы приложений в параметре Аутентификация / Авторизация с помощью установки Azure AD.

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