2016-10-13 2 views
0

J'essaye d'écrire une application qui obtiendra un jeton Oauth et communiquera avec TFS via l'API.
J'ai enregistré une application (https://app.vsaex.visualstudio.com) et je peux obtenir un jeton Oauth avec les portées dont j'ai besoin.API Team Foundation Server utilisant Oauth fournie par Azure Active Directory

Cette question a été posée par quelqu'un de Microsoft demandant "L'un des comptes soutenus par Azure Active Directory est-il un hasard?"

https://social.msdn.microsoft.com/Forums/vstudio/en-US/9061abf8-7ee9-452f-99f1-2a84f8c16d85/vso-api-oauth2-and-multiple-vso-accounts?forum=TFService

Ce comportement est exact que je fais l'expérience aussi. Je peux obtenir un jeton et parler à mon instance TFS personnelle, mais quand j'essaie de communiquer avec le TFS adossé à AD, je reçois un 401.

J'ai essayé d'utiliser l'AD Oauth, mais il n'a pas de portée pour VSO. (https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/)

Est-ce que quelqu'un sait comment je peux faire des appels d'API à un serveur TFS en utilisant Oauth d'Azure AD?

+0

Quel est votre détail signifie «AD soutenu TFS»? Quand vous dites qu'il s'agit d'une instance TFS personnelle, utilisez-vous les vsts tels que ((https://xxx.visualstudio.com) ou TFS on-primse (http: // xx: 8080/TFS)? –

+0

m en utilisant une solution hébergée de TFS (donc l'URL est xxx.visualstudio.com) .J'ai utilisé le terme «TFS adossé à AD» parce qu'il a été utilisé par un commentaire dans la réponse d'un employé MS dans cette question: https://social.msdn.microsoft.com/Forums/vstudio/en-US/9061abf8-7ee9-452f-99f1-2a84f8c16d85/vso-api-oauth2-and-multiple-vso-accounts?forum=TFService –

+0

Basé sur mon test, J'obtiens le même résultat, le jeton d'accès peut accéder à tous les VSTS dans la section Compte Visual Studio Team Services (page Informations sur le compte) mais obtenir le résultat 401 si j'accède au VSTS avec le même jeton d'accès, dans la section Comptes dans d'autres organisations. Je ne peux pas utiliser le même compte alternatif pour accéder à ce VSTS –

Répondre

1

Même avec le même compte d'utilisateur (adresse électronique), le compte Microsoft (MSA) et le compte Azure AD (AAD) ont des identités distinctes dans le système. Donc le jeton d'accès pour eux devrait être différent.

Prenez mon compte comme exemple: enter image description here Je possède un compte personnel avec VSTS MSA (compte Microsoft) et un compte DAA avec (de devtoolssupport). Lorsque je me connecte à "devtoolssupport" et que j'effectue une authentification OAuth, l'application autorisée n'est listée que dans "devtoolssupport", elle n'est pas applicable pour "compte Microsoft". Donc, auth l'application avec "compte Microsoft", vous devez sélectionner "compte Microsoft" sur cette page, puis effectuez une authentification OAuth à nouveau.

+0

Alors, comment est-ce que je fais cela de manière problématique? Un utilisateur viendra à https:// .com et ce site fera un challange soit à https://app.vssps.visualstudio.com/_signedin si vous utilisez le VSTS Oauth ou à login.microsoftonline.com/ si vous utilisez Azure AD. Je veux faire un défi pour le jeton VSTS OAuth et donner une ressource pour visualstudio.com, mais cela échoue. –

+0

Sauf que cela n'aide pas l'ajout de TFS pour Visual Studio OU l'interface web. –