Как защитить приложение Spring Boot с помощью Azure AD (oauth2) И вызвать Devops REST API (защищено Oauth2) - PullRequest
0 голосов
/ 16 апреля 2020

У нас есть приложение, которое использует Azure Spring Boot Active Directory для начинающих "com.microsoft. azure: azure -active-directory-spring-boot-starter" и Spring Security для безопасного доступа к приложению , Все это прекрасно работает.

Это было сделано с помощью следующих инструкций:

https://docs.microsoft.com/en-us/azure/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory

Теперь мы хотим вызывать API-интерфейсы REST DevOps от имени зарегистрированных пользователей в соответствии с этими инструкциями:

https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops

Меня смущает то, что в каждом наборе документации указан совершенно другой способ регистрации приложение

Первое говорит: «В меню портала нажмите Регистрация приложений, а затем нажмите Зарегистрировать приложение».

Второе говорит «Go до https://app.vsaex.visualstudio.com/app/register для регистрации вашего приложения. "

Если я зарегистрируюсь вторым способом, он не будет отображаться в списке регистраций приложений на портале.

Итак, на данный момент я Зарегистрировали два приложения, одно на портале, а второе во втором порядке.

Чтобы зарегистрировать пользователя в приложении, я go здесь, указав URL обратного вызова, который я определил для второго приложение (помните, что первое и второе приложения - это одно и то же приложение). * 10 30 *

https://app.vssps.visualstudio.com/oauth2/authorize
        ?client_id={app ID}
        &response_type=Assertion
        &state={state}
        &scope={scope}
        &redirect_uri={callback URL}

Однако, поскольку я уже вошел в приложение через Spring Security / AD (первый механизм), я получаю эту ошибку с URL-адреса регистрации приложения, предположительно потому, что вошел с первого :

AADSTS50011: The reply URL specified in the request does not match the reply URLs configured for the application: idoffirstapplication

Вопросы:

Как я могу защитить свое приложение через AD, который использует Oauth2 под bo nnet, и разрешить приложению вызывать API Devops от их имени вошедших в систему пользователей?

Основная проблема заключается в том, что Azure имеет два совершенно разных набора конечных точек для входа через Azure и вызова Devops REST API. Например, конечная точка маркера Oauth2 API REST равна https://app.vssps.visualstudio.com/oauth2/token, а конечная точка AD - https://login.microsoftonline.com/ $ {azure .activedirectory.tenant-id} / oauth2 / token

Могу ли я просто иметь одно приложение и добавить в нужные мне области Oauth2 (vso.release_execute) и добавить дополнительное значение redirect_uri для обработки кода, возвращенного при вызове https://app.vssps.visualstudio.com/oauth2/authorize, а затем у вас есть вызов DevOps для указания c URL-адресов токенов, чтобы получить refre sh и токены доступа?

1 Ответ

0 голосов
/ 17 апреля 2020

Две ссылки разные вещи. Первая ссылка - защита веб-приложения Java с использованием Spring Boot Starter для Azure Active Directory . Вторая ссылка - авторизация доступа к API REST Azure Сервис DevOps с OAuth 2.0.

Пользователи, которые могут вызывать API-интерфейсы DevOps в приложении, должны иметь доступ к DevOps. организация. Вы можете обратиться к примеру C# по следующей ссылке:

https://github.com/microsoft/azure-devops-auth-samples/tree/master/OAuthWebSample

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