2016-11-23 4 views
0

Ich habe eine Azure Api REST, die durch Eingabe eines Benutzernamens/Passworts erreicht werden kann. Wie kann ich von C# auf diese API zugreifen?C# Verbindung zu Azure AD mit Benutzername/Passwort

nach einer kleinen Suche, fand ich somthing über die Verwendung von AuthenticationContext .. aber es könnte für mich Authenticationcontext .AcquireToken nicht (Ressource, clientId, Berechtigungsnachweis);

wo bekomme ich die 'Ressource' Parameter und die ClientID.

Vielen Dank

Antwort

0

ich basiert die meisten meiner Arbeit auf this post, die einige Voraussetzungen geschaffen.

Sie müssen zunächst eine native Anwendung in Ihrem Azure AD erstellen und die Windows Azure Service Management-API mit der Berechtigung hinzufügen.

Creating AD App

Die clientId von dieser App erhalten wird.

Dies ist der Code, den ich zur Zeit bin mit einem Token zu erhalten, die mit dem Management SDK verwendet werden kann:

string userName = "yourUserName"; 
string password = "yourPassword"; 
string directoryName = "yourDirectory.onmicrosoft.com"; 
string clientId = "{ClientId obtained by creating an App in the Active Directory}"; 
var credentials= new UserPasswordCredential(string.Format("{0}@{1}", userName, directoryName), password); 
var authenticationContext = new AuthenticationContext("https://login.windows.net/" + directoryName); 
var result = await authenticationContext.AcquireTokenAsync("https://management.core.windows.net/", clientID, credentials); 
var jwtToken = result.AccessToken; 
//Example accesing Azure Cdn Management API 
string subscriptionId = "xxxx-xxxxxx-xxxx-xxxxxxx"; 
using (var cdn = new CdnManagementClient(new TokenCredentials(jwtToken)) { SubscriptionId = subscriptionId }) 
{ 
    //do something... 
} 

kann Ihr Verzeichnisname in dem Azure Portal> Azure AD Abschnitt, auf erhältlich Domänennamen.

Domain name

+0

ist meine App in einer azur Website gehostet: https://AppHostedName.azurewebsites.net/ für mein Beispiel wird der Verzeichnisname 'AppHopstedName' sein? –

+0

Sie können den Verzeichnisnamen in Azure anzeigen, zum Azure AD-Dienst wechseln und ** Domain-Namen ** überprüfen. Ich habe die Antwort so bearbeitet, dass sie eine Bildschirmaufnahme enthält. –

+0

Danke Matias, du hast mir sehr geholfen –