如果是客户端系统,比如winform,wpf构建的系统,你登陆之后,会看到自己权限可以操作的东西。你也很难通过其他方式,调用系统的方法。但是在BS系统中,请求和响应都是通过HTTP协议进行的,而且通过web方式,安全问题是一个必须要看重的问题。由于HTTP协议是一个无状态的协议,每次的HTTP通信过程都是没有关系的。所以在权限这块,比CS系统更加复杂了一些。
这2个单词,一个是Authentication,一个是Authorization,你在百度翻译中可以看到,这个2个单词的意思几乎一样。除了这2个单词的含义确实关联很深,还有就是中文翻译的问题,认证和授权在中国人听起来不是很敏感,觉得大概是一个意思。
举例说明,我是A公司的销售,我要去B公司是进行业务出差,如果B公司比较正规的话,B公司应该给我访客证,然后我在进入到B公司的工厂。那么首先,我去B公司的大门保安那里登记自己的姓名,公司,身份证,来访目的,然后保安会给我一个访客证。那么这个过程就是Authentication的过程。我拿到了访客证,然后进了B公司的大门,
然后进到B1车间,我发现B1车间门口也有一个保安,我要进入车间,保安检查了我的访客证,然后让我进去,这个过程是Authorization。
所以仔细的想一下,这确实是2个过程,保安检查你的身份证和其他信息,然后发一个访客证这个过程是认证的过程。当你拿了访客证去车间之后,车间的保安人员对你进行二次检验,保证你有进入这个车间的权限,才会让你进去,这是授权的过程。更准确的说,这是一个权限验证和检查的过程。
如果只有认证过程,而没有授权过程,那就相等于你拿了访客证就可以进入公司的任何一个地方,而没有管你,从安全性上说,这个流程是不完善的。
所以认证和授权是构建一个安全网络不可缺少的2个部分,尽管他们的概念很接近。