这里面的错误很明确, 就是没有授权登陆, 但是实际上用户名密码是正确的,已经可以成功拿到token

登陆接口调用

http://192.168.0.13:8080/api/auth

{"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjZXBoLWRhc2hib2FyZCIsImp0aSI6IjVlYjAyN2JlLWNmNGQtNDcxMS05NGM4LTFiNDgxMjgzMzZjOSIsImV4cCI6MTY2OTgzNzU0MSwiaWF0IjoxNjY5ODA4NzQxLCJ1c2VybmFtZSI6Imdzb25nIn0.4xm19Z1a8qBODo1_FbMCC-xoWCM0HR3nbMGaNdXmTQw","username": "admin","permissions": {"cephfs": ["read", "update", "delete", "create"],"grafana": ["read", "update", "delete", "create"],"hosts": ["read", "update", "delete", "create"],"iscsi": ["read", "update", "delete", "create"],"log": ["read", "update", "delete", "create"],"manager": ["read", "update", "delete", "create"],"monitor": ["read", "update", "delete", "create"],"nfs-ganesha": ["read", "update", "delete", "create"],"osd": ["read", "update", "delete", "create"],"pool": ["read", "update", "delete", "create"],"prometheus": ["read", "update", "delete", "create"],"rbd-image": ["read", "update", "delete", "create"],"rbd-mirroring": ["read", "update", "delete", "create"],"rgw": ["read", "update", "delete", "create"],"user": ["read", "update", "delete", "create"],"config-opt": ["create", "delete", "read", "update"],"dashboard-settings": ["create", "delete", "read", "update"]},"pwdExpirationDate": null,"sso": false,"pwdUpdateRequired": false
}

此时无论你怎么排查, 都是按教程来的, 也没有任何错误

账号密码是正确的, 角色权限也都有, 但是就出现这样的问题

我之前使用 Cephadm 安装过一次, 是可以正常登陆的, 但是由于初次使用对osd磁盘不太理解, 导致osd没有自动创建, 由于当时使用的是centos7.9,内核较旧, 所以换成openEuler尝试一下

无奈 openEuler不支持 cephadm, 所以改用 Rook k8s进行安装, 安装成功后, 出现无法登陆 dashborad 的情况, 而且 mon 存在一直重启的现象并且还看不出来任何错误, osd倒是理解清楚了, 可以正常创建识别了, 但由于mon一直重启,让人很痛苦

后来改成 直接手动方式安装, 手动方式安装非常利于对整个组件的理解, 一步一步按教程执行, 很顺利, 但是遇到 python3.10的bug,  报错  Error EINVAL: SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats

这个bug在3.11已经修复, 可是 我使用的openEuler比较新 是22.09版本的, 用的3.10.2 , 这个bug直接导致我无法创建用户

所以决定换成 22.03 LTS版本, 这个版本使用的是python3.9.9 , 不存在 上述的bug

我在单台测试机器上安装试验后,现在dashboard登陆不上, 报 401 , 跟Rook出现的错误是一样的,但是网上基本上找不到这样的错误, 有这样的错误但是没有解决方案, 让人很困惑, 按理说我2次安装都遇到相同的问题, 网上应该很多解决方案,但是并没有

仔细思考了一下, 报401应该是token传的不对, 分析cookie发现了问题, 调用接口

http://192.168.0.13:8080/api/mgr/module/orchestrator  使用的token如下

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Njg5MTEwNzUsInVzZXIiOiJ7XCJ1c2VySWRcIjo0MTA0NTcsXCJ1c2VyTmFtZVwiOlwieHdrMTExXCJ9In0.yB8zHMOTkK - P3s8Y0ed7aYCmBAyF8Wz0ClyAls7AFf4;
token = eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjZXBoLWRhc2hib2FyZCIsImp0aSI6IjVlYjAyN2JlLWNmNGQtNDcxMS05NGM4LTFiNDgxMjgzMzZjOSIsImV4cCI6MTY2OTgzNzU0MSwiaWF0IjoxNjY5ODA4NzQxLCJ1c2VybmFtZSI6Imdzb25nIn0 .4 xm19Z1a8qBODo1_FbMCC - xoWCM0HR3nbMGaNdXmTQw

思考到这里就有点感觉了, 换个浏览器试试吧

换成Edge浏览器, 一下子就登陆上了, 柳暗花明的感觉非常棒

然后仔细比较了一下两边的不同

在Edge浏览器, 调用登陆接口时响应头有Set-Cookie返回

Set-C***ookie:

to***ken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjZXBoLWRhc2hib2FyZCIsImp0aSI6IjA0YzY0MTljLTQ4NjktNGNmNS05OWVjLTU4MjYzYmRiMTcwYyIsImV4cCI6MTY2OTgzODc0NSwiaWF0IjoxNjY5ODA5OTQ1LCJ1c2VybmFtZSI6Imdzb25nIn0.IG3JofYSZjHaU8kbqEcFbwKOCjMaxwMCOS9Cv3vipvU; HttpOnly; Path=/; SameSite=Strict

然后在调用http://192.168.0.13:8080/api/mgr/module/orchestrator请求时

请求头的cookie设置是这样的

Co**okie:

tok**en=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJjZXBoLWRhc2hib2FyZCIsImp0aSI6IjA0YzY0MTljLTQ4NjktNGNmNS05OWVjLTU4MjYzYmRiMTcwYyIsImV4cCI6MTY2OTgzODc0NSwiaWF0IjoxNjY5ODA5OTQ1LCJ1c2VybmFtZSI6Imdzb25nIn0.IG3JofYSZjHaU8kbqEcFbwKOCjMaxwMCOS9Cv3vipvU

这说明 chrome 浏览器屏蔽了 set-cookie, 这也是因为我关闭了ssl 的原因

网上找到一段原因

关于chrome78版本升级之后,关于set-cookie中同源的等级划分以及samesite等级修改方法
1.samesite等级:
Strict
Lax
None
1.1 Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。
1.2 Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。
1.3 Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效.
google通过调整samesite等级,一定程度上削减了csrf攻击的可能性

换成https依然报 401, 虽然 auth接口响应头有Set-Cookie,但是调用依然不起作用

主要是证书是标红的, 仍然被认定不安全吧, 网上有些介绍前端的技术可以规避这个setCookie不生效问题, 不过 ceph 我仅仅能使用即可, 使用Edge浏览器打开也可以了.

openEuler ceph mgr dashboard 无法登陆 报错 401 Unauthorized You are not authorized to access that resource相关推荐

  1. 【笔记】虚拟机用Xshell登陆报错“ssh服务器拒绝了密码”解决方法

    [笔记]虚拟机用Xshell登陆报错"ssh服务器拒绝了密码"解决方法 参考文章: (1)[笔记]虚拟机用Xshell登陆报错"ssh服务器拒绝了密码"解决方法 ...

  2. K8s运行dashboard命令启动报错:no endpoints available for service \kubernetes-dashboard\

    今天启动k8s dashboard的时候报错:"no endpoints available for service \"kubernetes-dashboard\"&q ...

  3. mariadb登陆报错: 1698 - Access denied for user

    通过shell终端中可以免密码登陆mysql -uroot,但是使用navicat for mariadb登陆报错:1698 - Access denied for user 'root'@'loca ...

  4. ceph mon 无法启动,报错:ceph-12.2.11/src/mon/AuthMonitor.cc: 157: FAILED assert(ret == 0)

    版本 Ceph Luminous 12.2.11 报错信息 /home/jenkins-build/build/workspace/ceph-build/ARCH/arm64/AVAILABLE_AR ...

  5. oracle报错1034,oracle数据库登陆报错ora-1034

    <oracle数据库登陆报错ora-1034>由会员分享,可在线阅读,更多相关<oracle数据库登陆报错ora-1034(1页珍藏版)>请在金锄头文库上搜索. 1.oracl ...

  6. mysql unknown variable basedir_mysql登陆报错mysql: unknown variable 'basedir=

    mysql登陆报错mysql: unknown variable 'basedir= 发布时间:2020-08-10 13:01:16 来源:ITPUB博客 阅读:67 作者:feelpurple 使 ...

  7. Foxmail登陆报错outlook邮箱报错:foxmail,C4 NO LOGIN failed.

    1 事件 Foxmail登陆报错outlook邮箱报错: foxmail,C4 NO LOGIN failed. 2 原因 这是由于outlook邮箱设置了双重验证登陆,foxmail无法弹出验证登陆 ...

  8. Oracle数据库登陆报错ORA-00257

    Oracle数据库登陆报错ORA-00257:Archiver error. Connect AS SYSDBA only until resolved.医院Oracle RAC架构 解决方式: 登陆 ...

  9. cesium 地图无法加载 报错401 缺少token

    cesium 地图无法加载 报错401 缺少token 首先,报错401 说明用户没有访问权限,需要进行身份认证,也就是cesium需要密钥,也是最近实行的吧,因为之前不用也能加载出地图. token ...

最新文章

  1. JAVA基础 (二)反射 深入解析反射机制
  2. 为什么excel图片会变成代码_莲藕为什么会变色?焯水就发黑,炖汤就变粉色,甚至会变成暗紫色...
  3. 大白话聊聊 Kafka 的架构原理和网络设计,它的性能高在什么地方?
  4. dubbo could not get local host ip address will use 127.0.0.1 instead 异常处理
  5. 给这台华为S5700交换机配一下链路聚合
  6. 经典论文复现 | 基于标注策略的实体和关系联合抽取
  7. 在 Ubuntu 16.04 LTS 上安装 Python 3.6.0
  8. easyexcel获取所有sheet页名称_老板让我汇总多个sheet,我不会,同事却说使用PQ仅需2步搞定...
  9. 『ACM-数据结构』信息竞赛进阶指南--线段树
  10. 全网最细之super讲解
  11. 51单片机流水灯程序
  12. 无线路由器关掉dhcp服务器,无线路由器关闭dhcp会好不好
  13. 论文解读:Prediction of Protein–Protein Interaction Sites Using Convolutional Neural Network
  14. 叉乘点乘混合运算公式_七(上)数学:有理数混合运算常考题型笔记100%整理,收藏+学习...
  15. 【知识图谱】实践篇——基于知识图谱的《红楼梦》人物关系可视化及问答系统实践:part1项目介绍与环境准备
  16. 人人都道RAZ好,我读了400多本之后,才明白哪里好
  17. Centos7.5 BCM4322无线网卡驱动安装踩坑记录
  18. linux中shell命令行缩进,Linux下几个实用的bash命令 | 旺旺知识库
  19. 【JS中循环嵌套常见的六大经典例题+六大图形题,你知道哪几个?】
  20. 2021山丹一中高考成绩查询,2019年张掖中考分数线,张掖中考录取分数线(出炉)

热门文章

  1. 从逻辑功能上计算机网络可以分为两部分,从逻辑功能上看计算机网络分为( )几部分...
  2. 招4000人!美团2023年春季校园招聘启动!
  3. 物联网硬件模拟软件 MqttEmu
  4. 萤石开放平台-怎么做账号之间的联动操作?(设备托管)
  5. tailgate and piggyback
  6. android 点赞 1,GoodView Android 点赞+1 效果,支持文本和图像 @codeKK Android开源站
  7. Hive是如何将hql语法转换成MR执行的
  8. File类与IO流知识总结(三):缓冲流、转换流、序列化流
  9. 视频直播方案(播放器和SDK)
  10. C#开发BIMFACE系列19 服务端API之获取模型数据4:获取多个构件的共同属性