0

次のシナリオについて、WCF で標準的な解決策を見つけようとしています。

私は2つのサービスを持っています。Service1 は service2 にリクエストを送信したいと考えています。service2 が要求に応答する前に、service1 が認証のために資格情報を送信するようにします。

SSL を使用したり、すべてのネットワーク サービス間で証明書をコピーしたりしたくありません。

これが私の解決策です:

1つの「セキュリティサービス」を作成します。

Service1 は、セキュリティ サービスに対して認証を行います。

認証が成功すると、このセキュリティ サービスは service1 に、セキュリティ サービスによって署名されたカスタム トークンを提供します。

Service1 は、このトークンを各リクエストに添付します。

Service2 はこのトークンを検証し、成功した場合は要求を処理します。

答えは、C# (WCF) にこのメカニズムを実装する方法があるかどうかです。

ありがとう

4

2 に答える 2

1

Microsoft は、この種のクレーム ベース認証用に WIF (Windows Identity Foundation) を提供しています。この記事を見てください:

http://msdn.microsoft.com/en-us/magazine/ee335707.aspx

よろしく。

于 2012-04-19T09:37:16.423 に答える
0

WCF サービスについて話している場合は、WCF がサポートするセキュリティの種類を調べてください。None、Transport、Message、TransportWithMessageCredential、TransportCredentialOnly、Both です。交通安全には興味がないとおっしゃいましたね。そのため、リストにはまだメッセージ セキュリティがあります。

WCF supports the following credential types when you are using message level security:

Windows. The client uses a Windows token representing the logged in user’s Windows identity. The service uses the credentials of the process identity or an SSL certificate. You will use this in the sample application that demonstrates the first scenario (internal self-hosted service).
UserName. The client passes a user name and password to the service. Typically, the user will enter the user name and password in a login dialog box. The service can validate the user name and password using a Windows account or the ASP.NET membership provider. You will use this in the sample application that demonstrates the third scenario (public Web-hosted service).
Certificate. The client uses an X.509 certificate and the service uses either that certificate or an SSL certificate.
IssueToken. The client and service use the Secure Token Service, which issues tokens the client and service trust. Windows CardSpace uses the Secure Token Service.
None. The service does not validate the client.

次に、あなたが言っていないことですが、認証の種類を決定することが重要です。それは、サービス、特にサービス 2 をどのようにホストするかです。 . そのため、サービスが IIS でホストされる場合は、ユーザー名が適しています。また、ダイジェスト認証のサポートが必要です。WCF REST サービスでのダイジェスト認証を参照してください。また、IIS がホストするサービスではない場合、または代替ソリューションが必要な場合は、Security Token Serviceを使用することができます。しかし、最新のより良い解決策はクレームベースの認証です。リンクは他の回答で見つけることができます。

于 2012-04-19T10:07:18.903 に答える