У нас есть приложение, которое использует 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 и токены доступа?