Esempio n. 1
0
        public static PSADObject ToPSADObject(this ADGroup group)
        {
            var adObj = new PSADObject()
            {
                DisplayName = group.DisplayName
            };

            return(AssignObjectId(adObj, group.ObjectId));
        }
Esempio n. 2
0
        public static PSADObject ToPSADGroup(this DirectoryObject obj)
        {
            var adObj = new PSADObject()
            {
                DisplayName = (obj as ADGroup).DisplayName,
            };

            return(AssignObjectId(adObj, obj.ObjectId));
        }
Esempio n. 3
0
        public static PSADObject ToPSADObject(this User user)
        {
            var adObj = new PSADObject()
            {
                DisplayName = user.DisplayName
            };

            return(AssignObjectId(adObj, user.ObjectId));
        }
Esempio n. 4
0
        public static PSADObject AssignObjectId(PSADObject adObj, string objectId)
        {
            if (Guid.TryParse(objectId, out Guid objectIdGuid))
            {
                adObj.Id = objectIdGuid;
            }
            else
            {
                adObj.AdfsId = objectId;
            }

            return(adObj);
        }
        public List <PSADObject> ListUserGroups(string principal)
        {
            List <PSADObject> result = new List <PSADObject>();
            Guid objectId            = GetObjectId(new ADObjectFilterOptions {
                UPN = principal
            });
            PSADObject user = GetADObject(new ADObjectFilterOptions {
                Id = objectId.ToString()
            });
            var groupsIds    = GraphClient.Users.GetMemberGroups(objectId.ToString(), new UserGetMemberGroupsParameters());
            var groupsResult = GraphClient.Objects.GetObjectsByObjectIds(new GetObjectsParameters {
                ObjectIds = groupsIds.ToList()
            });

            result.AddRange(groupsResult.Select(g => g.ToPSADGroup()));

            return(result);
        }
        public string GetAdfsObjectId(ADObjectFilterOptions options)
        {
            string principalId = null;

            if (options != null && options.Id != null)
            {
                // do nothing, we have parsed the guid
            }
            else
            {
                PSADObject adObj = GetADObject(options);

                if (adObj == null)
                {
                    throw new KeyNotFoundException("The provided information does not map to an AD object id.");
                }

                principalId = adObj.AdfsId;
            }

            return(principalId);
        }
        public PSADObject GetADObject(ADObjectFilterOptions options)
        {
            PSADObject result = null;

            Debug.Assert(options != null);

            if (IsSet(options.Mail, options.UPN, options.Id))
            {
                result = FilterUsers(options).FirstOrDefault();
            }

            if (result == null && IsSet(options.SPN, options.Id))
            {
                result = FilterServicePrincipals(options).FirstOrDefault();
            }

            if (result == null && IsSet(options.Mail, options.Id))
            {
                result = FilterGroups(options).FirstOrDefault();
            }

            return(result);
        }