2016-11-29 11 views
0

こんにちは:SoftLayer API RESTを使用して、パスワードリセットを開始するときにうまく動作するメソッドがあります。 (電子メールはエンドユーザーに送信されます)ただし、新しいOpenIdConnectを使用する新しいユーザーセットアップが発生すると、エラーが表示されます。{u'code ':u'SoftLayer_Exception_Public'、 'u'error':u 'このユーザーはOpenIdConnectによって認証され、パスワードを変更するにはOpenIdConnectプロバイダを使用する必要があります。 '}SoftLayer API OpenIdConnectパスワードリセット

したがって、OpenIdConnectのメッセージが表示されたときに新しいメソッドSoftLayer_User_Customer_OpenIdConnectを使用して再試行するように、/initiatePortalPasswordChange。これは動作しません。同じエラーメッセージで500を返します。私の方法の

簡単な例である:このSOFTLAYERメソッドがサポートされていないかのように

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()) 

上記の方法は、同じエラーを有する第2のPOSTリクエストが、エラーを返送します。以下は、私はそれを実行しています:見つけ

例外 - エラー OpenIdConnectエラーをチェック - このユーザーが新しいOpenIDの {u'codeの一部である ':u'SoftLayer_Exception_Public'、 u'error ':u'ThisをユーザーはOpenIdConnectによって認証され、OpenIdConnectプロバイダーを使用してパスワードを変更する必要があります。 '} なし

答えて

0

ユーザーが作成したユーザーがblueIdユーザーであるため、パスワードを変更できませんSoftLayerのAPI。 bluemix APIを使用してパスワードを変更するか、パスワードをリセットする必要があります。 UIからも

:(IBMidにログイン後)https://myibm.ibm.com/dashboard/

+0

Ugh..thanks。私は、OpenIdConnectを使ったメソッドがSoftLayer APIを通じてこれを行うという印象を受けました。この移行中に下位互換性がないという別のコメントをここで読んでいます。一言..応答してくれてありがとう。 –

関連する問題