/// <summary> /// Gets identity information about the currently authenticated user. /// </summary> public async Task <IdentityInfo> Get() { // Retrieve identity information from the downstream Taxonomy Web API. var relatedApplicationIdentities = new List <IdentityInfo>(); try { var taxonomyWebApiClient = await CategoryController.GetTaxonomyClient(this.User); var taxonomyWebApiIdentityInfoRequest = new HttpRequestMessage(HttpMethod.Get, SiteConfiguration.TaxonomyWebApiRootUrl + "api/identity"); var taxonomyWebApiIdentityInfoResponse = await taxonomyWebApiClient.SendAsync(taxonomyWebApiIdentityInfoRequest); taxonomyWebApiIdentityInfoResponse.EnsureSuccessStatusCode(); var taxonomyWebApiIdentityInfoResponseString = await taxonomyWebApiIdentityInfoResponse.Content.ReadAsStringAsync(); var taxonomyWebApiIdentityInfo = JsonConvert.DeserializeObject <IdentityInfo>(taxonomyWebApiIdentityInfoResponseString); relatedApplicationIdentities.Add(taxonomyWebApiIdentityInfo); } catch (Exception exc) { relatedApplicationIdentities.Add(IdentityInfoFactory.FromException("Taxonomy Web API", exc)); } // Aggregate the current identity information with the downstream identities. var graphClient = default(AadGraphClient); if (StsConfiguration.StsType == StsType.AzureActiveDirectory) { graphClient = new AadGraphClient(StsConfiguration.Authority, StsConfiguration.AadTenant, SiteConfiguration.TodoListWebApiClientId, SiteConfiguration.TodoListWebApiClientSecret); } return(await IdentityInfoFactory.FromPrincipal(this.User, "Access Token", "Todo List Web API", relatedApplicationIdentities, graphClient)); }
public async Task <IActionResult> Index() { // Get identity information from the Todo List Web API. var relatedApplicationIdentities = new List <IdentityInfo>(); try { var todoListWebApiClient = await TodoListController.GetTodoListClient(this.siteConfiguration, this.User); var todoListWebApiIdentityInfoRequest = new HttpRequestMessage(HttpMethod.Get, this.siteConfiguration.TodoListWebApiRootUrl + "api/identity"); var todoListWebApiIdentityInfoResponse = await todoListWebApiClient.SendAsync(todoListWebApiIdentityInfoRequest); todoListWebApiIdentityInfoResponse.EnsureSuccessStatusCode(); var todoListWebApiIdentityInfoResponseString = await todoListWebApiIdentityInfoResponse.Content.ReadAsStringAsync(); var todoListWebApiIdentityInfo = JsonConvert.DeserializeObject <IdentityInfo>(todoListWebApiIdentityInfoResponseString); relatedApplicationIdentities.Add(todoListWebApiIdentityInfo); } catch (Exception exc) { relatedApplicationIdentities.Add(IdentityInfoFactory.FromException("Todo List Web API", exc)); } // Gather identity information from the current application and aggregate it with the identity information from the Web API. var graphClient = default(AadGraphClient); if (StsConfiguration.StsType == StsType.AzureActiveDirectory) { graphClient = new AadGraphClient(StsConfiguration.Authority, StsConfiguration.AadTenant, this.siteConfiguration.TodoListWebCoreClientId, this.siteConfiguration.TodoListWebCoreClientSecret); } var identityInfo = await IdentityInfoFactory.FromPrincipal(this.User, "ID Token", SiteConfiguration.ApplicationName, relatedApplicationIdentities, graphClient); return(View(new AccountIndexViewModel(identityInfo))); }
protected async void Page_Load(object sender, EventArgs e) { // Get identity information from the Todo List Web API. var relatedApplicationIdentities = new List <IdentityInfo>(); try { var todoListWebApiClient = await GetTodoListClient(this.User); var todoListWebApiIdentityInfoRequest = new HttpRequestMessage(HttpMethod.Get, SiteConfiguration.TodoListWebApiRootUrl + "api/identity"); var todoListWebApiIdentityInfoResponse = await todoListWebApiClient.SendAsync(todoListWebApiIdentityInfoRequest); todoListWebApiIdentityInfoResponse.EnsureSuccessStatusCode(); var todoListWebApiIdentityInfoResponseString = await todoListWebApiIdentityInfoResponse.Content.ReadAsStringAsync(); var todoListWebApiIdentityInfo = JsonConvert.DeserializeObject <IdentityInfo>(todoListWebApiIdentityInfoResponseString); relatedApplicationIdentities.Add(todoListWebApiIdentityInfo); } catch (Exception exc) { relatedApplicationIdentities.Add(IdentityInfoFactory.FromException("Todo List Web API", exc)); } // Gather identity information from the current application and aggregate it with the identity information from the Web API. var graphClient = default(AadGraphClient); if (StsConfiguration.StsType == StsType.AzureActiveDirectory) { graphClient = new AadGraphClient(StsConfiguration.Authority, StsConfiguration.AadTenant, SiteConfiguration.TodoListWebFormsClientId, SiteConfiguration.TodoListWebFormsClientSecret); } this.identity = await IdentityInfoFactory.FromPrincipal(this.User, "ID Token", SiteConfiguration.ApplicationName, relatedApplicationIdentities, graphClient); }
private async Task EnsureClientCreated() { var authenticator = new Authenticator(); var result = await authenticator.AuthenticateAsync("https://graph.windows.net/"); this.userId = result.IdToken.UPN; // Create a client proxy: this.client = new AadGraphClient(new Uri("https://graph.windows.net/" + result.IdToken.TenantId), result.GetAccessToken); }
public async Task <IdentityInfo> Get() { var graphClient = default(AadGraphClient); if (StsConfiguration.StsType == StsType.AzureActiveDirectory) { graphClient = new AadGraphClient(StsConfiguration.Authority, StsConfiguration.AadTenant, this.siteConfiguration.TaxonomyWebApiClientId, this.siteConfiguration.TaxonomyWebApiClientSecret); } return(await IdentityInfoFactory.FromPrincipal(this.User, "Access Token", "Taxonomy Web API", null, graphClient)); }
public static async Task EnsureClientCreated(Context context) { Authenticator authenticator = new Authenticator(context); var authInfo = await authenticator.AuthenticateAsync(ExchangeResourceId); _strUserId = authInfo.IdToken.UPN; _exchangeClient = new ExchangeClient(new Uri(ExchangeServiceRoot), authInfo.GetAccessToken); var adAuthInfo = await authInfo.ReauthenticateAsync(AdServiceResourceId); _adClient = new AadGraphClient(new Uri("https://graph.windows.net/" + authInfo.IdToken.TenantId), adAuthInfo.GetAccessToken); }
/// <summary> /// Updates information about a user in Azure Active Directory. /// </summary> public async Task <IHttpActionResult> Post(IdentityUpdate identity) { if (StsConfiguration.StsType != StsType.AzureActiveDirectory) { return(this.BadRequest("Updating user information is only supported when using Azure Active Directory.")); } if (identity != null && !string.IsNullOrWhiteSpace(identity.DisplayName)) { var userId = this.User.GetUniqueIdentifier(); var graphClient = new AadGraphClient(StsConfiguration.Authority, StsConfiguration.AadTenant, SiteConfiguration.TodoListWebApiClientId, SiteConfiguration.TodoListWebApiClientSecret); await graphClient.UpdateUserAsync(userId, identity.DisplayName); } return(Ok()); }