2016-09-29 4 views
5

Я пытаюсь реализовать Azure Active Directory B2C на новой странице, которую я разрабатываю, но я получаю эту ошибку , пытающуюся войти с моей страницы.Попытка реализовать Azure Active Directory B2C дает мне ошибку 404

Я сделал арендатора, зарегистрировал свое приложение, создал свою политику, всю сделку. Я могу проверить их с портала Azure без особых проблем. Однако я следил за указаниями над official tutorial, чтобы реализовать политики на моей странице безрезультатно, я получаю упомянутую ошибку 404, как будто чего-то не хватает.
Я даже скачал код, размещенный там, и он работает!

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

Web.config

<add key="ida:Tenant" value="PlataformaXXX.onmicrosoft.com" /> 
<add key="ida:ClientId" value="84d2a6e6-4cac-4c53-a5ff-XXXXXXXXXXXX" /> 
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1}" /> 
<add key="ida:RedirectUri" value="https://localhost:59744/" /> 
<add key="ida:SignUpPolicyId" value="B2C_1_Sign_Up" /> 
<add key="ida:SignInPolicyId" value="B2C_1_Sign_In" /> 
<add key="ida:UserProfilePolicyId" value="B2C_1_Edit" /> 

STARTUP.AUTH.CS

public partial class Startup 
{ 
    // App config settings 
    private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"]; 
    private static string aadInstance = ConfigurationManager.AppSettings["ida:AadInstance"]; 
    private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"]; 
    private static string redirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"]; 

    // B2C policy identifiers 
    public static string SignUpPolicyId = ConfigurationManager.AppSettings["ida:SignUpPolicyId"]; 
    public static string SignInPolicyId = ConfigurationManager.AppSettings["ida:SignInPolicyId"]; 
    public static string ProfilePolicyId = ConfigurationManager.AppSettings["ida:UserProfilePolicyId"]; 

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

     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

     // Configure OpenID Connect middleware for each policy 
     app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpPolicyId)); 
     app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ProfilePolicyId)); 
     app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignInPolicyId)); 
    } ... 

Если какой-либо другой кусок кода нужен, пожалуйста, скажите мне.

Действительно, ребята, любая помощь будет очень оценена.

С уважением, Toño.

ответ

13

У меня была такая же проблема. Некоторые из вещей, которые вы можете проверить:

  • Убедитесь, что имя политики в вашем WebConfig и в Azure AD являются точно такой же, включая правильное верхний/нижний случае

  • Убедитесь AadInstance имеет косую черту (/)

  • убедитесь, что у вас есть последняя версия Owin и microsoft.identitymodel.protocol.extensions библиотек (предложить повторно загружать их из NuGet)

    • Это последняя проблема, с которой мне было трудно найти время. Если результирующий URL-адрес в вашем браузере содержит 2 вопроса, то это исправление.
+0

Что сказал он :) – dstrockis

+3

Извините, что ответили поздно. Пакет Extensions отсутствовал, и после того, как я его установил и обновил пакеты WebGrease и Antlr, все прошло гладко. Благодаря! –

+2

Мне пришлось обновить microsoft.identitymodel.protocol.extensions, и он исправил мою проблему. благодаря! – Bryan

1

Если вы пытаетесь использовать .auth/мне убедиться, что ваш магазин Токен включен в настройках аутентификации. Иначе это даст вам 404. :)

Смежные вопросы