Я пытаюсь написать приложение, которое получит токен Oauth и будет взаимодействовать с TFS через API.
Я зарегистрировал приложение (https://app.vsaex.visualstudio.com) и могу получить токен Oauth с нужными мне областями.
На этот вопрос есть ответ от кого-то в Microsoft, который спрашивает: «Не случайно ли одна из учетных записей поддерживается Azure Active Directory?»
Это точное поведение, которое я тоже испытываю. Я могу получить токен и поговорить со своим личным экземпляром TFS, но когда я пытаюсь связаться с TFS, поддерживаемой AD, я получаю 401.
Я пытался использовать AD Oauth, но у него нет возможностей для VSO. (https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/)
Кто-нибудь знает, как я могу выполнять вызовы API на сервер TFS с помощью Oauth из Azure AD?
Каковы ваши подробные сведения о TFS, поддерживаемой AD? Когда вы говорите, что он разговаривает с моим личным экземпляром TFS, используете ли вы vsts, такие как ((xxx.visualstudio.com) или TFS без предварительного уведомления (xx: 8080 / TFS)? — person Bert Cotton schedule 13.10.2016
Я использую размещенное решение TFS (поэтому URL-адрес xxx.visualstudio.com). Я использовал термин TFS, поддерживаемый AD, потому что он использовался в комментарии в ответе сотрудника MS на этот вопрос: social.msdn.microsoft.com/Forums/vstudio/en- США / — person Bert Cotton schedule 13.10.2016
Основываясь на моем тесте, я получаю тот же результат, токен доступа может получить доступ ко всем VSTS в разделе учетной записи Visual Studio Team Services (страница с информацией об учетной записи), но получаю результат 401, если я обращаюсь к VSTS с тем же токеном доступа, который в учетных записях в других организациях раздел. Кроме того, я не могу использовать ту же альтернативную учетную запись для доступа к этому VSTS. — person Bert Cotton schedule 19.10.2016
Даже с одной и той же учетной записью пользователя (адресом электронной почты) учетная запись Microsoft (MSA) и учетная запись Azure AD (AAD) имеют разные удостоверения в системе. Так что токен доступа для них должен быть другим.
В качестве примера возьмем мою учетную запись: У меня есть личная учетная запись VSTS с MSA (учетная запись Microsoft) и учетная запись AAD с (devtoolssupport). Когда я вхожу в «devtoolssupport» и выполняю аутентификацию OAuth, авторизованное приложение отображается только в «devtoolssupport», оно неприменимо для «учетной записи Microsoft». Поэтому авторизуйте приложение с помощью «Учетной записи Microsoft», вам нужно выбрать «Учетная запись Microsoft» на этой странице, а затем снова выполнить аутентификацию OAuth.
Итак, как мне решить эту проблему? Пользователь переходит на https: // ‹mydomain› .com, и этот сайт выполняет вызов любого приложения .vssps.visualstudio.com / _signedin при использовании VSTS Oauth или login.microsoftonline.com/ при использовании Azure AD. Я хочу сделать вызов для токена VSTS OAuth и предоставить ресурс для visualstudio.com, но это не удается. — person Bert Cotton; 23.10.2016
За исключением того, что это не помогает фактическому надстройке TFS для Visual Studio ИЛИ веб-интерфейсу. — person Bert Cotton; 24.11.2016