我正在开发自定义客户端/服务器应用程序,要求客户端使用其用户名和密码登录。用户帐户以任何方式与Windows / AD帐户无关。登录后,客户端应用程序将从服务器系统请求其他服务。
我的问题是实现这个的最佳方法是什么?什么样的架构最适合这里?我想某种票/令牌认证系统需要实现???
由于
答案 0 :(得分:1)
实际上,您可能希望实现一个在不同部分(登录服务器,客户端,应用服务器)之间传递“票证”的系统。此票证将包含基本信息,例如用户ID(用户名,行ID等)。此票证将使用授权服务器共享的密钥加密,或者将使用服务器共享的密钥加密的票证内容的哈希标记。第一种方式使得只有授权服务器才能创建和读取票证,第二种方式使得授权服务器可以验证只有授权服务器可以创建票证但允许任何人读取票证。在继续执行应受保护的任何操作之前,所有应用程序服务器都将检查故障单(通过尝试解密或验证散列是否匹配)。如果这是一个网络应用程序,那么cookie是存储故障单的好地方。
答案 1 :(得分:0)
除了客户端/服务器之外,你还没有多说过你的架构,所以我假设你在VS中使用某种形式设计器,比如Windows Forms。在这些情况下,我总是使用某种形式的数据库表身份验证,因为它很容易,易于设置,并且相当安全。你甚至可以用这种方式设置组和角色,而不用大惊小怪。
Table: Users
Fields: UserID PK
Login Text
Password Text
...
Table: Roles
Fields: RoleID PK
Role Text
...
Table: UserRoles
Fields: UserID FK
RoleID FK