0

我们正在尝试将旧的 Intranet ASP .NET Web 应用程序从基于“表单”的身份验证迁移到基于“Windows”的身份验证中,这样用户在登录 PC 后就不必再次输入凭据,我们只想阅读当前登录的身份并将其用于在应用程序中对用户进行身份验证和授权。

在 ASP .NET 中进行 Windows 身份验证非常简单,但我想检查的是如何在 AD 或 ADAM 中管理用户及其组。

同一个用户可以在同一个应用程序的多个环境(如 Dev、UAT、LT、Prod 等)上拥有权限,因此同一个域帐户需要在多个环境(不同的 URL)中进行身份验证。此外,一旦通过环境身份验证,用户可能属于多个角色,这些角色决定用户可以执行哪些操作。

我在这里寻找一些关于我们如何在 AD 中设置此结构的建议,我们正在考虑在 AD 中为不同的环境(如 App_Dev、App_UAT、App_Prod 等)创建组,并在每个环境中为不同的环境创建嵌套组应用程序中的角色,例如每个环境的 App_Dev\Role1、App_Dev\Role2、App_UAT\Role1 等,并在其中添加用户。

你们有什么感想?

4

1 回答 1

0

您必须记住,身份验证和授权是两件不同的事情。您已将它们组合在您的逻辑中。

例如,您的身份验证机制是 AD。所以是的,使用 AD 对凭据和组成员身份进行身份验证,以确保他们可以使用特定实例进行身份验证。

但是,您仍然可以使用经典的 RolesProvider 并使用 SQL 后端来存储数据库中每个实例的角色和用户到角色的分配。这很简单,并且使用了 ASP.NET 的内置功能,而无需在 AD 中创建组。您可以在网络上进行各种搜索ASP.NET AD Authentication and SQL Roles Provider。我认为 ScottGu 甚至有一篇关于如何做到这一点的旧文章。

最后,您在此处描述的不是 SSO,或者Single Sign-On,我将更新您的问题以反映这一点。SSO 是指创建一个在许多应用程序之间受信任和共享的令牌。您似乎不需要提供的示例,但如果您这样做,您将调查 ADFS 和Windows Identity Foundation(WIF)。仅仅因为您使用 AD 并不意味着您有 SSO,它只是意味着您有一个身份验证提供程序,但您仍然没有基于令牌的系统,该系统实际上只需要对中央身份验证服务的初始身份验证和授权请求,通常ADFS。

于 2012-09-13T13:31:55.417 回答