为 Windows Azure 包:网站启用 Windows 身份验证网站

 

适用于:Windows Azure Pack

Windows Azure Pack:网站支持网站与 Active Directory 集成进行身份验证。 应用程序池支持还允许网站在用于连接到数据库资源的指定标识下运行。

注意

应用程序池标识功能当前并不支持所有传递方案,仅适用于数据库。

要启用 Active Directory 身份验证,必须满足以下条件:

  • 所有网站辅助进程角色都必须是加入相同 Active Directory 域的域。

  • 网站云加入 Active Directory 域之后,只能将属于相同域的辅助进程添加到云中。

可以使用管理门户或通过 PowerShell 命令启用 Active Directory 身份验证。

管理门户

以管理方式启用与网站的 Active Directory 身份验证集成

通过管理员门户启用 Active Directory

  1. 打开“网站云 配置 ”选项卡。

  2. “常规设置”部分中,为网站Windows身份验证选择以下三个选项:

    设置

    说明

    关闭

    为云中的网站禁用 Windows 身份验证

    允许

    启用 Windows 身份验证,以便租户可以在自己的网站上启用它

    必需

    要求云中的所有网站都使用 Windows 身份验证

在管理上将Windows 身份验证设置为“需要”时,网站云中的所有租户网站都将在其网站上集成 Active Directory。 这意味着网站租户无法设置未经身份验证的体验。 “需要”设置为网站管理员提供保证,即所有网站都已受到保护。

在管理上将Windows 身份验证设置为“允许”时,租户可以决定他们是否希望其站点与 Active Directory 集成进行身份验证。 启用 “允许 ”后,租户可以操作其网站上的单个页面,以不需要身份验证。

针对网站的 Active Directory 身份验证租户启用

租户可以在管理门户的“ 配置 ”选项卡上为其网站启用 Active Directory 集成。 仅当管理员为网站所属的网站云启用了 Active Directory 集成时,才会启用配置该集成的选项。 根据云管理员进行的设置,租户可以禁用 Active Directory 集成、启用它或使其成为必需条件。

在租户管理门户中为租户网站配置 Active Directory

  1. 打开网站的 “配置 ”选项卡。

  2. “常规”部分中,选择以下三个选项中的Windows身份验证

    设置

    说明

    关闭

    为网站禁用 Windows 身份验证

    允许

    使 Windows 身份验证可以在网站上

    必需

    要求整个网站使用 Windows 身份验证

Windows身份验证设置为“需要”时,站点中的所有页面都受 Active Directory 身份验证的保护。 “需要”设置可确保无法禁用身份验证的网站所有者,即使多个开发人员更新同一网站也是如此。

当Windows身份验证设置为“允许”时,网站将受到 Active Directory 的保护,以便进行身份验证。 但是,网站开发人员仍可以为站点中的单独页面禁用它。

如果云系统管理员已将 Active Directory 身份验证设置为 “需要”,则租户无法为其网站禁用它。

以管理方式为网站启用应用程序池标识

仅当网站云中的所有辅助进程都加入相同 Active Directory 域时,才能启用应用程序池标识。 管理员可以从“网站云 配置 ”选项卡管理应用程序池标识功能。

通过云管理门户启用应用程序池标识

  1. 打开“网站云 配置 ”选项卡。

  2. “常规设置”部分中,将“自定义应用程序池标识”设置为“允许”。

应用程序池标识的租户启用

仅当网站云管理员为网站所属的网站云启用了自定义应用程序池标识的使用时,才能为网站启用应用程序池标识。 租户可以在其网站的管理门户的 “配置 ”选项卡上启用应用程序池标识。

在租户网站管理门户中启用自定义应用程序池标识

  1. 打开“网站云 配置 ”选项卡。

  2. “常规设置”部分中,将“自定义应用程序池标识”设置为“允许”。

  3. 提供网站用于运行的用户名和密码。

完成此设置后,网站可以使用提供的标识连接到处于与用户相同的域中或联合到该域的数据库。

PowerShell

导入 PowerShell 网站模块

首先,要启用所需 PowerShell 命令,请运行以下命令以导入 PowerShell 网站模块:

Import-Module网站

创建网站

如果尚没有网站,则可以使用 Windows Azure 包:网站管理门户创建一个,也可以使用以下 PowerShell cmdlet。 在此示例中,请将 contosoadatumcontoso.fabrikam.com 替换为网站的名称、订阅 ID 和要使用的主机名。

New-WebSitesSite -Name contoso -SubscriptionId adatum -HostNames contoso.fabrikam.com

为 Windows Azure 包网站启用 NTLM Windows 身份验证

若要为网站启用Windows 身份验证,请使用“允许”选项在控制器上运行以下 cmdlet。 如果要锁定站点applicationhost.config文件中的身份验证配置部分并阻止站点下的任何web.config文件或站点下的任何应用程序重写它,可以使用“必需”选项。 在以下示例中,将 adatum 替换为订阅 ID, 并将 contoso 替换为网站的名称。

Set-WebSitesSiteConfig -SubscriptionId adatum -Name contoso –WindowsAuthEnabled {Allow |Required}

为 Windows Azure 包网站启用 Kerberos Windows 身份验证

为 Windows Azure 包网站启用 Kerberos 涉及以下过程:

  1. 发出与用于启用基于 NTLM 的 Windows 身份验证相同的命令,来启用 Windows 身份验证。

  2. 在域服务器上创建域用户。

  3. 为支持 Kerberos 的站点中的每个主机名创建服务主体名称 (SPN)。

  4. 将域用户分配给订阅的应用程序池标识。

下面详细说明了这些步骤。

1. 启用Windows 身份验证

使用“允许”选项在控制器上运行以下 cmdlet。 在此示例中,将 adatum 替换为订阅 ID, 并将 contoso 替换为网站的名称。

Set-WebSitesSiteConfig -SubscriptionId adatum -Name contoso –WindowsAuthEnabled {Allow |Required}

2. 在域服务器上,创建域用户

要创建域用户,请在域服务器上运行以下命令。 将 lowprivilegeduser密码 替换为适合你的环境的值。

net users /add lowprivilegeduserpassword

3. 为支持 Kerberos 的站点中的每个主机名添加服务主体名称 (SPN)

要为支持 Kerberos 的站点中的每个主机名添加服务主体名称 (SPN),请在域服务器上运行以下命令。 将 contoso.fabrikam.comdomainnamelowprivilegeduser 替换为对应于环境的值。

Setspn -S http/contoso.fabrikam.comdomainname\lowprivilegeduser

4. 在 Windows Azure Pack 网站控制器上,将域用户分配到应用程序池

要将创建的域用户分配给应用程序池,请在 Windows Azure 包网站控制器上执行以下步骤。 在新 PowerShell 窗口中,运行以下命令。 将 adatumcontosodomainnamelowprivilegeduser密码 替换为与环境对应的值。

Add-PSSnapin WebHostingSnapin
Set-WebSitesSiteConfig -SubscriptionId adatum -Name contoso -CustomAppPoolIdentity $true -SiteRuntimeUser domainname\lowprivilegeduser -SiteRuntimeUserPassword password

为 Windows Azure 包网站禁用 Windows 身份验证

如果需要禁用 Windows 身份验证,请运行以下 PowerShell 命令。 在此示例中,将 adatum 替换为订阅 ID, 并将 contoso 替换为网站的名称。

Set-WebSitesSiteConfig -SubscriptionId adatum -Name contoso –WindowsAuthEnabled Off

为 Windows Azure 包网站启用 SQL 集成身份验证

为 Windows Azure 包网站启用 SQL 集成身份验证涉及以下步骤:

  1. 在域服务器上创建域用户。

  2. 向域用户授予数据库的权限。

  3. 将域用户分配给订阅的应用程序池标识。

下面详细说明了这些步骤。

1. 在域服务器上,创建域用户

要创建域用户,请在域服务器上运行以下命令。 将 lowprivilegeduser密码 替换为与环境对应的值。

net users /add lowprivilegeduserpassword

2.在SQL Server上,授予域用户数据库权限

要向创建的域用户授予数据库权限,请在 SQL Server 上运行以下命令。 将 usersdatabasenamedomainname\lowprivilegeduserlowPrivilegedDBUser 替换为与环境对应的值。

使用 usersdatabasename;

CREATE LOGIN [domainname\lowprivilegeduser] FROM WINDOWS;

CREATE USER lowPrivilegedDBUser FOR LOGIN [domainname\lowprivilegeduser];

EXEC sp_addrolemember“db_datareader”, lowPrivilegedDBUser;

3. 在 Windows Azure Pack 网站控制器上,将域用户分配到应用程序池

要将创建的域用户分配给应用程序池,请在 Windows Azure 包网站控制器上执行以下步骤。 在新 PowerShell 窗口中,运行以下命令。 将 adatumcontosodomainnamelowprivilegeduser密码 替换为与环境对应的值。

Add-PSSnapin WebHostingSnapin Set-WebSitesSiteConfig -SubscriptionId adatum -Name contoso -CustomAppPoolIdentity $true -SiteRuntimeUser domainname\lowprivilegeduser -SiteRuntimeUserPassword password