概述
核心关注点:
0)'认证和授权'-->后续k8s的RBAC
1)相关的'响应状态码': 401、403
2)相应的'请求'和'响应'头
3)'应用'中的体现:nginx、kubernetes、mysql
一 认证和授权
(1)认证
'authentication --> 身份验证意味着'确认您自己的身份'是否合法,'能否登陆'系统?
注意: 验证身份的合法'并不意味'着有'对应的access权限',换句话说可能登陆系统后'啥也做不了'
(2)授权
authorization
1)授权意味者可以'操作哪些资源'?
2)只有经过'身份验证',才会'进行授权'
3)授权意味着授予'对系统的访问权限',授权是验证'您有权访问'的过程
(3)总结
参考链接1
参考链接2
鉴权认证的基本概念
二 401和403状态码
400错误
(1)401
① HTTP 401 错误 - 未授权: (Unauthorized)
您的Web服务器认为:客户端发送的 HTTP '数据流是正确(报文语法正确)'的,但进入网址 (URL) 资源,需要'用户身份验证'
备注1: 这就是通常所知的' HTTP 基本验证',需客户端提供的验证请求在 'HTTP 协议'中被定义为 'WWW – 验证标头字段 (WWW-Authenticate header field)'
备注2:桌面应用程序一般不会使用cookie, 而是把 "用户名+冒号+密码"用BASE64编码的字符串放在http request 中的'header Authorization'中发送给服务端,这种方式叫'HTTP基本认证'(Basic Authentication)
② 原因
因为request中'没有包含Authorization header',服务器会'返回一个401' Unauthozied给'客户端',并且在Response的header'www-authentivate'中添加信息
当客户端把'用户名密码'用'Base64加密后编码',放在'Authorization header中'发送给服务器,那么就会'认证成功'了
③ 场景及办法
最近用postman偶然遇见了401的报错,是请求'用户的token'这个接口的时候,所有的Body'请求参数'和Headers都一样,但是就是'报错401'
'后端': 忘了加Authorization这个请求Header了
'解决办法':在Headers中添加'基本认证的键值对'
④ nginx中的体现
nginx basic auth指令
配置'Basic Auth'登录认证'ngx_http_auth_basic_module'
htpasswd命令详解
骏马威龙
1)密码创建
在开始配置Basic Auth登录认证前,我们需要使用'htpasswd生成账号及密码'
备注1: 密码'存放路径'没有限制,可'自定义'路径
备注2: htpasswd 是开源 http 服务器 'apache httpd' 的一个'命令工具',用于生成 http '基本认证'的密码文件
2)密码创建命令
方式1:printf "wzj:$(openssl passwd -crypt 123456)n" >>conf/htpasswd -->'可以不覆盖,添加多个身份认证' -->'推荐方式'
方式2:htpasswd -bc conf/htpasswd wzj 123456
++++++++++++++++++++'分割线'++++++++++++++++++++
cat 'conf/htpasswd'
wzj:xyJkVhXGAZ8tM
备注: wzj是'用户名',后面的密码是'123456'的base64编码
3)nginx中的配置
备注: 注意修改后'进行reload'或者'restart'
4)测试
命令行、'postman'、浏览器
思考: 如何通过'curl命令行进行认证'?-->进而如何在代码'进行身份认证'
不输入浏览器或者'用户名和密码输入错误',表现如下
curl '命令行'访问
备注: 'wget访问'--> wget --http-user=magina --http-passwd=123456
'正确'
'alias'的原因-->导致'301 MOved Permanently'
二 403
可以简单的理解为'没有权限'访问此站 --> '没有权限'的原因很多
该状态表示服务器'理解了本次请求'但是'拒绝执行'该任务
特点:该请求'不会重发'给服务器。在HTTP请求的方法不是"HEAD",并且服务器想'让客户端知道'为什么没有权限的情况下,服务器应该在'返回的信息'中描述'拒绝的理由'
+++++++++++'备注'+++++++++++
https配置成http也可能报错
(1)403的原因
403具体的报错码
最后
以上就是痴情汉堡为你收集整理的Nginx(八)认证和授权的全部内容,希望文章能够帮你解决Nginx(八)认证和授权所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复