public async Task TestAuthFailureAsync() { var invalidResponse = new JObject(); invalidResponse.Add("code", IntuneScepServiceException.ErrorCode.ChallengeDecryptionError.ToString()); invalidResponse.Add("errorDescription", ""); var authContextMock = new Mock <IAuthenticationContext>(); authContextMock.Setup(foo => foo.AcquireTokenAsync( It.IsAny <string>(), It.IsAny <ClientCredential>()) ).Throws( new AdalServiceException("", "") ); var locationProviderMock = new Mock <IIntuneServiceLocationProvider>(); locationProviderMock.Setup(foo => foo.GetServiceEndpointAsync(Microsoft.Intune.IntuneScepValidator.VALIDATION_SERVICE_NAME)) .Returns(Task.FromResult <string>(@"http://localhost/")); var adalClient = new AdalClient(configProperties); var intuneClient = new IntuneClient(configProperties, adalClient: adalClient, locationProvider: locationProviderMock.Object); var scepClient = new Microsoft.Intune.IntuneScepValidator(configProperties, intuneClient: intuneClient); Guid transactionId = Guid.NewGuid(); string csr = "testing"; await scepClient.SendFailureNotificationAsync(transactionId.ToString(), csr, 1, "description"); }
public IHttpActionResult GetTenantInformation() { AdalClient _client = new AdalClient(_appConfig, CredentialType.Client, null); try { TenantFactory _f = new TenantFactory(); var _manager = _f.CreateInstance(_client); var _tenantInfo = _manager.GetTenantInformation(); return(Ok(_tenantInfo)); } catch (TIPException _ex) { var _errorResponse = new ErrorResponse(); _errorResponse.Error = _ex.Error; return(Content(HttpStatusCode.InternalServerError, _errorResponse)); } catch (Exception ex) { var _response = new ErrorResponse(); _response.Error = new Error { Code = Common.Constants.ErrorCodes.GENERAL, Message = ex.Message }; return(Content(HttpStatusCode.InternalServerError, _response)); } }
public IHttpActionResult GetApplicationByID(string id) { if (string.IsNullOrEmpty(id)) { return(BadRequest("id was supplied")); } AdalClient _client = new AdalClient(_appConfig, CredentialType.Client, null); try { var _applicationFactory = new ApplicationFactory(); var _manager = _applicationFactory.CreateInstance(_client); var _app = _manager.GetApplicationById(id); if (_app != null) { return(Ok(_app)); } else { return(Content(HttpStatusCode.NotFound, string.Format("Application {0} was not found", id))); } } catch (Exception _ex) { var _response = new ErrorResponse(); _response.Error = new Error { Code = Common.Constants.ErrorCodes.GENERAL, Message = _ex.Message }; return(Content(HttpStatusCode.InternalServerError, _response)); } }
public IHttpActionResult GetExpiredApplicationsInDays(int InDays) { try { AdalClient _client = new AdalClient(_appConfig, CredentialType.Client, null); var _applicationFactory = new ApplicationFactory(); var _manager = _applicationFactory.CreateInstance(_client); var _apps = _manager.GetExpiredApplicationInDays(InDays); return(Ok(_apps)); } catch (TIPException ex) { var _response = new ErrorResponse(); _response.Error = ex.Error; return(Content(HttpStatusCode.InternalServerError, _response)); } catch (Exception ex) { var _response = new ErrorResponse(); _response.Error = new Error { Code = Common.Constants.ErrorCodes.GENERAL, Message = ex.Message }; return(Content(HttpStatusCode.InternalServerError, _response)); } }
public IHttpActionResult GetAllExpired() { try { AdalClient _client = new AdalClient(_appConfig, CredentialType.Client, null); ServicePrincipalFactory _f = new ServicePrincipalFactory(); var _manager = _f.CreateInstance(_client); var _servicePrincipals = _manager.GetExpiredPrincipals(); return(Ok(_servicePrincipals)); } catch (TIPException ex) { var _response = new ErrorResponse(); _response.Error = ex.Error; return(Content(HttpStatusCode.InternalServerError, _response)); } catch (Exception ex) { var _response = new ErrorResponse(); _response.Error = new Error { Code = Common.Constants.ErrorCodes.GENERAL, Message = ex.Message }; return(Content(HttpStatusCode.InternalServerError, _response)); } }
public IHttpActionResult GetMe() { AdalClient _client = new AdalClient(_appConfig, CredentialType.Client, null); try { var _applicationFactory = new ApplicationFactory(); var _manager = _applicationFactory.CreateInstance(_client); var _app = _manager.GetApplicationById(_client.ServiceInformation.ClientID); return(Ok(_app)); } catch (Exception _ex) { var _response = new ErrorResponse(); _response.Error = new Error { Code = Common.Constants.ErrorCodes.GENERAL, Message = _ex.Message }; return(Content(HttpStatusCode.InternalServerError, _response)); } }
public static void ProcessAADObjects([TimerTrigger("0 0 1 * * 1-5")] TimerInfo info, TextWriter log) // 01:00 every weekday { try { AdalClient client = new AdalClient(appConfig, CredentialType.Client, null); var appFactory = new ApplicationFactory(); var appManager = appFactory.CreateInstance(client); var appsExpiringSoon = appManager.GetExpiredApplicationInDays(appConfig.NotificationInterval); var appsExpired = appManager.GetAllExpired(); var spFactory = new ServicePrincipalFactory(); var spManager = spFactory.CreateInstance(client); var spExpiringSoon = spManager.GetExpiredPrincipalsInDays(appConfig.NotificationInterval); var spExpired = spManager.GetExpiredPrincipals(); if (appsExpiringSoon.Count > 0 || appsExpired.Count > 0 || spExpiringSoon.Count > 0 || spExpired.Count > 0) { // Create the Connector Card payload var card = new ConnectorCard { Summary = "Expiring Credential Status", Title = "PnP Tools - Tenant Information Portal", Text = "The credentials for the following have expired or will expire soon.", ThemeColor = "#FF0000" }; card.PotentialAction.Add( new ViewAction { Name = "View in Tenant Information Portal", Target = new string[] { appConfig.PortalUrl } } ); List <Fact> facts = null; if (appsExpiringSoon.Count > 0) { facts = appsExpiringSoon.Select(a => new Fact { Name = a.DiplayName, Value = a.EndDate.ToString() }).ToList(); card.Sections.Add(CreateSection($"Applications Expiring Soon ({appConfig.NotificationInterval}) days", ExpiringSoonImage, facts)); } if (appsExpired.Count > 0) { facts = appsExpired.Select(a => new Fact { Name = a.DiplayName, Value = a.EndDate.ToString() }).ToList(); card.Sections.Add(CreateSection("Applications Expired", ExpiredImage, facts)); } if (spExpiringSoon.Count > 0) { facts = spExpiringSoon.Select(sp => new Fact { Name = sp.DisplayName, Value = sp.EndDate.ToString() }).ToList(); card.Sections.Add(CreateSection($"Service Principals Expiring Soon ({appConfig.NotificationInterval}) days", ExpiringSoonImage, facts)); } if (spExpired.Count > 0) { facts = spExpired.Select(sp => new Fact { Name = sp.DisplayName, Value = sp.EndDate.ToString() }).ToList(); card.Sections.Add(CreateSection("Service Principals Expired", ExpiredImage, facts)); } var requestBody = JsonConvert.SerializeObject(card, null, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); // Make POST to webhook URL var status = HttpHelper.PostJsonMessage(appConfig.ConnectorUrl, requestBody); } } catch (Exception ex) { log.Write(ex.ToString()); } }