private string[] ResolveObjectIds(string[] objectIds, string[] servicePrincipalNames, string[] userPrincipalNames)
        {
            var uniqueObjectIds = new HashSet <Guid>(objectIds?.Select(id => Guid.Parse(id)) ?? new Guid[0]);

            if (servicePrincipalNames != null)
            {
                foreach (string spn in servicePrincipalNames)
                {
                    uniqueObjectIds.Add(ActiveDirectoryClient.GetObjectIdFromSPN(spn));
                }
            }

            if (userPrincipalNames != null)
            {
                foreach (string upn in userPrincipalNames)
                {
                    // TODO: Revert once available: uniqueObjectIds.Add(Guid.Parse(ActiveDirectoryClient.GetObjectIdFromUPN(upn)));
                    uniqueObjectIds.Add(Guid.Parse(GetObjectIdFromUPN(ActiveDirectoryClient, upn)));
                }
            }

            return(uniqueObjectIds.Select(id => id.ToString()).ToArray());
        }