SoftLayer API OpenIdConnect重置密码

时间:2016-11-29 18:16:29

标签: ibm-cloud-infrastructure

您好:使用SoftLayer API REST,我有一个在启动密码重置时工作正常的方法。 (电子邮件发送给最终用户)但是,当我遇到使用新OpenIdConnect的新用户设置时,我收到一个错误:{u'code':u'SoftLayer_Exception_Public',  u'error':你这个用户是由OpenIdConnect认证的,必须使用OpenIdConnect提供商来更改他们的密码。'}

因此,我添加了对返回状态和任何错误的检查,以便在遇到消息OpenIdConnect时重新尝试使用新方法SoftLayer_User_Customer_OpenIdConnect / initiatePortalPasswordChange。然而,这不起作用。它返回500,具有相同的错误消息。

我的方法的一个简单示例是:

def set_user_password(self):
    ''' This method initiates a portal password reset process.'''


    myUser = {
       "parameters" : [self.username]
    }


    restreq = self._url('SoftLayer_User_Customer/initiatePortalPasswordChange.json')
    #print(restreq+"""',"""+' json=hwlist')
    r = requests.post(restreq, json=myUser)
    #pp(r)
    #pp(r.json())
    result = r.json()
    if 'SoftLayer_Exception_Public' in result['code']:
        print("Exception found - checking error")
    else:
        print("Unknown error.")
        return()
    if 'OpenIdConnect' in result['error']:
        print("OpenIdConnect error - this user is part of the new OpenID")
        newrestreq = self._url('SoftLayer_User_Customer_OpenIdConnect/initiatePortalPasswordChange.json')
        newr = requests.post(newrestreq, json=myUser)
        pp(newr)
        pp(newr.json())

上面的方法发送第二个POST请求但错误返回时出现相同的错误,就好像不支持此SoftLayer方法一样。下面,我正在运行它:

发现异常 - 检查错误 OpenIdConnect错误 - 此用户是新OpenID的一部分 {u'code':u'SoftLayer_Exception_Public',  u'error':你这个用户是由OpenIdConnect认证的,必须使用OpenIdConnect提供商来更改他们的密码。'} 无

1 个答案:

答案 0 :(得分:0)

问题是因为您创建的用户是blueId用户,因此这意味着您无法使用SoftLayer的API更改密码。您需要使用bluemix api更改密码或重置密码。

同样通过UI:https://myibm.ibm.com/dashboard/(登录IBMid后)