private int GetContactIdFromToken(string originalToken, CrossroadsDecodedToken crossroadsDecodedToken) { int contactId = -1; if (crossroadsDecodedToken.authProvider == AuthConstants.AUTH_PROVIDER_OKTA) { contactId = _oktaUserService.GetMpContactIdFromDecodedToken(crossroadsDecodedToken); } else if (crossroadsDecodedToken.authProvider == AuthConstants.AUTH_PROVIDER_MP) { contactId = _mpUserService.GetMpContactIdFromToken(originalToken); } else { //This should never happen based on previous logic _logger.Warn("Invalid issuer when there should not be an invalid issuer w/ token: " + originalToken); throw new SecurityTokenInvalidIssuerException(); } if (contactId == -1) { string exceptionString = $"No mpContactID available for JWT with issuer: {crossroadsDecodedToken.authProvider}, and JWT id: {crossroadsDecodedToken.decodedToken.Id}"; _logger.Error(exceptionString); throw new NoContactIdAvailableException(exceptionString); } return(contactId); }
private static Authentication GetAuthentication(CrossroadsDecodedToken decodeTokenResponse) { Authentication authentication = new Authentication(); authentication.Provider = decodeTokenResponse.authProvider; return(authentication); }
public UserInfo GetUserInfo(string originalToken, CrossroadsDecodedToken crossroadsDecodedToken, string mpAPIToken) { UserInfo userInfoObject = new UserInfo(); int contactId = GetContactIdFromToken(originalToken, crossroadsDecodedToken); userInfoObject.Mp = _mpUserService.GetMpUserInfoFromContactId(contactId, mpAPIToken); return(userInfoObject); }
public Authorization GetAuthorizations(CrossroadsDecodedToken crossroadsDecodedToken, string mpAPIToken, int mpContactId) { Authorization authorizationObject = new Authorization(); if (crossroadsDecodedToken.authProvider == AuthConstants.AUTH_PROVIDER_OKTA) { authorizationObject.OktaRoles = _oktaUserService.GetRoles(crossroadsDecodedToken); } authorizationObject.MpRoles = _mpUserService.GetRoles(mpAPIToken, mpContactId); return(authorizationObject); }
public int GetMpContactIdFromDecodedToken(CrossroadsDecodedToken decodedToken) { int mpContactId = -1; if (decodedToken.decodedToken.Claims == null) { return(mpContactId); } foreach (Claim claim in decodedToken.decodedToken.Claims) { if (claim.Type == "mpContactId") { mpContactId = System.Convert.ToInt32(claim.Value); break; } } return(mpContactId); }
public async Task <CrossroadsDecodedToken> DecodeAndValidateToken(string token, IOIDConfigurationService configService) { JwtSecurityToken decodedToken = DecodeToken(token); // Get updated configurations for auth servers var mpConfiguration = await configService.GetMpConfigAsync(); var oktaConfiguration = await configService.GetOktaConfigAsync(); JwtIssuer issuer = GetAndValidateIssuer(decodedToken, mpConfiguration, oktaConfiguration); ValidateToken(token, issuer.configuration); CrossroadsDecodedToken crossroadsDecodedToken = new CrossroadsDecodedToken { decodedToken = decodedToken, authProvider = issuer.authProvider }; return(crossroadsDecodedToken); }
public async Task <AuthDTO> GetAuthorization(string token) { CrossroadsDecodedToken decodedToken = await _jwtService.DecodeAndValidateToken(token, _configService); UserInfo userInfo = null; Authorization authorizations = null; string mpAPIToken = _apiUserRepository.GetDefaultApiClientToken(); userInfo = _userService.GetUserInfo(token, decodedToken, mpAPIToken); authorizations = _userService.GetAuthorizations(decodedToken, mpAPIToken, userInfo.Mp.ContactId); Authentication authentication = GetAuthentication(decodedToken); AuthDTO responseObject = new AuthDTO { Authentication = authentication, Authorization = authorizations, UserInfo = userInfo }; return(responseObject); }
public IDictionary <int, string> GetRoles(CrossroadsDecodedToken decodedToken) { return(new Dictionary <int, string>()); }