API问题定位指导-API基础知识:认证鉴权示例

时间:2023-11-01 16:13:46

认证鉴权示例

下面通过举例为您介绍调用API的认证鉴权的关系。

  • 调用API需要认证,如果没有认证,调用会遭到API网关的拒绝。会得到如下回显。
    {    "error_msg": "Incorrect  IAM  authentication information: x-auth-token not found",    "error_code": "APIGW.0301",    "request_id": "7775eaa6b4bbe5934e565349bd27c298"}

    此处会返回APIGW.0301的错误码,错误信息意思是缺少x-auth-token,这是API网关返回的内容,表示认证不通过,不能访问。

  • 假设新创建一个IAM用户,未加入任何用户组,这时这个IAM用户没有任何创建华为云资源的权限,如果此时先获取token,然后调用API,可以通过API网关的认证,但是后端云服务会鉴权说没有权限。

    例如调用E CS 服务的查询ECS服务器列表的API。

    GET https://ecs.cn-north-4.myhuaweicloud.com/v1/05041fffa40025702f6dc009cc6f8f33/cloudservers/detail

    会得到如下响应,这次返回的不是APIGW的错误码,而是ECS的错误码,表示没有权限,禁止执行该操作。

    {    "error": {        "message": "do not have the required roles, forbidden to perform this action.",        "code": "Ecs.0110"    }}
  • 如果将上面的用户加入到一个用户组,并给这个用户组授予查询ECS服务器列表的权限。重新 获取Token (注意这里需要重新获取Token,否则Token还是上一次的授权权限),然后调用ECS服务的查询ECS服务器列表的API,则会得到如下响应。
    这是正确
    {    "count": 8,    "servers": [        {            "fault": null,            "id": "78ccc986-016f-4405-94f9-c4d58421eca7",            "name": "cce-612884-06913",            "addresses": {                "377a7782-72e4-4db2-96b7-841d5d6f18a8": [                    {...
support.huaweicloud.com/trouble-apitr/apitr_002.html