我想知道使用AD管理用户身份验证和授权可能有哪些解决方案/选项?我处于这样一种情况,我们希望使用AD帐户/组/等来管理我们的内部和外部用户。我发现这篇文章(http://blog.waleedmohamed.net/2009/12/create-active-directory-service-using.html)显示了一个简单的WCF服务,公开了一些AD操作。
我的想法是创建一个AD WCF服务,多个应用程序可以使用它来进行帐户CRUD操作以及登录和密码检索等其他所需功能。拥有这么强大的服务是一个好主意吗?我们正在考虑让该服务使用仅对某些OU拥有权限的帐户来限制其权限。
谢谢!
答案 0 :(得分:1)
许多CRUD操作只能由Domain Admins完成。作为一种方法,这将要求WCF服务作为域管理员运行,在这种情况下,如果有人可以入侵并运行代码,则可能非常危险。
Windows身份验证(在IIS中)无法将身份验证令牌传递到DC,因为很可能IIS未在DC上运行。
另一方面,用户可以在安全会话中传递用户名/密码(可能通过SSL),它将用于连接到域控制器。只要你能保证它,它就可以了。
答案 1 :(得分:1)
我问了一个类似的问题,也只能找到你找到的资源。我喜欢这个想法,因为我已经使用我创建的AD Helper库,有多个与AD接口的内部应用程序。我想从该AD Helper库创建一个WCF服务,以便在需要添加或修复功能时使用一个应用程序进行维护,而不是重新访问使用AD Helper库的每个应用程序。
我担心的是重新发明轮子。我不想实现MS可能已经实现的东西。有人建议我查看Active Directory Web服务,看看是否已经完成了我已在AD Helper库中实现的内容。据我所知,这只是与AD接口的另一种方式,我已经使用System.DirectoryServices名称空间进行了接口。
我认为如果实施得当,这将是任何开发环境的一个很好的补充,可以更加统一地将其内部应用程序与Active Directory集成,并集中维护此实现。
答案 2 :(得分:0)
我会非常注意为WCF服务实现安全性,例如在端口443(SSL)上使用它。也会想到某些IP范围(IIS)对服务器的访问限制。