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.
Ja gut, da Sie ein Microsoft-Konto zu mehreren Verzeichnissen hinzufügen können, in welches würde man Sie einloggen? – juunas
Genau, und ich wusste das damals nicht, also dachte ich, ich würde es hier posten, falls jemand anderes es nicht weiß. – Christian
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. –