询问回调后如何获取用户资料

Ask for how to get user profile after callback

我的 Web 应用程序正在使用 IBM Bluemix 的单点登录 (SSO) 服务。这是我的 SSO 服务的凭据信息:

    {
   "SingleSignOn": [
     {
       "credentials": {
         "secret": "MYSECRET",
         "tokenEndpointUrl": "https://adminwebsso-jjjfvxi6wy-cq17.iam.ibmcloud.com/idaas/oidc/endpoint/default/token",
         "authorizationEndpointUrl": "https://adminwebsso-jjjfvxi6wy-cq17.iam.ibmcloud.com/idaas/oidc/endpoint/default/authorize",
         "issuerIdentifier": "adminwebsso-jjjfvxi6wy-cq17.iam.ibmcloud.com",
         "clientId": "MYCLIENTID",
         "serverSupportedScope": [
           "openid"
         ]
       },
       "syslog_drain_url": null,
       "volume_mounts": [],
       "label": "SingleSignOn",
       "provider": null,
       "plan": "professional",
       "name": "VA-Admin-Console-R1-SSO",
       "tags": [
         "security",
         "ibm_created",
         "ibm_dedicated_public"
       ]
     }
   ]
 }

从我的应用程序,我重定向到 IBM 的登录页面,如 URL:

https://adminwebsso-jjjfvxi6wy-cq17.iam.ibmcloud.com/idaas/oidc/endpoint/default/authorize?response_type=code&client_id=MYCLIENTID&redirect_uri=http://localhost/callback≻ope=openid%20openid

登录成功后 IBM 重定向到我的 Web 应用程序,我可以从回调 URL (http://localhost/callback?scope=openid&code=bngM6aV5cYHAvhv7wLAM5QSWFDARn7).

中获取参数 "code"

从那里,我使用 "code" 来获取用户配置文件。我尝试使用 AJAX 获取用户个人资料:

var settings = {
   "async": true,
   "crossDomain": true,
   "url": "https://idaas.ng.bluemix.net/sps/oauth20sp/oauth20/token",
   "method": "POST",
   "headers": {
     "content-type": "application/x-www-form-urlencoded",
     "authorization": "Basic RXhhbXBsZV9BcHBJRDpWUFlndEdXRlRvYVpZSUNTRzhJeVZFV000bUZicGpsU2t4RlRRbzlySkRGZDdzckc=",
     "cache-control": "no-cache"
   },
   "data": {
     "client_secret": "MYSECRET",
     "grant_type": "authorization_code",
     "redirect_uri": "http://localhost/callback",
     "code": "bngM6aV5cYHAvhv7wLAM5QSWFDARn7",
     "client_id": "MYCLIENTID"
   }
 }

 $.ajax(settings).done(function (response) {
   console.log(response);
 });

从上面的 ajax post 开始,我尝试使用回调中的 "code",但我收到一条错误消息:

500 Error: Failed to establish a backside connection

我被困在这里,不知道如何从 SSO 获取用户配置文件。

在 SSO 服务中有一些内置的宏可用于获取用户名,有关详细信息,请参阅。

https://console.bluemix.net/docs/services/SingleSignOn/customizing_pages.html#customizing_pages

@USERNAME@已验证用户的用户 ID。