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");
        }
Ejemplo n.º 2
0
        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));
     }
 }
Ejemplo n.º 5
0
 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));
     }
 }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
        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());
            }
        }