Откройте конечную точку службы приложений Azure только для нескольких приложений - PullRequest
0 голосов
/ 27 сентября 2019

Я реализовал приложение ASP.NET Web API в качестве службы приложений Azure.У него есть регистрация приложения, все работает как положено.Я могу нажать API в браузере и увидеть весь JSON, который он возвращает.Теперь я хочу убедиться, что ничто, кроме одного или нескольких приложений из заданного списка, не сможет получить ничего от этой конечной точки.Все приложения, которым требуется доступ, будут заказными в моей организации / арендаторе.При всей гибкости и возможностях мне очень трудно определить, что мне нужно сделать, чтобы заблокировать API таким образом.

Я предполагал, что у меня есть некоторые клиентские секреты, о которых API знает, и позволилавторизованные приложения поставляют их.Другие методы, безусловно, были бы приемлемы.

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

1 Ответ

0 голосов
/ 27 сентября 2019

Похоже, что вы реализовали интерактивную аутентификацию на основе перенаправления браузера в API.

Вместо этого вы должны реализовать аутентификацию JWT в API.Затем в Azure AD вы можете определить разрешения, которые могут быть предоставлены клиентским приложениям.Таким образом, вы можете контролировать, какое приложение может делать что.

https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-1

https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-2

https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-protected-web-api-overview

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent

...