2016-11-28 2 views
0

Я использую Azure AD с OpenIdConnect и одним URL-адресом для ответа, но мне нужно подключиться LocalHost для тестирования и реализовать другую функцию.URL-адрес ответа в приложении Azure AD с OpenIDConnect

Как мне получить более одного URL-адреса, используя UseOpenIdConnectAuthentication и без потери доступа в обоих.

Мое приложение настроено с помощью Asp.Net Web.Forms (Visual Studio 2015).

Tks.

Vilela

ответ

0

Да, это работает, но мне нужно было реализовать другой код, например:

RedirectToIdentityProvider = (context) => 
        { 
         // This ensures that the address used for sign in and sign out is picked up dynamically from the request 
         // this allows you to deploy your app (to Azure Web Sites, for example)without having to change settings 
         // Remember that the base URL of the address used here must be provisioned in Azure AD beforehand. 
         string appBaseUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase; 
         context.ProtocolMessage.RedirectUri = appBaseUrl; 
         context.ProtocolMessage.PostLogoutRedirectUri = appBaseUrl; 
         return System.Threading.Tasks.Task.FromResult(0); 
        }, 

Но я есть проблемы с несколькими арендаторами. Другие пользователи являются аутентификацией у моих арендаторов. Это проблемы или проблемы с Azure?

Tks, Vilela

1

Да, можно изменить Ответить URL dynamiclly с помощью RedirectToIdentityProvider. Вы можете передать образец кода ниже:

app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 
       ClientId = clientId, 
       Authority = authority, 
       PostLogoutRedirectUri = postLogoutRedirectUri, 
       RedirectUri = postLogoutRedirectUri, 
       Notifications = new OpenIdConnectAuthenticationNotifications 
       { 
        AuthenticationFailed = context => 
        { 
         context.HandleResponse(); 
         context.Response.Redirect("/Error?message=" + context.Exception.Message); 
         return Task.FromResult(0); 
        }, 
        RedirectToIdentityProvider=(context)=> 
        { 
         context.ProtocolMessage.RedirectUri = ""; 
         return Task.FromResult(0); 
        } 
       } 
      }); 

Однако, если приложение уже было развернуто на веб-сервере, измените URL перенаправления на локальный не может работать, как вы ожидали, так как есть два разных сервера приложений для веб приложение работает.

+0

Что это будет означать, что вы бы установить переадресацию URI вручную запроса URI? Звучит как единственный способ. – juunas

+0

Спасибо, что вы вернулись, но я не понимаю, зачем менять URL-адрес переадресации в Azure AD. Это не автоматический? – Vilela

+0

Различия между URL-адресом переадресации, который вы регистрируете для приложения на портале Azure, и URL-адрес перенаправления, который вы передали в запросе. Объявление Azure проверит переданный URL переадресации на основе регистра значений на портале. И если значение будет проверено, Azure AD вернет этот URL-адрес клиенту. Пожалуйста, не стесняйтесь, если проблема не будет решена. –

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