Exemplo n.º 1
0
        public override void Process(HttpRequestArgs args)
        {
            // NOTE - no error handling added. Failed requests are expected to result in an unhandled exception, which should show friendly error page.

            // Only act on unauthenticated requests against the sign-in callback URL
            if (Context.User == null || Context.User.IsAuthenticated ||
                Context.User.Identity.GetType() == typeof(UserProfile) ||
                !args.Context.Request.Url.AbsoluteUri.StartsWith(Settings.SignInCallbackUrl))
            {
                return;
            }

            // Validate token and obtain claims
            //var tempCookie = args.Context.Request.Cookies[Settings.TempCookieName];
            var tempCookie     = new CookieHelper(Settings.TempCookieName, args.Context);
            var tempHttpCookie = tempCookie.GetCookie();
            var claims         = ValidateCodeAndGetClaims(args.Context.Request.QueryString["code"], args.Context.Request.QueryString["state"], tempHttpCookie).ToList();

            var userData = new UserIdamData(claims);

            _userDataService.SaveUserIdamDataToCookie(claims, args.Context);

            // Build sitecore user and log in - this will persist until log out or session ends.

            var user = BuildVirtualUser(userData);

            AuthenticationManager.LoginVirtualUser(user);

            var targetUrl = tempCookie.GetValue("returnUrl") ?? "/";

            tempCookie.Delete();

            WebUtil.Redirect(targetUrl);
        }
Exemplo n.º 2
0
        protected User BuildVirtualUser(UserIdamData idamData)
        {
            var domain = "extranet";
            var userId = idamData.NameIdentifier;

            var username = $"{domain}\\{userId}";
            var user     = AuthenticationManager.BuildVirtualUser(username, true);

            user.Profile.Save();
            return(user);
        }
Exemplo n.º 3
0
        public IEnumerable <Claim> RefreshUserIdamData(ref UserIdamData userIdamData)
        {
            var tokenManager  = new TokenManager(LogManager);
            var tokenResponse = tokenManager.RequestRefreshToken(userIdamData.RefreshToken);

            if (tokenResponse.IsError)
            {
                Sitecore.Diagnostics.Log.Error("HMPPS.Authentication.Pipelines.AuthenticationProcessorBase - " + tokenResponse.ErrorType + " error in RefreshUserData(): " + tokenResponse.ErrorDescription, tokenResponse.Exception, this);
                return(new List <Claim>());
            }
            var claimsPrincipal = tokenManager.ValidateIdentityToken(tokenResponse.IdentityToken);
            var claims          = tokenManager.ExtractClaims(tokenResponse, claimsPrincipal).ToList();

            userIdamData = new UserIdamData(claims);
            return(claims);
        }
 public void LogInHardcodedIdamUser(HttpContext context)
 {
     if (!Context.User.IsAuthenticated)
     {
         List<Claim> claims = new List<Claim>();
         claims.Add(new Claim(ClaimTypes.NameIdentifier, "A1466AE"));
         claims.Add(new Claim(ClaimTypes.GivenName, "Steven"));
         claims.Add(new Claim("access_token", ""));
         claims.Add(new Claim("refresh_token", ""));
         claims.Add(new Claim("expires_at", ExpirationHelper.GetExpirationTimeString(86400)));
         claims.Add(new Claim("pnomisLocation", "LEI"));
         var userData = new UserIdamData(claims);
         var _logManager = new SitecoreLogManager();
         var _jwtTokenService = new JwtTokenService();
         var _encryptionService = new EncryptionService(_logManager);
         var _userDataService = new UserDataService(_encryptionService, _jwtTokenService, _logManager);
         _userDataService.SaveUserIdamDataToCookie(claims, context);
         var sitecoreUser = BuildVirtualUser(userData);
         AuthenticationManager.LoginVirtualUser(sitecoreUser);
         //WebUtil.Redirect(context.Request.Url.AbsoluteUri);
     }
 }