Ejemplo n.º 1
0
        /*
         * Callback function when an authorization code is received.
         */
        private static async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedNotification notification)
        {
            // Extract the code from the response notification
            var code = notification.Code;

            var authorizationCodeReceived = new AuthorizationCodeReceivedMessage()
            {
                SignedInUserNameIdentifier = notification.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value
            };

            _oidcNotificationHandlerService.OnAuthorizationCodeReceived(authorizationCodeReceived);



            var userTokenCache =
                new MSALSessionCache(
                    authorizationCodeReceived.SignedInUserNameIdentifier,
                    notification.OwinContext.Environment["System.Web.HttpContextBase"] as HttpContextBase
                    ).GetMsalCacheInstance();

            // TokenCache appTokenCache = null;

            var cca =
                new ConfidentialClientApplication(
                    _ib2COidcConfidentialClientSettingsConfiguration.ClientId,
                    _ib2COidcConfidentialClientSettingsConfiguration.AuthorityUri,      // "https://login.microsoftonline.com/tfp/{tenantAuthorityName}/{defaultPolicyId}/v2.0/.well-known/openid-configuration"
                    _ib2COidcConfidentialClientSettingsConfiguration.ClientRedirectUri, // eg: "https://localhost:44311"
                    new ClientCredential(_ib2COidcConfidentialClientSettingsConfiguration.ClientSecret),
                    userTokenCache,
                    null);


            try
            {
                AuthenticationResult result = await cca.AcquireTokenByAuthorizationCodeAsync(code, _fullyQualifiedScopesRequiredByTargetApi);

                // this is actually wrong
                //if (result.Scopes != null && result.Scopes.Any())
                //{
                //    notification.AuthenticationTicket.Identity.AddClaim(new Claim(Infrastructure.Constants.IDA.ClaimTitles.ScopeElementId, string.Join(" ", result.Scopes).TrimEnd()));
                //}
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
                throw;
            }
        }
 public void OnAuthorizationCodeReceived(AuthorizationCodeReceivedMessage authorizationCodeReceivedMessage)
 {
     //throw new NotImplementedException();
 }