【问题标题】:Authentification and security model in client/server aplications客户端/服务器应用程序中的身份验证和安全模型
【发布时间】:2009-06-18 17:27:57
【问题描述】:

我正在开发需要客户端使用其用户名和密码登录的自定义客户端/服务器应用程序。用户帐户与 Windows/AD 帐户没有任何关系。登录后,客户端应用程序将向服务器系统请求其他服务。

我的问题是实现这一点的最佳方法是什么?什么样的建筑最适合这里?我猜需要实现某种票证/令牌认证系统???

谢谢

【问题讨论】:

    标签: security authentication client-server token


    【解决方案1】:

    实际上,您可能希望实现一个在不同部分(登录服务器、客户端、应用服务器)之间传递“票证”的系统。此票证将包含基本信息,例如用户 ID(用户名、行 ID 等)。此票证将使用授权服务器共享的密钥进行加密,或者将使用服务器共享的密钥加盐的票证内容的哈希值进行标记。第一种方式使只有授权服务器可以创建和读取票证,第二种方式使授权服务器可以验证只有授权服务器可以创建票证,但允许任何人读取票证。所有应用服务器都会在继续执行任何应受保护的操作之前检查票证(通过尝试解密或验证哈希匹配)。如果这是一个网络应用程序,那么 cookie 是存储票证的好地方。

    【讨论】:

    • 你有代码示例吗?语言和平台无关紧要。
    【解决方案2】:

    除了客户端/服务器之外,您对您的架构没有说太多,所以我假设您正在使用某种形式的表单设计器,例如 VS 中的 Windows 表单。在这些情况下,我总是使用某种形式的数据库表身份验证,因为它很容易、易于设置并且相当安全。您甚至可以通过这种方式设置组和角色,无需大惊小怪。

    Table:  Users
    Fields: UserID   PK
            Login    Text
            Password Text
            ...
    
    Table:  Roles
    Fields: RoleID   PK
            Role     Text
            ...
    
    Table:  UserRoles
    Fields: UserID    FK
            RoleID    FK
    

    【讨论】:

      猜你喜欢
      • 2011-04-30
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 2014-12-23
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      相关资源
      最近更新 更多