2009-05-11 16 views
0

salesforceアプリケーションから自分のWebサーバーへのhttpクエリの秘密鍵認証を行う良い方法はありますか?言い換えれば、アプリケーションをインストールする各企業にそれぞれ独自の秘密鍵を与えたいと思います。次に、各HTTPはアプリが(JSONまたはホストされたIFRAMEへのリンクだけがいるかどうか)次のようになり、弊社のサーバーになります呼び出す:私は、クエリを受信したときにsignValue = md5("groupid=groupid,param1=value1,param2=value2,secretKey"salesforce.comでの秘密鍵認証

はその後、私は計算

groupid = groupid 
param1 = value1 
param2 = value2 
signParam = signValue 

私のWebサーバー上で何らかのアクションを実行する前に、署名が一致することを確認する必要があります。問題は、私のアプリケーションをインストールする(つまり、インストールに秘密鍵を保存させる)各会社の秘密鍵をどのように割り当てて保存するのかわかりません。

これを行うには良い方法がありますか?また、Salesforceでこれが不可能な場合は、自分のサーバーでアクションを実行する前に、どのようにWebクエリーを認証する必要がありますか?

+0

もう1つの選択肢は、開発者アカウント用の秘密鍵をsalesforceに割り当てることです...リクエストを生成するときに、コントローラクラス内のそのキーを参照することができます。それはあまりにもうまくいくだろうが、ユーザーが秘密鍵にアクセスできない場合に限る。誰もがこれについての考えを持っている? –

答えて

3

セールスフォース側でそれを追跡しようとするのではなく、salesforce側がユーザーのsessionIdをWebサービスに送信するようにしてから、そのセッションIDを検証して特定のユーザー/組織はライセンスされています。このアプローチの使用についてのdeveloperforce Wikiに関する記事があります。