示例#1
0
        public IdentityService(IOptions <AuthSettings> authSettings, IHttpClientFactory httpClientFactory)
        {
            var httpClient = httpClientFactory.CreateClient("identity");

            _authSettings = authSettings.Value;
            _clientws     = new IetClient(httpClient, _authSettings.IamKey);
        }
示例#2
0
        public async Task <IActionResult> GetPPSAssociation(string key, PPSAssociationsSearchField field, string fieldValue, string retType = "default")
        {
            var clientws = new IetClient(key);

            if (retType.Equals("people", StringComparison.OrdinalIgnoreCase))
            {
                return(Ok(await clientws.PPSAssociations.Search <PeopleResults>(field, fieldValue, "people")));
            }


            return(Ok(await clientws.PPSAssociations.Search(field, fieldValue)));
        }
        public IetWsSearchService(IOptions <AppSettings> configuration)
        {
            var settings = configuration.Value;

            ietClient = new IetClient(settings.IetWsKey);
        }
示例#4
0
 public IetWsDirectorySearchService()
 {
     ietClient = new IetClient(CloudConfigurationManager.GetSetting("IetWsKey"));
 }
示例#5
0
 public PPSDepartmentRequest(IetClient client) : base(client)
 {
 }
示例#6
0
        /// <summary>
        /// Debugging method for when azure isn't returning what is expected
        /// </summary>
        /// <returns></returns>
        public async Task <JsonNetResult> Test(string id)
        {
            //var _searcher =
            //    new GraphSearchClient(
            //        new ActiveDirectoryConfigurationValues(
            //            tenantName: CloudConfigurationManager.GetSetting("AzureSearchTenantName"),
            //            tenantId: CloudConfigurationManager.GetSetting("AzureSearchTenantId"),
            //            clientId: CloudConfigurationManager.GetSetting("AzureSearchClientId"),
            //            clientSecret: CloudConfigurationManager.GetSetting("AzureSearchClientSecret")));

            var _searcher = new IetClient(CloudConfigurationManager.GetSetting("IetWsKey"));

            if (id != null && id.Contains("@"))
            {
                var ucdContactResult = await _searcher.Contacts.Search(ContactSearchField.email, id);

                if (ucdContactResult.ResponseStatus != 0 || ucdContactResult.ResponseData.Results.Length <= 0)
                {
                    return(new JsonNetResult(new IetWsDirectorySearchService.Person()));
                }
                var ucdContact = ucdContactResult.ResponseData.Results.First();

                // now look up the whole person's record by ID including kerb
                var ucdKerbResult = await _searcher.Kerberos.Search(KerberosSearchField.iamId, ucdContact.IamId);

                var allTheSame = ucdKerbResult.ResponseData.Results.Select(a => new { a.UserId, a.IamId }).Distinct().ToList();
                if (allTheSame.Count > 1)
                {
                    throw new Exception("More than 1 unique kerb values found.");
                }
                if (ucdKerbResult.ResponseStatus != 0 || ucdKerbResult.ResponseData.Results.Length <= 0)
                {
                    return(new JsonNetResult(new IetWsDirectorySearchService.Person()));
                }
                var ucdKerbPerson = ucdKerbResult.ResponseData.Results.First();
                var xxx           = new IetWsDirectorySearchService.Person

                {
                    GivenName = ucdKerbPerson.DFirstName,
                    Surname   = ucdKerbPerson.DLastName,
                    FullName  = ucdKerbPerson.DFullName,
                    Kerberos  = ucdKerbPerson.UserId,
                    Mail      = ucdContact.Email,
                    WorkPhone = ucdContact.WorkPhone
                };
                return(new JsonNetResult(xxx));
            }
            else
            {
                var ucdKerbResult = await _searcher.Kerberos.Search(KerberosSearchField.userId, id);

                if (ucdKerbResult.ResponseStatus != 0 || ucdKerbResult.ResponseData.Results.Length <= 0)
                {
                    return(new JsonNetResult(new IetWsDirectorySearchService.Person()));
                }

                var allTheSame = ucdKerbResult.ResponseData.Results.Select(a => new { a.UserId, a.IamId }).Distinct().ToList();
                if (allTheSame.Count > 1)
                {
                    throw new Exception("More than 1 unique kerb values found.");
                }
                var ucdKerbPerson = ucdKerbResult.ResponseData.Results.First();

                var ucdContactResult = await _searcher.Contacts.Search(ContactSearchField.iamId, ucdKerbPerson.IamId);

                if (ucdContactResult.ResponseStatus != 0 || ucdContactResult.ResponseData.Results.Length <= 0)
                {
                    return(new JsonNetResult(new IetWsDirectorySearchService.Person()));
                }
                var ucdContact = ucdContactResult.ResponseData.Results.First();
                var xxx        = new IetWsDirectorySearchService.Person

                {
                    GivenName = ucdKerbPerson.DFirstName,
                    Surname   = ucdKerbPerson.DLastName,
                    FullName  = ucdKerbPerson.DFullName,
                    Kerberos  = ucdKerbPerson.UserId,
                    Mail      = ucdContact.Email,
                    WorkPhone = ucdContact.WorkPhone
                };

                return(new JsonNetResult(xxx));
            }
        }
示例#7
0
        public async Task <IActionResult> GetContacts(string key, string id)
        {
            var clientws = new IetClient(key);

            return(Ok(await clientws.Contacts.Get(id)));
        }