本文档已存档,并且将不进行维护。

代码示例:WordPress 插件

发布时间: 2011年5月

更新时间: 2015年6月

应用到: Azure

ACS WordPress 插件允许 WordPress 主机使用 ACS 为其 WordPress 站点启用联合登录。

WordPress 管理员可以使用 Microsoft Azure Active Directory 访问控制(也称为访问控制服务或 ACS)在其站点与标识提供程序之间创建信任关系,这些标识提供程序包括 Windows Live ID、Facebook、Google、Yahoo!,以及 Microsoft Active Directory 联合身份验证服务 2.0 等自定义标识提供程序。ACS WordPress 插件根据 ACS 配置呈现自定义登录页,并允许最终用户使用所选的标识提供程序登录到 WordPress 站点。

若要下载 WordPress 插件,请参阅 http://wordpress.org/extend/plugins/acs-plugin-for-wordpress/

  • 使用 Windows Live ID、Facebook、Google、Yahoo! 或 ACS 中配置的基于 Web 的自定义标识提供程序在 WordPress 上完成身份验证

  • 可让 WordPress 站点订户轻松注册

  • 使用联合身份验证帐户管理 WordPress 站点

  • 联合身份验证帐户与普通的用户帐户相同,并支持回退到基于本地密码的身份验证

  • 使用 WS 联合身份验证协议和简单 Web 令牌与 ACS 集成

  • Azure 主页上有一个 Azure 帐户。

  • 一个 “访问控制”命名空间。有关详细信息,请参阅操作方法:创建“访问控制”命名空间

  • 运行 PHP 5.0 或更高版本的 Web 主机

  • 运行 WordPress 3.0 或更高版本的 Web 主机

配置 ACS WordPress 插件的过程由三个部分组成:

  • 为 WordPress 插件配置 ACS

  • 配置 WordPress 插件设置

  • 启用 WordPress 插件

可以使用 ACS 管理门户来配置 ACS。

  1. 转到 Microsoft Azure 管理门户 (https://manage.WindowsAzure.com) 并登录,然后单击“Active Directory”。(故障排除提示:“Active Directory”项缺失或不可用

  2. 若要创建访问控制命名空间,请依次单击“新建”、“应用程序服务”和“访问控制”,然后单击“快速创建”。(或者,先单击“访问控制命名空间”,然后单击“新建”。)

  3. 若要管理访问控制命名空间,请选择该命名空间,然后单击“管理”。(或者,单击“访问控制命名空间”,选择命名空间,然后单击“管理”。)

    此操作将打开访问控制服务管理门户。

  4. 若要与你希望网站用户在登录时使用的标识提供程序建立关系,请单击“标识提供程序”,然后选择站点的标识提供程序。

  5. 若要向 ACS 注册你的 WordPress 站点,请单击“信赖方应用程序”,单击“添加”,在窗体中输入以下信息,然后单击“保存”。

    • 在“名称”字段中,输入站点的显示名称。

    • 在“领域”字段中,输入 WordPress 站点的基 URL。例如:http://127.0.0.1/wordpress/

    • 在“返回 URL”字段中,输入 WordPress 站点中 wp-login.php 文件的 URL。例如:http://127.0.0.1/wordpress/wp-login.php

    • 在“令牌格式”字段中,选择“SWT”。此时,已将 ACS 配置为每当用户成功完成身份验证时向 WordPress 插件发送一个简单 Web 令牌 (SWT)。

    • 在“标识提供程序”字段中,选择你要在站点上支持的标识提供程序。

    • 在“令牌签名密钥”字段中,单击“生成”以创建一个令牌签名密钥。复制此密钥,以便稍后在插件配置中使用。

    • 在“到期日期”字段中,输入该密钥的适当到期日期。到此日期后,该密钥将不再有效。

    • 让其他字段保留其默认值。



  6. 接下来,创建一些规则来限定 ACS 可发送到站点的用户信息。在本例中,我们将会发送标识提供程序发出的所有声明。若要创建此规则,请单击“规则组”,单击“My WordPress Site 的默认规则组”,然后单击“生成”。检查是否已选择你的标识提供程序,然后再次单击“生成”。

    Important重要提示
    至关重要的一点是,输入的声明类型必须唯一标识相应的用户。如果你不确定要使用哪种声明类型,请与标识提供程序的管理员联系。

    如果你正在使用自定义的 WS 联合身份验证标识提供程序(例如 AD FS 2.0),请确保有一个规则可从此标识提供程序返回 nameidentifier 声明。此声明会将用户的唯一 ID 发送到 WordPress 应用程序。如果不存在这样的规则,则你必须创建一个规则,用于将该标识提供程序返回的唯一 ID 声明映射到 nameidentifier 声明类型。

  1. 从 WordPress 站点(网址为 http://wordpress.org/extend/plugins/acs-plugin-for-wordpress/)下载 WordPress 插件

  2. 在下载的文件夹中打开 acs-wp-plugin-config-sample.php 文件。

  3. ACS_NAMESPACE 字段中,输入 “访问控制”命名空间的完全限定域名,例如 mynamespace.accesscontrol.windows.net。若要查找域名,请在 ACS 门户中单击“应用程序集成”。该值显示在“终结点引用”部分的“管理门户”字段中。

  4. 对于 ACS_APPLICATION_REALM 常量,请输入你在将 WordPress 站点作为信赖方应用程序注册到 ACS 时输入的领域,例如 http://127.0.0.1/wordpress/

  5. ACS_TOKEN_SIGNING_KEY 字段中,请输入你在将 WordPress 站点注册为信赖方应用程序时创建的令牌签名密钥。请安全保管此密钥,就像对待密码一样。

  6. 将该文件另存为 acs-wp-plugin-config.php

    Important重要提示
    acs-wp-plugin-config.php 文件包含敏感信息,必须防止未经授权的用户访问。建议你对此文件设置适当的权限,并将 Web 服务器配置为拒绝通过浏览器直接访问此文件。对于 Apache Web 服务器,请将以下代码复制到名为 .htaccess 的文件中,然后将该文件放入 acs-wp-plugin-config.php 文件所在的同一个目录中。

    # protect acs-wp-plugin-config.php
    <files acs-wp-plugin-config.php>
    order allow,deny
    deny from all
    </files>
    
    

  1. acs-plugin-for-wordpress 文件夹复制到 WordPress 安装中的 /wp-content/plugins/ 文件夹。

  2. 在 Web 浏览器中,导航到你的 WordPress 站点并以管理员身份登录。

  3. 在站点管理区域中,单击“插件”。此时将显示“WordPress 的 ACS 插件”页。

  4. 在“WordPress 的 ACS 插件”下,单击“激活”。现在,已在你的站点上启用了 ACS WordPress 插件。

  1. 若要测试插件,请在你的 WordPress 站点上注销,然后在站点主页上选择“登录”。

    登录页为你在 ACS 中配置的每个标识提供程序显示了一个按钮。

  2. 选择某个标识提供程序并登录。

  3. 在对你进行身份验证时,系统将要求你为 WordPress 站点创建一个用户名。如果你是使用 Windows Live ID 登录的,则系统还会要求你输入电子邮件地址。

随后将会创建一个具有“订户”角色的新 WordPress 帐户,并将你重定向到你的 WordPress 配置文件页。以后在访问时,单击该标识提供程序即可登录。系统不会提示你输入用户名或电子邮件地址。

note备注
管理员帐户可将联合订户帐户升级到管理员状态,以便你可以使用联合身份验证帐户来管理站点。

  • Windows Live ID 为每个用户创建的唯一 ID 特定于你的 “访问控制”命名空间。如果你将 “访问控制”命名空间替换为具有不同名称的 “访问控制”命名空间,则使用 Windows Live ID 帐户进行身份验证的用户将无法登录到你的站点。如果你需要更改 “访问控制”命名空间(这种情况很少见),这些用户仍可以通过 WordPress 密码重置功能来使用本地密码登录。

显示: