
# 获取联邦认证unscoped token(OpenID Connect ID token方式) - CreateUnscopedTokenWithIdToken
#### 功能介绍
该接口可以用于通过OpenID Connect ID token方式获取联邦认证unscoped token。Unscoped token不能用来鉴权，您需要使用unscoped token通过接口[获取联邦用户的临时访问密钥和securitytoken](https://support.huaweicloud.com/api-iam/iam_04_0003.html)获取临时访问密钥和securitytoken，后续使用获取到的临时访问密钥和securitytoken作为凭证访问云服务。
该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见：[地区和终端节点](https://developer.huaweicloud.com/endpoint?IAM)。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IAM/doc?api=CreateUnscopedTokenWithIdToken)中调试该接口。
#### 授权信息
当前API调用无需策略权限。
#### URI
POST /v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/auth
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述       |
|:---|:---|:---|:---|
| idp_id      | 是    | String | 身份提供商名称。 |
| protocol_id | 是    | String | 协议id。    |
   
#### 请求参数
表2请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                 |
|:---|:---|:---|:---|
| Authorization | 是    | String | OpenID Connect身份提供商的ID Token，格式为Bearer {ID Token}。 |
   
#### 响应参数
**状态码为 201** **时:**
表3响应Header参数 
| 参数              | 参数类型   | 描述         |
|:---|:---|:---|
| X-Subject-Token | String | 签名后的Token。 |
   
表4响应Body参数 
| 参数                                        | 参数类型   | 描述          |
|:---|:---|:---|
| [token] | object | 获取的token详情。 |
   
 表5token 
| 参数                                                                               | 参数类型             | 描述                                                                                                                                                                                                                      |
|:---|:---|:---|
| expires_at                                                                       | String           | 过期时间。 说明： UTC时间，格式为YYYY-MM-DDTHH:mm:ss.ssssssZ，日期和时间戳格式参照[ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html)，如：2023-06-28T08:56:33.710000Z。     |
| methods                                                                          | Array of strings | token获取方式，联邦认证默认为mapped。                                                                                                                                                                                                |
| issued_at                                                                        | String           | 生成时间。 说明： UTC时间，格式为YYYY-MM-DDTHH:mm:ss.ssssssZ，日期和时间戳格式参照[ISO-8601](https://www.iso.org/iso-8601-date-and-time-format.html)，如：2023-06-28T08:56:33.710000Z。 |
| [user]                                         | object           | 用户详情。                                                                                                                                                                                                                   |
| [roles]                                       | Array of objects | 角色/策略详情。                                                                                                                                                                                                                |
| [catalog] | Array of objects | catalog详情。                                                                                                                                                                                                              |
   
 表6token.user 
| 参数                                                 | 参数类型   | 描述             |
|:---|:---|:---|
| [OS-FEDERATION] | object | 联邦用户user详情。    |
| [domain]         | object | 租户详情。          |
| id                                                 | String | 用户id, 长度为32字符。 |
| name                                               | String | 用户名。           |
   
 表7token.user.OS-FEDERATION 
| 参数                                                   | 参数类型             | 描述       |
|:---|:---|:---|
| [identity_provider] | object           | 身份提供商详情。 |
| [protocol]        | object           | 协议详情。    |
| [groups]            | Array of objects | 用户组详情。   |
   
 表8token.user.OS-FEDERATION.identity_provider 
| 参数 | 参数类型   | 描述       |
|:---|:---|:---|
| id | String | 身份提供商id。 |
   
 表9token.user.OS-FEDERATION.identity_provider 
| 参数 | 参数类型   | 描述    |
|:---|:---|:---|
| id | String | 协议id。 |
   
 表10token.user.OS-FEDERATION.groups 
| 参数   | 参数类型   | 描述              |
|:---|:---|:---|
| id   | String | 用户组id, 长度为32字符。 |
| name | String | 用户组名。           |
   
 表11token.domain 
| 参数   | 参数类型   | 描述    |
|:---|:---|:---|
| id   | String | 租户id。 |
| name | String | 租户名。  |
   
 表12token.roles 
| 参数   | 参数类型   | 描述    |
|:---|:---|:---|
| id   | String | 权限id。 |
| name | String | 权限名。  |
   
 表13token.catalog 
| 参数                                                                                                 | 参数类型             | 描述       |
|:---|:---|:---|
| [endpoints] | Array of objects | 终端节点。    |
| id                                                                                                 | String           | 服务ID。    |
| name                                                                                               | String           | 服务名称。    |
| type                                                                                               | String           | 该接口所属服务。 |
   
 表14token.catalog.endpoints 
| 参数        | 参数类型   | 描述                                         |
|:---|:---|:---|
| id        | String | 终端节点ID。                                    |
| interface | String | 接口类型，描述接口在该终端节点的可见性。值为"public"，表示该接口为公开接口。 |
| region    | String | 终端节点所属区域。                                  |
| region_id | String | 终端节点所属区域ID。                                |
| url       | String | 终端节点的URL。                                  |
   
#### 请求示例
获取联邦认证unscoped token(OpenID Connect ID token方式)。
```
POST https://{address}/v3/OS-FEDERATION/identity_providers/{idp_id}/protocols/{protocol_id}/auth
```
#### 响应示例
**状态码为 201** **时:**
创建成功。
```
{ 
  "token" : { 
    "expires_at" : "2018-03-13T03:00:01.168000Z", 
    "methods" : [ "mapped" ], 
    "issued_at" : "2018-03-12T03:00:01.168000Z", 
    "user" : { 
      "OS-FEDERATION" : { 
        "identity_provider" : { 
          "id" : "idptest" 
        }, 
        "protocol" : { 
          "id" : "oidc" 
        }, 
        "groups" : [ { 
          "name" : "admin", 
          "id" : "45a8c8f..." 
        } ] 
      }, 
      "domain" : { 
        "id" : "063bb260a480...", 
        "name" : "IAMDomain" 
      }, 
      "name" : "FederationUser", 
      "id" : "suvmgvUZc4PaCOEc..." 
    } 
  } 
}
```
**状态码为 400** **时:**
参数无效。
```
{ 
  "error" : { 
    "code" : 400, 
    "message" : "Request parameter 'idp id' is invalid.", 
    "title" : "Bad Request" 
  } 
}
```
**状态码为 401** **时:**
认证失败。
```
{ 
  "error" : { 
    "code" : 401, 
    "message" : "The request you have made requires authentication.", 
    "title" : "Unauthorized" 
  } 
}
```
**状态码为 403** **时:**
没有操作权限。
```
{ 
  "error" : { 
    "code" : 403, 
    "message" : "You are not authorized to perform the requested action.", 
    "title" : "Forbidden" 
  } 
}
```
**状态码为 404** **时:**
未找到相应资源。
```
{ 
  "error" : { 
    "code" : 404, 
    "message" : "Could not find %(target)s: %(target_id)s.", 
    "title" : "Not Found" 
  } 
}
```
**状态码为 500** **时:**
系统内部异常。
```
{ 
  "error" : { 
    "code" : 500, 
    "message" : "An unexpected error prevented the server from fulfilling your request.", 
    "title" : "Internal Server Error" 
  } 
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 201 | 创建成功。    |
| 400 | 参数无效。    |
| 401 | 认证失败。    |
| 403 | 没有操作权限。  |
| 404 | 未找到相应资源。 |
| 500 | 系统内部异常。  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iam/iam_02_0006.html)。
