Skip to content

Instantly share code, notes, and snippets.

@digitaldias
Last active May 11, 2017 13:36
Show Gist options
  • Save digitaldias/dbfcc5ce87c37269b1ad304acea8fbaf to your computer and use it in GitHub Desktop.
Save digitaldias/dbfcc5ce87c37269b1ad304acea8fbaf to your computer and use it in GitHub Desktop.
Eksempel på bruk av Azure AD til å hente gruppemeldemsskap
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace ConsoleApp1
{
static void Main(string[] args)
{
// Authority er deres Azure AD:
string authority = "https://login.windows.net/[DITT DOMENENAVN].onmicrosoft.com";
AuthenticationContext context = new AuthenticationContext(authority);
Console.WriteLine("Context created");
// graph.windows.net gir dere gruppemedlemsskap og annen info tilknyttet AD bruker
string resource = "https://graph.windows.net";
// clientID er deres app, slik den er registrert i AAD
string clientId = "[DIN App CLIENT-ID (Guid)]";
// RedirectUri er det svaret som AAD gir tilbake. Den må matche det som er registrert i appen i AAD
string redirectUri = "http://arne.belinda";
var parameters = new PlatformParameters(PromptBehavior.Auto);
// la oss tømme alle tokens og "tvinge" pålogging hver eneste gang
context.TokenCache.Clear();
// Hent token
var token = Task.Run(() => context.AcquireTokenAsync(resource, clientId, new Uri(redirectUri), parameters)).Result;
// Vis bruker info
Console.WriteLine($"Signed in as {token.UserInfo.DisplayableId}, firstname {token.UserInfo.GivenName}, lastname: {token.UserInfo.FamilyName}");
Console.WriteLine("Querying the graph now");
var httpClient = new HttpClient();
// Spør hvilke grupper brukeren er medlem av
string officeResource = "https://graph.windows.net/[DITT DOMENENAVN].onmicrosoft.com/groups?api-version=1.6";
// Send med vårt token som autorisering
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.AccessToken);
// Tut & kjør
var result = Task.Run(() => httpClient.GetAsync(officeResource)).Result;
// Greit å teste på at det gikk bra
if(result.StatusCode == System.Net.HttpStatusCode.OK)
{
// svaret ligger i result.Content
var body = Task.Run(() => result.Content.ReadAsStringAsync()).Result;
Console.WriteLine("Success: ");
Console.WriteLine(body);
}
Console.WriteLine("Done");
}
}
}
@digitaldias
Copy link
Author

Dere må hente ADAL pakken: Microsoft.IdentityModel.Clients.ActiveDirectory fra NuGet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment