2016-05-16 11 views
1

Ich versuche, ein Zugriffstoken für einen Benutzer zu erwerben, indem ich den gemeinsamen Endpunkt mit einer nativen Anwendung verwende. Ich habe sowohl login.windows.net/common/OAuth2/Authorize als auch login.windows.net/common als die Autorität für den AuthenticationContext versucht. HierAzure Native Application Common Authentifizierung

ist die Funktion, die ich benutze:

authResult = authContext.AcquireToken(resource, clientID, redirectUri, PromptBehavior.Auto); 

Hier sind die Berechtigungen für meine Anwendung:

Windows Azure Active Directory: Besuchen Sie das Verzeichnis als angemeldeter Nutzer

Windows- Azure Service Management-API: Access Azure Service Management als Organisation

Wenn ich versuche und authentifizieren kann ich mich anmelden, aber die n Ich erhalte den Fehler:

AADSTS65001: Der Benutzer oder Administrator hat der Verwendung der Anwendung mit der ID '{Client-ID}' nicht zugestimmt. Senden Sie eine interaktive Autorisierungsanfrage für diesen Benutzer und diese Ressource.

kann ich bei der Verwendung einloggen gerade fein:

https://login.windows.net/ {tenantID}/OAuth2/Autorisieren

aber ich möchte, dass die Benutzer in der Lage sein, sich anzumelden, ohne zu wissen, was ihre Mieter ID ist. Danke für die Hilfe.

Antwort

0

Es stellt sich heraus, dass Sie nicht in der Lage sind, den gemeinsamen Endpunkt mit einem Microsoft-Konto zu verwenden, was ich getan habe. Sie dürfen nur ein Azure Active Directory-Konto verwenden.

+0

Ja gut, da Sie ein Microsoft-Konto zu mehreren Verzeichnissen hinzufügen können, in welches würde man Sie einloggen? – juunas

+0

Genau, und ich wusste das damals nicht, also dachte ich, ich würde es hier posten, falls jemand anderes es nicht weiß. – Christian

+0

Bestimmte Microsoft-Client-IDs (z. B. '1950a258-227b-4e31-a9cf-717495945fc2') können Sie dies tun. Nachdem Sie sich angemeldet haben, können Sie das resultierende Token verwenden, um den Endpunkt "https: //management.azure.com/tenants?api-version = 2014-01-01" abzufragen, um eine Liste von * allen * Mandanten zu erhalten, denen der Benutzer angehört (und es gibt ein kurzes Zeitfenster, in dem Sie Ihr Zugriffstoken ohne weitere Benutzeraufforderungen in Token für einige oder alle dieser Mandanten ablegen können). Dies scheint zu sein, wie Azure Powershell und Visual Studio all Ihre Mieter und Subs entdecken. Frustrierenderweise scheint es keinen Weg zu geben, dies mit Ihren eigenen Apps zu tun. –

Verwandte Themen