文档首页> 统一身份认证服务 IAM> API参考> API> 联邦身份认证管理> Token> 获取联邦认证unscoped token(OpenID Connect ID token方式)
更新时间:2023-07-18 GMT+08:00

获取联邦认证unscoped token(OpenID Connect ID token方式)

功能介绍

该接口可以用于通过OpenID Connect ID token方式获取联邦认证unscoped token。

该接口可以使用全局区域的Endpoint和其他区域的Endpoint调用。IAM的Endpoint请参见:地区和终端节点

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详情。

表5 UnscopedTokenInfo

参数

参数类型

描述

expires_at

String

过期时间。

说明:

UTC时间,格式为 YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照 ISO-8601,如:2023-06-28T08:56:33.710000Z。

methods

Array of strings

token获取方式,联邦认证默认为mapped。

issued_at

String

生成时间。

说明:

UTC时间,格式为 YYYY-MM-DDTHH:mm:ss.ssssssZ,日期和时间戳格式参照 ISO-8601,如:2023-06-28T08:56:33.710000Z。

user

object

用户详情。

roles

Array of objects

角色/策略详情。

catalog

Array of objects

catalog详情。

表6 FederationUserBody

参数

参数类型

描述

OS-FEDERATION

object

联邦用户user详情。

domain

object

租户详情。

id

String

用户id。

name

String

用户名。

表7 OSFederationInfo

参数

参数类型

描述

identity_provider

object

身份提供商详情。

protocol

object

协议详情。

groups

Array of objects

用户组详情。

表8 IdpIdInfo

参数

参数类型

描述

id

String

身份提供商id。

表9 ProtocolIdInfo

参数

参数类型

描述

id

String

协议id。

表10 token.user.OS-FEDERATION.groups

参数

参数类型

描述

id

String

用户组id。

name

String

用户组名。

表11 DomainInfo

参数

参数类型

描述

id

String

租户id。

name

String

租户名。

表12 token.roles

参数

参数类型

描述

id

String

权限id。

name

String

权限名。

表13 token.catalog

参数

参数类型

描述

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

系统内部异常。

错误码

请参见错误码