授权是一种向用户提供身份验证和内容授权的方法。用户登录后能够访问之前无法查看的内容。授权有两个主要用途。

  • 根据登录帐户为不同的用户提供不同的内容。例如,水肺潜水应用程序可为注册某项课程的学生提供一组集合,并为水肺潜水教练提供另一组集合。
  • 将数字订阅绑定到印刷订阅。用户可以通过应用商店(如 iTunes App Store)购买或订阅内容,也可以通过发布者直接登录。如果用户的登录帐户在发布者的授权数据库中进行了注册,则用户可以通过登录来访问内容。

所有平台均支持授权:iOS、Android、Windows 和桌面 Web 查看器均不例外。

要使用授权,则需要能够实施 Direct Entitlement API v2 的授权服务:

 

 

下载

授权的工作原理 

 

请注意下列事项:

  • 授权在集合级别确立。
  • 授权基于与集合关联的产品。产品列于点播门户的“Products & Subscriptions”部分。
  • 有权访问某个集合的用户,可以访问该集合中的所有文章。
  • 用户不会自动获得嵌套集合的授权。
  • 如果集合的产品类型设置为“Entitled”,则每篇文章的“Article Access”设置决定了用户是否拥有对该文章的访问权限。如果文章设置为“Free”,则用户可以查看该文章。如文章设置为“Protected”,则用户获得授权后才可查看该文章。如果文章设置为“Metered”,则实行阈值设置。“Metered”文章设置主要用于商业应用程序,可允许客户在购买前预览内容。(请参阅 AEM Mobile 应用程序中的付费专区和文章预览。)
  • 如果集合中有一个设置为“受限”的产品,则用户登录获得授权后才可查看该集合。(请参阅 AEM Mobile 应用程序中的受限集合。)
  • 如果集合中有一个产品设置为“Free”,则即使“Article Access”设置为“Protected”或者“Metered”,该集合中的所有文章也均被视为免费。
  • 默认情况下,当用户点击“Account”或“Sign In”选项时,应用程序中将显示标准的登录提示。要更改登录界面,您可以设置自定义身份验证。例如,您可以通过标识提供者(例如 Facebook 或 Google)启用登录,并将您的授权服务器配置为与该标识提供者配合使用。(请参阅 AEM Mobile 中的自定义身份验证。)

启用授权

  1. 设置授权服务器。

    Experience Manager Mobile 需要具备能够实施 Direct Entitlement API v2 的授权服务。有关设置授权服务器的信息,请参阅以下文章:

    授权服务器推荐

    • 我们建议使用 HTTPS 域而不是 HTTP。如果您使用的是 HTTP,请确保在构建 iOS 应用程序时选择“允许来自 HTTP 的内容”选项。
    • 通过使用 Java 8 JRE(或更高版本)和 Apache HttpClient 库执行请求来测试服务器。我们建议使用 TLS 1.2。尽管 TLS 1.1 和 TLS 1.0 受支持,但它们不符合 Apple ATS 准则。如果您使用的是 TLS 1.1 或 1.0,请在构建 iOS 应用程序时选择“允许来自 HTTP 的内容”选项。SSL 3 不再受支持,我们不建议使用 TLS 1.0。
    • 在服务器证书过期前,请主动续订该证书;否则,一旦证书过期,与授权服务的通信将完全停止运行。
    • 有关支持的 SSL 证书的列表,请参阅可接受的证书 | 直接授权

     

  2. (主管理员)创建要在项目中使用的授权服务。

    主管理员使用主设置中的“Entitlement Services”选项卡为帐户中使用授权的所有项目创建授权服务。必须创建至少一个授权服务才能在项目级别启用授权。

    授权端点

    指定授权服务的授权端点的 URL。

    身份验证端点

    如果授权服务 SignInWithCredentials 端点的 URL 与授权端点的 URL 不同,请指定 SignInWithCredentials 端点的 URL。

    授权缓存

    指定对您的服务授予的授权信息可进行缓存的时长(以秒为单位)。在缓存期到期后,可以联系您的授权服务以获取更新的授权信息。指定一个介于 0 和 31546000 秒(约 1 年)之间的值。如果未指定任何值,则不会缓存授权响应,就像指定了值 0 一样。

    请注意,将会按相同的指定值对缺少的授权进行缓存,但上限仅为 1 小时。因此,允许将授权缓存 1 个小时以上是安全操作,因为添加一个授权后最多需要 1 个小时即可生效。缺点是,删除授权需要花费更长的时间才能生效。如果这一点不成问题,我们建议设置较高的缓存值(如 1 个月)。较高的缓存值将减小服务器负载并提高用户的响应能力和可靠性。

    如果无法选择进行如此长时间的缓存,建议将授权缓存值设为高于典型用户会话时长。指定较低的值(如 1 分钟)对于改善加载时间和响应能力非常有用。

    身份验证令牌缓存

    指定对您的服务提供的身份验证令牌可进行缓存的时长(以秒为单位)。在缓存期到期后,可以联系您的服务来续订身份验证令牌。指定一个介于 0 和 31546000 秒之间的值。如果未指定任何值,则会将身份验证令牌缓存 3600 秒(1 小时)。如果将值指定为 0,则将不会对身份验证令牌进行缓存(不推荐)。

    如果 RenewAuthToken API 始终返回与传入的 authToken 不同的 authToken,则身份验证令牌缓存的值不应小于授权缓存的值。

    连接超时

    指定授权服务器等待建立连接并获取响应的秒数(1 到 60 秒)。如果未指定任何值,则连接超时将设置为 15 秒。

  3. 编辑您的项目设置,单击“访问”选项卡,然后指定以下选项:

    • 选择“启用授权”。必须在主设置中创建至少一个授权服务才能使用此选项。
    • 选择在主设置中创建的授权服务。确保选择适合项目的授权服务。
    • 指定用于授权服务的 Bundle ID。如果您的授权服务所需的 Bundle ID 与构建应用程序时指定的 Bundle ID 不同,则必须在项目设置中指定 Bundle ID。桌面 Web 查看器授权也需要 Bundle ID。
    • 如果需要,请指定“Create Account URL”和“Forgot Password”选项。您的用户可以点击这些按钮以查看您指定的网页。

     

  4. 发布集合。

    发布集合会将产品 ID 添加到“Products & Subscriptions”(除非您事先创建了产品 ID 并在编辑集合时选择了它)。

  5. 在门户的“产品和订阅”部分中,选择与每个集合关联的产品,并对其进行编辑,将其设置为“已授权”或“受限”。

    当定义产品类型时,您可以选择“Free”、“Entitled”或“Restricted”。所有用户都可使用免费集合。如果您希望需要用户登录才可访问集合,请选择“Entitled”或者“Restricted”。已授权集合对所有应用程序用户均可见,但是受保护文章内含有付费专区。在用户登录获得访问权限之前,受限集合不可见。有关受限集合的信息,请参阅 AEM Mobile 中的受限集合

    指定产品类型
    指定产品类型

  6. 如集合中产品类型设置为“Entitled”,则请编辑文章属性,指定每篇文章设置为“Free”、“Metered”还是“Protected”。

    在“entitled”集合中,所有用户均有权访问免费文章。受保护的文章则会显示付费专区,提示用户登录。对按量收费的文章,则实行阈值设置。

    在“Free”或者“Protected”集合中,文章访问权限设置并不重要。免费集合中的文章可供所有用户查看,受限集合中的文章在用户登录之前为隐藏状态。

  7. 构建应用程序并测试登录功能。

    预检应用程序不支持授权功能。

授权服务性能

理论上,始终会快速处理授权请求。一般而言,授权服务的响应时间越短,每秒可接收的请求就越多。

请注意,在使用授权和推送通知时,可能会出现极高的峰值流量,具体取决于登录用户所占的百分比。建议在推送期间监控服务器负载并相应地限制已发送推送通知的速率。

本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可  Twitter™ 与 Facebook 中的内容不在 Creative Commons 的条款约束之下。

法律声明   |   在线隐私策略