关于 ArcGIS 令牌
ArcGIS Server 提供了一种基于令牌的专有身份验证机制,使用户能够通过提供令牌而不是用户名与密码来进行自我身份验证。ArcGIS 令牌是包含用户名、令牌有效期和某些专有信息的加密信息字符串。要获得令牌,用户需要提供有效的用户名和密码。ArcGIS Server 会验证提供的凭据并发布令牌。用户在访问受保护资源时提供此令牌。
令牌属性
令牌的生命期
要维护令牌的安全性,每个令牌都需要和有效期相关联。如果使用过期令牌,最终用户可能收到超时或其他错误消息。
有效期较短的令牌更安全,因为恶意用户拦截的令牌只能在较短的时间内使用。但是,短有效期意味着应用程序需要更频繁地请求新令牌。
以下两个参数定义了已发布令牌的生命期:
- 短期令牌的生命期:如果客户端在请求令牌时不指定超时值,则会使用短期令牌。所发布的令牌仅在此属性定义的期间内有效。如果客户端在请求令牌时指定的超时值小于短期令牌的生命期设置,则发布具有所请求的过期值的令牌。
- 长期令牌的生命期:如果客户端在请求令牌时指定了超时值,则将请求的超时值与该属性定义的期间进行比较。如果请求的超时值小于长期令牌的生命期,则发布具有所请求的超时值的令牌。如果请求的超时值超过长期令牌的生命期设置,则返回一个错误,表明请求值超过令牌的最大允许生命期。
定义共享密钥
ArcGIS 令牌是加密信息字符串。共享密钥是用于生成此加密字符串的密钥。共享密钥越复杂,恶意用户越难解密和破译共享密钥。如果用户能够破译共享密钥,复制 ArcGIS Server 的加密算法,并获取授权用户的列表,该用户将能够生成令牌,并使用此特殊 ArcGIS Server 中的任何受保护资源。
在定义共享密钥前,请考虑以下内容:
- 共享密钥的长度应设置为 16 个字符(超出 16 个字符的任何字符均不会采用)。建议使用随机字符序列作为密钥。任何字符都可以使用,包括非字母数字字符。
- 不应将密钥设为字典中的单词或容易猜出的常用值。由于无需记住密钥或在其他位置使用该密钥,因此设置密钥与设置密码不同,复杂的密钥值并不会对用户造成不便。
- 可使用高级加密标准 (AES) 通过共享密钥对令牌加密,该标准也称作 Rijndael。密钥中的 16 个字符表示用于加密的 128 位。有关加密和 AES 的详细信息,请查阅安全性参考资料,或咨询贵组织内具备安全性和密码学专业知识的人员。
- 在高度安全的环境中,建议定期更改共享密钥。切记,如果更改共享密钥,可能需要更新应用程序才能使用新的共享密钥。一旦更改共享密钥,现有的全部嵌入式令牌都将变得无效。
令牌的安全传输
为了防止拦截和错误使用令牌,建议使用采用 HTTPS(安全套接字层或 SSL)的安全连接。使用 HTTPS/SSL 可确保恶意用户无法拦截客户端发送的用户名和密码和 ArcGIS Server 返回的令牌。
5/15/2014