Как лучше всего разрешить сторонним клиентским веб-приложениям (не пользователям), а также моему собственному веб-клиентскому приложению доступ к моему веб-интерфейсу? - PullRequest
0 голосов
/ 03 января 2019

Я проводил некоторые исследования о наилучшем способе выполнения AuthN & AuthZ для нового проекта, но не нашел ничего, что могло бы соответствовать требованиям этого проекта.

У меня есть ядро ​​.netПроект API, к которому изначально должен обращаться только мое веб-приложение Razor Pages (отдельный проект).

В ближайшем будущем мне нужно будет сделать API доступным также для сторонних приложений (поэтому, если пользователь входит в это стороннее приложение, он автоматически может получить доступ к моему API без необходимости ввода UN /PW снова - это, вероятно, потребует некоторой разработки от сторонней команды).

Мне бы также хотелось иметь разные роли для пользователей моего веб-приложения Razor Pages и пользователей стороннего приложения (для авторизации).

Приложение API и Razor Pages будут работать в Azure.

Я хотел бы знать, существует ли какое-либо решение, которое можно использовать на стороне API, которое будет обрабатывать оба запроса от моегоRazor Pages (предпочтительно с использованием токена, полученного в процессе аутентификации B2C) и запросы от других сторонних приложений.

Я думал о создании уникальных JWT, отправляющих это сторонним приложениям, а также моему веб-приложению Razor Pages и использовании параметра аутентификации .net core jwtBearer на стороне API, чтобы разрешить аутентификацию / авторизацию (вероятно,иметь информацию о роли пользователя, отправленную в качестве претензии).

Это не кажется хорошим решением, поскольку эти значения JWT будут жестко заданы и не будут обновляться.

Пожалуйста, дайте мне знать, что, по вашему мнению, будетхорошее решение.

Спасибо.

1 Ответ

0 голосов
/ 03 января 2019

Вам может потребоваться использовать Azure AD, которая обеспечивает проверку подлинности «из коробки».Azure AD можно использовать для сквозной защиты.Вам просто нужно защитить свой веб-API с помощью Azure AD, и любой клиент, которому требуется доступ к вашему API, должен пройти проверку подлинности с помощью Azure AD и получить токен для доступа к вашему WebAPI.https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-auth-aad.Для управления авторизацией вы можете рассмотреть роли https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims

...