访问安全资源

您的应用程序可能需要访问仅限于授权用户使用的安全资源。例如,您的组织可能托管只有经过验证的用户才能访问的私有数据图层或要素服务。GeoScene 提供了多种方法来安全访问组织的内容和服务。GeoScene API for JavaScript 为使用各种方法访问受保护的 GeoScene Enterprise 。

身份验证方法

  • OAuth 2.0 — 保护对服务器资源的授权访问。
  • GeoScene 令牌 — GeoScene 专有的基于令牌的身份验证机制。
  • 网络认证 — HTTP 安全服务/集成 Windows 身份验证 (IWA)。

OAuth 2.0

OAuth 2.0 是用于处理各种支持 Web 的设备和服务器之间的身份验证决策的标准。GeoScene 平台确定用户真实性,并向客户端应用程序提供令牌。然后可在后续的安全资源请求中使用该。此功能在 GeoScene Enterprise  2.0 及更高版本中均可用,并且可与用户应用程序登录一起使用。有关其他信息,请参阅什么是 OAuth 2.0 文档。

GeoScene 令牌

基于令牌的身份验证服务要求在安全资源的每个请求中包含令牌。GeoScene Enterprise  2.0 及更高版本均支持基于令牌的身份验证,该身份验证可用于用户应用程序登录。有关详细信息,请参阅关于 GeoScene 令牌文档。

网络认证

通过 HTTP basic、HTTP 摘要或集成 Windows 身份验证 (IWA) 进行的 HTTP/Windows 身份验证资源受服务上设置的用户名和密码的保护。然后,通过浏览器弹出窗口或会话 Cookie 会提供提示。当您使用 IWA 时,登录通过 Microsoft Windows Active Directory 进行管理。用户不会登录和退出门户网站;相反,当他们打开网站时,将使用用于登录 Windows 的相同帐户登录。有关详细信息,请参阅Portal帮助中具有门户的集成 Windows 身份验证内容。

用户登录

支持用户登录的应用程序负责提供提示用户输入凭据的登录对话框。应用程序负责通过 HTTPS 传输这些凭据来确保其安全。

OAuth 2.0GeoScene 令牌均使用用户登录方法。在此模式中,用户授权您的应用程序代表他们访问内容和服务。在这种情况下,应用程序会提示用户输入用户名和密码,然后使用其凭据访问内容。

在应用程序中实现这些安全方法可能需要大量工作。在用户登录方法中,GeoScene API for JavaScript 提供了一些类来帮助简化身份验证并自动执行该过程。两个主要类是 IdentityManagerOAuthInfo 类(如果使用 OAuth 2.0 方法,则使用后者)。除其他类外,这些类位于 geoscene/identity 命名空间中。

要使用 IdentityManager,只需将 geoscene/identity/IdentityManager 作为 require 语句的一部分即可。应用程序运行并请求安全资源后,IdentityManager 将接管并处理提示用户输入相应凭据的过程。提供正确的凭据后,将生成一个令牌并将其追加到资源。除此之外,它还负责根据需要刷新令牌。

使用 OAuth 方法时,还需要添加 OAuthInfo 类并将其注册IdentityManager。使用已注册的应用程序的 OAuthInfo 类。

      
1
2
3
4
5
6
require (["geoscene/identity/OAuthInfo", "geoscene/identity/IdentityManager"], function(OAuthInfo, geosceneId) {
    var oAuthInfo = new OAuthInfo({
        appId: "<enter the registered app id here>"
    });
    geosceneId.registerOAuthInfos([oAuthInfo]);
});

有关此操作的示例,请参阅使用 OAuth 2.0 访问 GeoScene Online 项目示例。

请访问注册您的应用程序和授权用户登录指南主题,了解有关如何使用 OAuth 2.0 操作的其他信息。

应用程序登录

在某些情况下,您可能拥有安全的资源,但可能不希望最终用户必须登录才能访问它们。在这种情况下,应用程序登录将代表您为用户提供对内容的访问权限。

独立的 GeoScene Server

在此方案中,您的应用程序将使用属于有权访问这些资源的用户的硬编码凭据访问来自独立 GeoScene Server 的服务。

这些凭据保存在代理中。这允许应用程序访问用户可能无权访问的内容。无需登录提示,因为凭据已通过代理中指定的凭据提供。

应用程序中的实现

应用程序代码中的唯一要求是指定应代理的 URL,然后指向代理文件的正确位置。

  1. 首先,将 geoscene/core/urlUtils 添加到 require 语句中。
  2. 接下来,指定安全资源的 URL。
  3. 最后,指定代理文件的位置。
      
1
2
3
4
5
6
require (["geoscene/core/urlUtils"], function(urlUtils) {
    urlUtils.addProxyRule({
        urlPrefix: "my-standalone-geoscene-server.com"
        proxyUrl: "/proxy/"
    });
});

其他资源

以下是提供有关上述各种主题信息的附加资源。

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.