如何存储密码供以后使用?

时间:2015-11-02 15:03:39

标签: outlook passwords exchange-server exchangewebservices

我需要能够存储用户的Exchange密码,以便稍后使用EWS使用它来执行某项任务。我知道以纯文本存储密码是一种可怕的犯罪,所以我有什么选择?

在我的情况下,我的应用程序将可以访问一个管理帐户,该帐户可以使用模拟与用户合作。日历。我需要存储此管理员帐户的密码,以便我可以在以后使用Exchange服务器进行身份验证时使用它。我不打算使用EWS托管API。

1 个答案:

答案 0 :(得分:2)

我有一位用户创建了一个具有类似要求的日历应用。默认情况下,全局拥有这些权限的帐户非常糟糕,不推荐使用。模拟授权角色由需要访问应用程序以降低风险范围的部门授予。但是,如果您在全球范围内需要此功能,请参阅我建议的用于减轻帐户/密码曝光的内容:

  1. 仅将帐户功能限制为Exchange服务。对于仅需要邮箱访问和模拟角色的EWS服务帐户,不需要本地登录和其他常规域用户权限等功能。在这种情况下,帐户无法登录到计算机,也无法用于RDP。这限制了恶意使用的曝光。

  2. 用户/传递可以存储在您的应用程序数据库中,连接字符串也可以存储在您的应用程序之外,这里有很多:https://security.stackexchange.com/questions/22817/how-to-encrypt-database-connection-credentials-on-a-web-server并加密数据库中的密码;进一步阅读:http://www.darkreading.com/safely-storing-user-passwords-hashing-vs-encrypting/a/d-id/1269374

  3. 限制数据库服务器和管理访问权限。如果在组之间共享数据库服务器,这是一个比它应该更大的问题。审核数据库服务器访问权限,如果厨房中有太多厨师,请重新限制。数据库服务器也不应该被用户网络直接访问,但这可能是一个需要解决的更大问题。

  4. 限制对应用程序的访问。如何,是外部可用还是仅在您的周边可用?无论哪种方式,应用程序还应包括仅用于访问的身份验证,使用Kerberos或其他一些SSL身份验证,确保应用程序不能用于过度访问的DoS EWS服务。

  5. 在Exchange上为此用户创建一次性限制策略,并相应地进行分配,以防止应用程序破坏EWS或限制常规用户功能。如果黑莓管理员没有遵循建议,那么这就是他们学到的东西。当BES服务器无法正确拆除连接时,Web服务将开始丢弃有效的客户端请求。因此,BES必须指示用户为各种Exchange功能创建一次性限制策略。我为创建我的EWS应用程序的用户做了同样的事情。有几次它救了我。

  6. 实际上,它将归结为良好的应用程序设计和与Exchange团队协调的要求。

    唐'吨' S:

    1. 不要将用户名/密码存储在Apache / IIS页面或连接字符串
    2. 如果您不必
    3. ,请不要为该帐户授予全局权限
    4. 不允许对应用程序进行未经身份验证的访问,并允许无限制的连接时间
    5. 希望这有帮助。