Articles of 活动目录

如何确定帐户的types(AD用户与AD组)?

我有一个关于确定帐户名称的types(用户或组)的问题。 例如,我有两个string,分别是“Adventure-works \ david”和“Adventure-works \ admins”,第一个表示名为david的用户,第二个表示AD组。 我的问题是如何确定这些帐户的types(用户或AD组)? 有没有方便的方法可以使用? 任何意见表示赞赏。 谢谢。

应该安装在Windows 7计算机上的PowerShell Active Directory模块导入它,还是可以从Windows 2008 R2 DC远程导入?

目前我正在taskpads上委托一些远程pipe理员的权限。我有以下问题; – >对于在PowerShell中导入活动目录模块,它是本地安装的,还是可以从Windows 2008 R2 DC远程导入? – >对于在远程工作站上工作的任务板,pipe理工具是否应安装在所有的远程机器上,还是有集中的维护方式? 请让我知道是否有关于我的努力的澄清/问题。

在Java或命令行实用工具中使用本机SSPI API获取服务的Kerberos票据有没有办法?

我想在Java中使用Kerberos实现单点login,并已成功地使用Windowslogin中的故障单创build了服务的故障单。 不幸的是,我只能在启用registry项“allowtgtsessionkey”时创build该票证。 我收到一个exception,只要我禁用它,消息“标识符不符合期望值(906)”。 registry项logging在http://java.sun.com/j2se/1.5.0/docs/guide/security/jgss/tutorials/Troubleshooting.html和http://support.microsoft.com/kb/308339上 。 不幸的是我没有访问我的应用程序将被使用的计算机上的registry,所以我正在寻找一种方法来做到这一点,而不必修改它。 当我在Internet Explorer或Mozilla Firefox上通过SPNEGO进行单点login时,他们会在我的票据caching中创build一个服务票据,所以肯定有办法在不设置registry项的情况下执行此操作。 有没有人有一个想法如何在Java中做到这一点? 感谢您的帮助,memminger 更新:我放弃这个问题。 Windowsregistry项禁止访问Ticketcaching内的票证(更确切地说:主体)。 Windows上的Java使用自己的GSSAPI实现,我想这需要访问票证来创build一个服务票据。 SSPI Windows API可以完全访问Ticketcaching,因此可以创build服务票据。 这个API被Web浏览器使用,但是它没有被Java使用(根据http://java.sun.com/developer/technicalArticles/J2SE/security/#3 )。 当我在访问过一次网页后禁用了SSPI(所以创build了一个服务票据)后,我仍然可以访问这个页面,所以使用命令行实用工具就足以使用SPPI API创build服务票据了。 对于我们来说,这意味着我们可以放弃单点login(这对我们来说是不可接受的),或者我们在应用程序的客户端进行authentication(因为我们只能读出用户名,而不能validation服务器),这是一个重大的安全风险。 另一个例子是安全约束越强,安全漏洞就越大,因为它们变得太复杂了。

如何将服务器joinActive Directory(域)?

需要在这台服务器上启动一个新的ASP.NET站点,但需要join到我们的Active Directory域中,任何人都知道这是如何完成的?

更快地找出用户是否存在于系统上?

我有一个应用程序,检查用户是否存在(如果不创build它)每次启动。 这是如下完成的: bool bUserExists = false; DirectoryEntry dirEntryLocalMachine = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntries dirEntries = dirEntryLocalMachine.Children; foreach (DirectoryEntry dirEntryUser in dirEntries) { bUserExists = dirEntryUser.Name.Equals("UserName", StringComparison.CurrentCultureIgnoreCase); if (bUserExists) break; } 问题出现在大部分部署的系统上。 这可能需要6 – 10秒,这是太长了…我需要find一种方法来减less(尽可能)。 有没有更好或更快的方式来validation用户是否存在于系统上? 我知道还有其他的方法可以解决这个问题,就像其他的应用程序睡了10秒,或者准备好后这个工具会发送一个消息,等等。但是如果我能够大大减lessfind用户的时间,这会让我的生活变得更轻松。

如何检查计算机的域帐号是否无效(信任被破坏)?

我必须承认其domain accounts不再有效的笔记本电脑。 由于几个问题,可能会发生无效的域帐户。 大多数情况下,客户端从备份恢复,然后域帐户不再有效 在这种情况下,行为是: 用户的login工作通过cached credentials 用户has access to shares服务器上的has access to shares和文件(NTLM) 通过Kerberos does not work访问Kerberos does not work 有没有可能检查电脑帐户的有效性?

从Active Directory获取用户的组成员身份

我怎么能从AD得到一个用户的组成员资格,最好使用与我用来获取用户的Department属性相同的模式,如下所示? 我已经find了几个例子,但是所有示例技术的相交集是非常小的,缺乏这个部门查询的紧密性和简单性: var adServer = ConfigurationManager.AppSettings["adServer"] ?? "localhost"; var remoteRoot = new DirectoryEntry(GetRootPath(adServer)); var searcher = new DirectorySearcher(remoteRoot, string.Format("(SAMAccountName={0})", shortUserName)); searcher.PropertiesToLoad.Add("Department"); SearchResult result = null; result = searcher.FindOne();

IIS:将Kerberos用于不在域中的客户端计算机

一台不属于域(但是在networking上)的计算机是否可以通过IIS8发布的网站进行身份validation,其中该网站的身份validation仅与“Negotiate:Kerberos”的单个提供程序“Windows身份validation”(并禁用内核模式身份validation)? 我问,因为我正在尝试做到这一点,但我不能通过身份validation到网站(但单独尝试将身份validation传递到数据库)。 我在客户端的响应中看到了“WWW-Authenticate:Negotiate”标题,但客户端似乎只在随后的(重新)请求中发送“NTLM Type1:Negotiation”(NTLMS Type1:Negotiation)(NTLMSSP)。 无论是我还是不正确地解释Fiddler2的结果! 我正在使用Kerberos,因为大多数客户端将是域计算机,我需要将用户凭据从Web应用程序传递回数据库。 我希望能够对非域名计算机做同样的事情,他们只会被提示input一个用户名/域名/密码,这个用户名/域名/密码将被validation并转换成服务器上的Kerberos票据。 请注意,出于testing目的,Windows 8既是服务器又是客户端。 在生产中,服务器将是Windows 2008 Server R2,客户端将主要是Windows 7(尽pipe会有一些Windows 8客户端)。

如何检查用户是否属于java中的某个AD组

我知道这肯定是一个非常简单的问题,但是我对java很陌生,并且很难得到我需要的确切代码。 我需要做的是从Windows获取当前login用户名,并检查该用户是否属于某个configuration文件中需要定义的特定AD用户组。 在C#中执行起来非常简单,但我不知道如何在JAVA中执行它。 示例代码会很好。 在c#中,我将安全组放入App.Config到应用程序设置,然后我可以抓取当前login的用户的Windows身份,然后遍历用户所属的所有组,并与所需的匹配。 我需要在java中完全相同

从不同的不受信任域中模拟Windows或Active Directory用户

我需要使用Windows身份validation对远程SQL Server进行身份validation。 远程SQL Server正在另一个与我当前通过Windowslogin的域没有信任关系的域中运行。 我无法使用SQL Server身份validation,因为SQL Server被configuration为仅信任域身份validation。 Windows本身允许通过用户界面进行这种types的模仿: 我以前使用过System.Security.Principal WindowsImpersonationContext类,但似乎依赖于属于受信任域的所需用户名。 我使用的是Visual Studio 2012,可以使用Microsoft.Net 4.5,最好是VB,但是如果需要,我可以很容易地从C#转换代码。