2015-08-25 6 views
0

Я пытаюсь найти решение для этого сценария: Мы создали провайдер, размещающий sharepoint-приложение, которое в основном является веб-сайтом SPA. Конечно, как и каждый сайт SPA, есть веб-API. Я бы хотел защитить этот веб-API и обеспечить аутентификацию с помощью действительного маркера O365. Как я могу защитить веб-API с помощью O365? Это единственный способ получить прямо через AAD?Защищенный ASP.NET WebAPI с O365

Благодарим за любые советы. Best Laurin

ответ

1

Office365 использует Azure AD за кулисами, поэтому для защиты вашего API вам нужно пройти через Azure Active Directory.

Там несколько шагов к настройке проверки подлинности:

  1. Register your application with ADD
  2. Получить маркер доступа для вас пользователя от ADD через ADAL Javascript library
  3. Зов АНИ с доступом лексем

Существует образец SPA с использованием каталога Azure Active, расположенного here.

Код, который обрабатывает аутентификацию в WebAPI, находится в файле App_Start/Startup.Auth.cs. Импорт Microsoft.Owin.Security.ActiveDirectory пространства имен и настроить pipepline для пользователя аутентификации Active Directory Azure:

public partial class Startup 
{ 
    public void ConfigureAuth(IAppBuilder app) 
    { 
     app.UseWindowsAzureActiveDirectoryBearerAuthentication(
      new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
      { 
       Audience = ConfigurationManager.AppSettings["ida:Audience"], 
       Tenant = ConfigurationManager.AppSettings["ida:Tenant"] 
      }); 
    } 

} 

Чтобы заблокировать маршрут для API обязательно поставить атрибут [Authorize] на контроллере или действия.

+0

спасибо. Поэтому я рассматриваю это как подтверждение того, что единственный способ защитить веб-api - использовать AAD, нет другого способа сделать это через O365 без регистрации приложения в aad. – LaurinSt

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