当前遇到 401 No authorization 是因为调用 CAS 登录接口时,缺少了请求体(Body)中的账号密码,且没有使用 HTTPS 协议。H3C CAS 的 RESTful API 认证有一套标准的流程,以下是具体的操作和配置方法:
1. 修正请求地址(强烈建议改用 HTTPS)
虽然 HTTP 也能通,但 H3C CAS 在生产环境或较新版本中通常会强制要求 HTTPS 加密访问,且 API 调用建议使用默认的安全端口 8443。
建议地址:https://10.20.160.130:8443/cas/service/session (如果 8443 不通,再尝试 http://10.20.160.130:8080/cas/service/session)。
注:如果浏览器或 Insomnia 提示证书不安全,需在 Insomnia 的 SSL 验证设置中暂时关闭证书验证(Disable TLS verification)。
2. 完善 Headers(请求头)
当前 Content-Type: application/json 是正确的,这告诉服务器发送的是 JSON 格式数据。无需在此处添加 Authorization 或 Token,因为获取 Token 的接口本身不需要认证。
3. 添加 Body(请求体)—— 这是解决 401 的关键
当前截图中 Body 标签页是空的。H3C CAS 的登录接口需要在 Body 中传入 JSON 格式的账号和密码。
在 Insomnia 中点击 Body 标签页。
选择格式为 JSON。
填入以下 JSON 数据(替换为实际的账号密码,默认通常是 admin / Cloud@1234 或安装时设定的密码):
{
"username": "admin",
"password": "Cloud@1234",
"locale": "zh_CN"
}
4. 解析返回值并携带 Token
点击 Send 发送请求后,如果账号密码正确,服务器会返回 200 OK,并在响应体中返回一个 sessionId(即 Token):
{
"success": true,
"result": {
"sessionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userId": "admin",
"userName": "admin",
...
}
}
5. 后续接口的认证方式
获取 sessionId 后,在调用其他 CAS API(如查询集群、虚拟机等)时,必须在 Headers 中带上这个 Token,CAS 才能识别身份。
Header Key:X-Auth-Token
Header Value:刚才获取的 sessionId(例如:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
💡 完整操作示例(可直接参考配置)
第一步:获取 Token
Method: POST
URL: https://10.20.160.130:8443/cas/service/session
Headers: Content-Type: application/json
Body (JSON):
{
"username": "admin",
"password": "你的实际密码",
"locale": "zh_CN"
}
第二步:调用业务接口(以查询集群为例)
Method: GET
URL: https://10.20.160.130:8443/cas/service/clusters
Headers:
Content-Type: application/json
X-Auth-Token: 第一步返回的sessionId
常见排错提示:
依然 401:请确认输入的 username 和 password 能否正常在浏览器中登录 CAS 的 Web 管理界面。
找不到 API 文档:可以在浏览器中直接访问 https://10.20.160.130:8443/cas/api-doc 查看当前 CAS 版本完整的 REST API 接口文档和参数说明。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论