简单的情况。现有项目需要身份验证和授权,我需要进行设计。首先,我选择将整个事物分成两个模块,一个用于身份验证,另一个用于授权。两者都将被视为项目的黑盒子。目前,身份验证模块将仅使用用户的Windows帐户,将其链接到唯一的GUID,并将此GUID作为用户ID提供给其他模块。该模块的较新版本将更加“神奇”,但就目前而言,这已经足够了。
授权模块会更复杂一些。它将使用GUID并将其链接到用户的访问权限。使用GUID,它可以与身份验证模块通信并请求更多用户信息。
但是除了角色之外,授权模块是否还应该管理其他一些用户数据,还是将它们添加到身份验证模块会更好? (想想姓名,地址,电话,办公室名称,性别以及他们喜欢咖啡的方式......)
基本上,身份验证模块将包含一个界面,喜欢使用我们软件的客户可以使用默认身份验证模块或使用该界面开发自己的版本。所以我不希望它保留太多信息。
我是否需要身份验证模块中的更多信息而不仅仅是角色?
答案 0 :(得分:1)
如果使用身份验证的应用程序受益于共享信息,例如电子邮件地址的更改,则可以将其存储在身份验证系统中。实际上,身份验证调用可以实现为用户信息的检索以及一些凭证,例如密码。
另一方面,授权(角色,访问权限等)可能更具体地针对单个应用程序及其功能。