腾讯云市场应用
最近更新时间:11/9/2023, 4:23:56 PM作者:andrewren(任豪)
腾讯云市场应用
准备工作
完成云市场Saas商品自动交付接入。
注意
需要在创建实例接口做下云市场发货参数适配。具体详细阅读云市场发货参数适配部分。
商品导入
服务商提供云市场录入商品ID给产品负责人,产品负责人联系地市云侧负责人进行tencent端录入。
地市云侧上架
联系地市云侧人员进行SP上架应用。

门户页侧购买

创建实例接口调试
门户页购买成功后,会调用创建实例接口,此时会携带SSOInfo信息带给第三方应用,如下所示:
物料 |
说明 |
client_id |
客户端标识,用于表示合作方应用在此租户下的唯一标识。 |
client_secret |
客户端密钥,和client_id一一对应。 |
authorize_uri |
登陆地址,合作方应用未登录时需要重定向到此地址发起登陆授权请求。 |
token_uri |
请求令牌地址,合作方应用使用一次性授权码获取用户访问令牌。 |
userinfo_uri |
获取用户信息地址,合作方应用使用令牌获取用户详细信息。 |
应用侧提供如下信息
物料 |
说明 |
redirect_uri |
回调URI,用于接收玉符发出的授权码。 |
initiate_login_uri |
在某些情况下,玉符需要主动发起登陆请求,此路由需要重定向到玉符的authorize_uri。 |
如何进行配置信息的交换
在购买应用时,地市云侧会通过云市场实例创建通知接口进行信息交换,该接口有扩展字段可以传递额外信息。此时由地市云会传递到第三方应用。具体接口与如何传参,见下文云市场发货参数适配-请求体部分。
应用侧提供信息在第三方响应实例创建通知接口时,须由应用侧传递至地市云。具体接口与如何传参,见下文云市场发货参数适配-响应体部分。
地市云侧玉符接入
应用侧获取到上述信息后,联系玉符侧同事王衡进行地市侧玉符接入。具体方案查看实例中心-腾讯云应用部分。
云市场发货参数适配
注意:
此部分将完成玉符OIDC应用的配置,将“准备工作”的信息进行交换。
地市云、云市场、idaas、服务商四方实例创建流程(服务商仅需关心实线箭头部分):

甄选应用按照云市场实例创建通知接口进行发货,需要对请求体和响应体中参数做额外处理。其他接口及流程按照云市场接口规范执行。
请求体
地市云将会在extendInfo.comment.SSOInfo的参数中传递免登相关参数,将其与当前第三方应用实例(租户)绑定。SSOInfo免登参数包含在发货接口request body示例中。根据SSO免登协议对接,将SSOInfo与第三方应用的实例绑定,处理方式同SSO免登协议对接中的免登信息,可先咨询玉符侧对接同学。
云市场创建实例通知接口:

发货接口request body示例:
{
"action":"createInstance",
"orderId":"20170109199524",
"accountId":"123545678",
"openId":"xz_D4XL_u7hKY5zt",
"productId":1024,
"requestId":"fab8a029-22fa-41b1-ac08-5cdde878ed04",
"productInfo":{
"productName":"云服务市场测试商品",
"isTrial":"false",
"spec":"普通版",
"timeSpan":2,
"timeUnit":"m"
},
"extendInfo":{
"comment":"{\"ApplicationID\":\"ai-6955fca827ce4c038367c0dd44a1ed7f\",\"BuyCorpId\":\"566388998075843577\",\"BuyUserId\":\"566388998075843577\",\"LoginType\":\"oidc-idaas\",\"RegionName\":\"chongqing\",\"Source\":\"Cloud-Industry\",\"SSOInfo\":\"{\\\"ClientId\\\":\\\"ai-6955fca827ce4c038367c0dd44a1ed7f\\\",\\\"ClientSecret\\\":\\\"1kB51XwMS6hYrWsPan5r9Brx\\\",\\\"AuthorizationEndpoint\\\":\\\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-6955fca827ce4c038367c0dd44a1ed7f/oidc/authorize\\\",\\\"TokenEndpoint\\\":\\\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-6955fca827ce4c038367c0dd44a1ed7f/oidc/token\\\",\\\"UserInfoEndpoint\\\":\\\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-6955fca827ce4c038367c0dd44a1ed7f/oidc/userinfo\\\",\\\"WellKnownEndpoint\\\":\\\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-6955fca827ce4c038367c0dd44a1ed7f/oidc/.well-known/openid-configuration\\\",\\\"JwksUri\\\":\\\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-6955fca827ce4c038367c0dd44a1ed7f/oidc/jwks.json\\\"}\"}"
}
}
将comment去除转义之后:
{
"ApplicationID":"ai-1d1958c456584837a8081aac1bd7264c",
"BuyCorpId":"566388998075843577",
"BuyUserId":"566388998075843577",
"LoginType":"oidc-idaas",
"RegionName":"chongqing",
"Source":"Cloud-Industry",
"SSOInfo":"{\"ClientId\":\"ai-1d1958c456584837a8081aac1bd7264c\",\"ClientSecret\":\"SURmMmUjaX3Wy9lUTZOdVIrD\",\"AuthorizationEndpoint\":\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-1d1958c456584837a8081aac1bd7264c/oidc/authorize\",\"TokenEndpoint\":\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-1d1958c456584837a8081aac1bd7264c/oidc/token\",\"UserInfoEndpoint\":\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-1d1958c456584837a8081aac1bd7264c/oidc/userinfo\",\"WellKnownEndpoint\":\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-1d1958c456584837a8081aac1bd7264c/oidc/.well-known/openid-configuration\",\"JwksUri\":\"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-1d1958c456584837a8081aac1bd7264c/oidc/jwks.json\"}"
}
将SSOInfo去除转义之后:
{
"ClientId":"ai-26893c09e06e43a89f366462278c3d40",
"ClientSecret":"4LXS9yKpLdNiZONK9ohRmR5k",
"AuthorizationEndpoint":"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-26893c09e06e43a89f366462278c3d40/oidc/authorize",
"TokenEndpoint":"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-26893c09e06e43a89f366462278c3d40/oidc/token",
"UserInfoEndpoint":"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-26893c09e06e43a89f366462278c3d40/oidc/userinfo",
"WellKnownEndpoint":"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-26893c09e06e43a89f366462278c3d40/oidc/.well-known/openid-configuration",
"JwksUri":"https://566388998075843577-idp.cig.tencentcs.com/sso/tn-fc24c53fd8e24ac8b284212a876010b4/ai-26893c09e06e43a89f366462278c3d40/oidc/jwks.json"
}
响应体
在创建实例接口的response body的additionalInfo参数中增加单点登陆URL和回调URI返回参数。
云市场创建实例通知接口

发货接口response body示例:
{
"signId":"36441d902ba",
"appInfo":{
"website":"http://www.example.com",
"authUrl":"http://www.example.com/oauth/login"
},
"additionalInfo":[
{
"name":"SSOLoginURL",
"value":"http://www.example.com/ssoLoginUrL"
},
{
"name":"RedirectURI",
"value":"http://www.example.com/oauth/RedirectURI"
}
]
}