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); }
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); }
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); } }