文档首页/ 统一身份认证服务 IAM/ API参考/ API/ 联邦身份认证管理/ Token/ 获取联邦认证unscoped token(IdP initiated)
更新时间:2024-11-18 GMT+08:00

获取联邦认证unscoped token(IdP initiated)

功能介绍

该接口可以用于通过IdP initiated的联邦认证方式获取unscoped token。

Unscoped token不能用来鉴权,若联邦用户需要使用token进行鉴权,请参考获取联邦认证scoped token获取scoped token。

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

  • 该接口支持在命令行侧调用,需要客户端使用IdP initiated的联邦认证方式获取SAMLResponse,并采用浏览器提交表单数据的方式,获取unscoped token。

调试

您可以在API Explorer中调试该接口。

URI

POST /v3.0/OS-FEDERATION/tokens

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

客户端必须使用浏览器提交表单数据的方式向服务端传SAMLResponse参数,故该字段需取值如下:application/x-www-form-urlencoded

X-Idp-Id

String

身份提供商ID。

表2 请求formData参数

参数

是否必选

参数类型

描述

SAMLResponse

String

在IdP认证成功后返回的响应体。

SAMLResponse获取方式:

  1. 在浏览器的地址栏输入并跳转链接:https://idp.example.org/idp/profile/SAML2/Unsolicited/SSO?providerId=iam.example.com。
  2. idp.example.org :IDPmetadata中的entityID;

    iam.example.com :SPmetadata中获取的entityID。

  3. 该链接可打开身份提供商登录页面,根据需要输入映射规则中的用户名(支持免密登录),单击登录,跳入认证页面后按F12,单击认证页面的accept。从下图所示的POST中获取SAMLResponse。
    图1 获取SAMLResponse

响应参数

表3 响应Header参数

参数

参数类型

描述

X-Subject-Token

String

签名后的unscoped token。

表4 响应Body参数

参数

参数类型

描述

token

Object

联邦认证的unscoped token信息。

表5 token

参数

参数类型

描述

issued_at

String

token产生时间。

说明:

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

expires_at

String

token到期时间。

说明:

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

methods

Array of strings

获取token的方式。

user

Object

获取token的用户信息。

表6 token.user

参数

参数类型

描述

domain

Object

用户所属账号信息。

id

String

用户ID。

name

String

用户名称。

OS-FEDERATION

Object

联邦身份认证信息。

表7 token.user.domain

参数

参数类型

描述

name

String

用户所属账号名。

id

String

用户所属账号ID。

表8 token.user.OS-FEDERATION

参数

参数类型

描述

groups

Array of objects

用户组信息列表。

identity_provider

Object

身份提供商信息。

protocol

Object

协议信息。

表9 token.user.OS-FEDERATION.groups

参数

参数类型

描述

id

String

用户组ID。

name

String

用户组名称。

表10 token.user.OS-FEDERATION.identity_provider

参数

参数类型

描述

id

String

身份提供商ID。

表11 token.user.OS-FEDERATION.protocol

参数

参数类型

描述

id

String

协议ID。

请求示例

获取联邦认证unscoped token(IdP initiated)。

POST https://iam.myhuaweicloud.com/v3.0/OS-FEDERATION/tokens
SAMLResponse=PD94b...

响应示例

状态码为 201 时:

创建成功。

响应Header参数:
X-Subject-Token:MIIatAYJKoZIhvcNAQcCoIIapTCCGqECAQExDTALB...
响应Body参数:
{
    "token": {
        "expires_at": "2020-02-13T14:21:34.042000Z",
        "methods": [
            "mapped"
        ],
        "issued_at": "2020-02-12T14:21:34.042000Z",
        "user": {
            "OS-FEDERATION": {
                "identity_provider": {
                    "id": "ACME"
                },
                "protocol": {
                    "id": "saml"
                },
                "groups": [
                    {
                        "id": "06aa22601502cec4a23ac0084a74038f",
                        "name": "admin"
                    }
                ]
            },
            "domain": {
                "name": "IAMDomain",
                "id": "06ba0970a097acc0f36c0086bb6cfe0"
            },
            "name": "FederationUser",
            "id": "LdUTYSC7zmJVIic3yaCbLBXDxPAdDxLg"
        }
    }
}

返回值

返回值

描述

201

创建成功。

400

参数无效。

401

认证失败。

403

没有操作权限。

405

不允许的方法。

413

请求体过大。

500

内部服务错误。

503

服务不可用。

错误码