static Dictionary <string, RiskScore> BuildRiskyData(RiskyList list) { Dictionary <string, RiskScore> riskyUserData = new Dictionary <string, RiskScore>(); foreach (Dictionary <string, string> user in list.Value) { RiskScore level = RiskScore.NotEvaluated; if (user.ContainsKey("userPrincipalName") && !String.IsNullOrEmpty(user["userPrincipalName"])) { if (!String.IsNullOrEmpty(user["riskLevel"])) { if (String.Compare(user["riskLevel"], "high", StringComparison.OrdinalIgnoreCase) == 0) { level = RiskScore.High; } else if (String.Compare(user["riskLevel"], "low", StringComparison.OrdinalIgnoreCase) == 0) { level = RiskScore.Low; } else if (String.Compare(user["riskLevel"], "medium", StringComparison.OrdinalIgnoreCase) == 0) { level = RiskScore.Medium; } riskyUserData.Add(user["userPrincipalName"], level); } } } return(riskyUserData); }
/// <summary> /// Gets the risk of a user by lookoing at the IP data from AAD /// </summary> /// <param name="upn">UPN of the user</param> /// <returns></returns> public static RiskScore GetRiskScore(string upn) { Dictionary <string, string> accessTokenResponse = GetAccessToken(); RiskyList list = GetRiskyUsers(accessTokenResponse["token_type"], accessTokenResponse["access_token"]); Dictionary <string, RiskScore> riskyUsers = BuildRiskyData(list); RiskScore level = RiskScore.NotEvaluated; if (null != riskyUsers) { if (riskyUsers.ContainsKey(upn)) { level = riskyUsers[upn]; } } return(level); }