Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
 }
        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);
        }
Ejemplo n.º 8
0
 /// <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());
 }