Как защитить API без доступа конечного пользователя к учетной записи AD в Azure? - PullRequest
0 голосов
/ 04 января 2019

Я хотел бы знать, как (или если это возможно) использовать службу управления API Azure с OAuth без регистрации пользователя в учетной записи Azure AD и использования API бэкэнда

Я следовал примеруhttps://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad и все работает отлично.

В этом примере в качестве клиентского приложения используется консоль разработчика Azure.Однако если я хочу использовать свое клиентское приложение для аутентификации, значит ли это, что мое клиентское приложение должно быть размещено на сервере с возможностью OAuth?

Возможно ли для моего клиентского приложения использовать «Сервисную учетную запись» для входа в Azure Active Directory как пользователь, чтобы клиентское приложение могло использовать защищенные API?

1 Ответ

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

Самому APIM не важно, является ли данный сервер OAuth AAD или нет.В APIM есть три вещи, которые связаны с OAuth.

Во-первых, это регистрация на портале Dev.Можно настроить портал Dev для аутентификации пользователей через AAD, Facebook, Google и т. Д. С этим параметром APIM свяжется с необходимым сервером авторизации для проверки личности пользователя.Это необходимо только в том случае, если вы хотите, чтобы ваши пользователи проходили аутентификацию на портале dev с использованием некоторого сервера аутентификации.

Затем происходит регистрация серверов OpenID и OAuth и их привязка к API.Это чисто для целей документации.Вы делаете это, чтобы показать, что вашему бэкэнду (не APIM) требуется токен Oauth с определенного сервера OAuth.Портал разработчика в его части будет отображать пользовательский интерфейс в консоли разработчика, чтобы получить такой токен и вызвать с ним прокси-сервер APIM.Это может быть использовано с любым сервером OpenId / OAuth, без необходимости AAD.И вам не нужно размещать какое-либо приложение, регистрация выполняется исключительно для получения идентификатора клиента и секрета клиента, поэтому, когда портал Dev делает вызов серверу авторизации для получения токена для пользователя, это разрешается.Это необходимо только для отображения пользовательского интерфейса на консоли разработчика, что позволит пользователям легко получать токены для вызова вашего сервиса.Никоим образом не влияет на обработку запросов во время выполнения.

Наконец, существует политика validate-jwt, это единственный бит времени выполнения, связанный с OAuth, в APIM.Эту политику можно настроить для извлечения токена JWT из запроса и проверки его на наличие определенных утверждений, чтобы принять решение о том, уполномочена ли вызывающая сторона совершать вызов или нет.Для этого не требуется никаких других настроек, достаточно просто разместить политику в конвейере.Но вы также можете настроить сервер аутентификации, так как без него dev-консоль не будет работать по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...