Microsoft Moneyのオンライン機能の回復。 アカウント認証

前のパートでは、相場更新機能の復元について説明しました。



復元したい次の機能は同期です

サーバーとのデータ。



これを行うには、2つの問題を解決する必要がありました。ファイルを後続の認証でアカウントにリンクすることと、実際の同期自体です。



そして、このトピックは非常に広範囲にわたることが判明したため、ここで問題の最初の部分の解決についてお話します。



当時、MSNポータルはすでにMicrosoftオンラインサービスへのアクセスの中心であったため、Moneyがこのポータルのアカウントを必要としたのは当然です。



ファイルをアカウントにリンクした後、デバイス間でデータを同期し、取引記録をオンラインで表示し、さらに請求書を受け取るための機能が利用可能になりました。



Moneyでユーザーを認証するために、Passportサービス、特にそのxmlプロトコルが使用されました。



認証手順全体は次のように機能しました。



1. mnypass.ini MoneyファイルのMnyPassClientXMLパラメーターで指定され URL を使用して、さまざまなプロトコルを使用してPassportサービスにアクセスするためのリンクをリストしたxmlファイル(client.xml)を要求します。 ファイルには、ドメインに従ってグループ化されたリンクのセットが含まれています。



2. mnypass.iniのMnyPassDefaultDomainパラメーターの値に従って、受信したファイルでドメインレコードが選択されます。 このエントリの要素には、次のようにHTTP POST要求が生成されるURLが含まれます。



<?xml version="1.0"?> <LoginRequest> <ClientInfo name="mnypassport" version="1.35"/> <User> <SignInName>user@mail.com</SignInName> <Password>123456</Password> <SavePassword>false</SavePassword> </User> </LoginRequest>
      
      





要素の意味は説明なしで理解できます。



応答として、サーバーから認証の成功に関するメッセージを受け取る必要があります。



 <LoginResponse Success="true"> <Redirect>https://moneycentral.msn.com/home.asp?did=1&t=AqHf*J!puuvpcU01kK*PA9&id=229</Redirect> </LoginResponse>
      
      





リダイレクトはオプションのフィールドです。 利用可能な場合、Moneyは指定されたURLでGET要求を行いますが、結果はどこにも表示されません。



またはエラーメッセージ:



 <LoginResponse Success="false"><Error Code="e5b"/></LoginResponse>
      
      





Codeは 、e8a、e15、e14、e13、e12、e11、e10、e9、e4、e3、e2、e1、e8、e5b、e5aのいずれかの値です。

デコードエラーはpassport.htmファイルにあります

HTTP応答のステータスも処理中に考慮されます。



肯定的な応答を受信すると、ユーザーは承認されたと見なされ、Moneyは次のステップに進みます。



3. 2つのパラメーターPASSPORTURLおよびUPSURLの値は、misurls.xmlファイルから取得されます。



PASSPORTURLは 、GET要求を生成するために使用され、その結果は他のどこにも関与しません。



ただし、 UPSURLからのURLは、次の形式のPOST要求を形成するために使用されます。



 <MnyOpts><CryptSeed/><GUID/><UserGuid/></MnyOpts>
      
      





要素の空の値は、Moneyがサーバーから値を受け取りたいことを意味します。



最初の2つは簡単です。



GUID-アカウントに関連付けられているメインMoneyファイルの識別子。

UserGuid-サーバー上のユーザー識別子。



しかし、 CryptSeedは暗号化キーを弱めるのに役立つと思われます。 確かに言えません このパラメーターの適用を追跡しませんでしたが、明らかに使用されていません。



予想されるサーバー応答は非常に明白です。



 <MnyOptResponse> <CryptSeed>1234</CryptSeed> <GUID>56159e04-fce1-4dbc-9e8e-9ca310dc69db</GUID> <UserGuid>9e79710b-ca04-4b6a-b299-38bf3c33366c</UserGuid> </MnyOptResponse>
      
      





ファイルがアカウントにまだ添付されていない場合、 GUIDパラメーターの値は空になります。 次に、このパラメーターの値がファイル識別子と一致しない場合でも、Moneyはフォームの別の要求を送信します



 <MnyOpts> <GUID>56159e04-fce1-4dbc-9e8e-9ca310dc69db</GUID> </MnyOpts>
      
      





ファイルをバインドします。



サーバー応答には同じ識別子が含まれている必要があります。



すべてのアクションが正常に完了すると、ユーザーは承認されたと見なされ、プログラム機能へのアクセスが許可されます。



All Articles