更新时间:2022-08-16 GMT+08:00

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

功能介绍

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

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

URI

POST /v3.0/OS-FEDERATION/tokens

请求

  • Request Header参数说明

    参数

    是否必选

    类型

    说明

    X-Idp-Id

    String

    身份提供商的ID。

    Content-Type

    String

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

    application/x-www-form-urlencoded

  • Request Body参数说明

    参数

    是否必选

    类型

    说明

    SAMLResponse

    String

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

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

  • 请求样例
    curl -i -k -H 'Accept:application/json' -H 'x-Idp-Id:test_local_idp' -H 'Content-Type:application/x-www-form-urlencoded' -X POST -d 'SAMLResponse=PD94bWwgdmVyc2lvbj0iMS4wIiBl4WXZ1OGNmYmRzWk1ZeWlLKy96anpEbm1rT2FrVVBrUmlSWEpLYUt5NzJtUmtoRFBCNjgwVQpzalU3R2hKNHE4ZG48L3hlbmM6Q2lwaGVyVmFsdWU%2BPC94ZW5jOkNpcGhlckRhdGE%2BPC94ZW5jOkVuY3J5cHRlZERhdGE%2BPC9zYW1sMjpFbmNyeXB0ZWRBc3NlcnRpb24%2BPC9zYW1sMnA6UmVzcG9uc2U%2B' https://sample.domain.com/v3.0/OS-FEDERATION/tokens

响应

  • Response Body参数说明

    名称

    参数

    类型

    说明

    X-Subject-Token

    header

    string

    签名后的unscoped token。

    token

    body

    Object

    联邦认证的unscoped token,包含methods和用户信息。

  • 响应样例
    {
        "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": "test_local_idp"
                    },
                    "protocol": {
                        "id": "saml"
                    },
                    "groups": [{
                        "name": "admin",
                        "id": "45a8c8f1894444e9a016af065e152b91"
                    }]
                },
                "domain": {
                    "name": "hansheng",
                    "id": "c0e20cc993a24ad4aa3251661ef37c87"
                },
                "name": "FederationUser",
                "id": "QNSzD0bycqUXE4hiRNfyFcWfoOs8z6gT"
            }
        }
    }

状态码

状态码

说明

201

请求成功,返回token。

400

请求错误。

401

认证失败。

403

鉴权失败。

405

不允许的方法。

413

请求体过大。

500

内部服务错误。

503

服务不可用。