CRMのホストされたSilverlightアプリケーションにMS Dynamics SQLデータを提供するwcf Webサービスを構築しました。現在のところ、WebサービスはIISでホストされており、HTTPS経由でしか利用できないため、メッセージの内容は安全です。私は今、Silverlightクライアントアプリケーションに誰がログインしているのかと次のレベルのセキュリティを実装する準備が整いました。その情報をWebサービスに渡してから、SQL Server Connectionオブジェクトを作成するときに使用したいと思います。その結果、MS Dynamicsデータベースは、接続されたユーザーが表示権限を持つデータのみを返します。WCF Webサービスはユーザー名とパスワードの情報にアクセスする必要があります
このモデルは、Webサービスにアクセスするために特定のユーザーを認証する標準モデルとは異なります。代わりに、私のモデルでは、誰もがWebサービスへのアクセスを許可され、SQLクエリの結果は、特定のユーザーのユーザー名とパスワードに基づいています。
説明のために: Silverlightアプリケーションは、ユーザーがアプリケーションにログオンするときにユーザーからユーザー名とパスワードを収集します。これは、WebサービスがSQL Serverデータベースに接続するときに、最終的にWebサービスが使用する必要がある情報です。ですから、私の目標は、SilverlightアプリケーションがWebサービスにユーザー名とパスワードを渡して、Webサービスがそれを取得してConnectionオブジェクトを作成するときに使用できるようにすることです。
私は、各Webサービスリクエストにユーザー名とパスワードを追加するだけで簡単なことを考えています。しかし、私はむしろユーザーの資格情報を渡すための標準的な方法を使用することができるだろうが、私はパスワードに到達する方法を見つけることができないようです。ユーザー名には、OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Nameを使用してアクセスできます。
アイデア?
どのユーザー名とパスワードを渡したいのかを明確にする必要があります。 CRMアカウントへのアクセスが制限されていませんか? Silverlightアプリケーションは、ドメインユーザーによってイントラネット内でアクセスされますか?あなたのサービスのドメインアカウントによってユーザーが認証されていますか? –
明確にするために、Bob JonesがCRMにログインしています。 WebサービスでBob Jonesのユーザー名とパスワードが必要です。 Webサービスはクラウドでホストされ、ユーザー名とパスワードを使用して、別のサーバーにホストされているデータベースへの接続を作成します。現在、Webサービスはデフォルトのユーザー名とパスワードを使用してデータベースに接続しています。代わりにBob Jonesを使用します。 –
Bob Jones Windowsアカウントはありますか? Btw。セキュリティー・メカニズムを構築しても、操作処理内でパスワードを取得することはありません。 SQL資格情報またはWindows資格情報を使用して接続を作成する必要がありますか? –