3

この質問はここの他の息子と似ているように思えますが、ここに投稿された回答を試してみました: Azure ACS 2.0 を使用して WCF 4.5 サービスを保護する

そしてここ: Azure 上の WCF REST/HTML サービスのフェデレーション認証 (シングル サインオン)

どちらも関連していないようです。

これが私がこれまでに持っているものです。

  • さまざまなワーカー ロールを備えた Azure クラウド サービスと、REST および SOAP エンドポイントを備えた WCF Web ロール
  • 数人のユーザーを持つ Azure Active Directory アカウント
  • ACS 名前空間。

WCF サービスは、いくつかの異なる企業によって使用されますが、それ以外は閉鎖されました。wcf サービスやその他のアプリに SSO を提供するために、azure Active Directory を選択しました。

これが私がやりたいことです:

  • Azure Active Directory の WCF サービスを使用して、各企業のユーザーとパスワードを作成します。
  • 有効なユーザー名とパスワードのペアを持つ企業のみがアクセス トークンを取得できるようにする
  • 各企業にトークンを使用して WCF メソッドにアクセスしてもらいます。

これを達成するのがそれほど難しいとは思いませんでしたが、そこにあるすべてのチュートリアルは、コンソール アプリケーションを使用した IIS ホステッド サービスまたはセルフ ホステッド サービス向けのようです。

私がこれまでに行ったこと:

  • Azure Active Directory に統合アプリとして WCF サービスを追加
  • ACS で testAAD という名前の新しい ID プロバイダーを作成し、統合アプリからそのプロバイダーに WS-Federation メタデータを追加しました。
  • 新しく作成された testAAD ID プロバイダーを使用する証明書利用者アプリケーションを追加しました
  • testAAD ID プロバイダーと既定の設定を使用するパススルー ルールを含むルール グループが追加されました。

詳細については、こちらのオプション 1 を参照してください。私が行ったことが正しいに近いかどうかを知る必要があります。正しい場合は、WCFservice でこれらの設定を使用して開始するにはどうすればよいですか。

他の情報:

  • WIF4.5
  • VS2012 プロ
  • C#

関連するチュートリアルのリンクや一般的なアドバイスは素晴らしいでしょう。前もって感謝します。

更新: さらに情報を追加するために、WCF サービスはさまざまな Web サイトから投稿されています。各顧客は、独自の Web フォームからデータを収集し、C# コードを使用してサービス参照を追加するか、php を使用している場合は curl などを使用してデータを URL に投稿します。Service には、rest エンドポイントと soap エンドポイントの両方があります。たとえば、XML または SOAP リクエストを mynamespace.cloudapp.net/myservice.svc/servicemethod に送信します。そのリクエストでユーザー名とパスワードを送信し、実際のWCFメソッドでそれらの資格情報を検証するか、認証トークンをリクエストしてから、その認証トークンをリクエストで送信することを検討しています。

更新 2 行方不明のピースを見つけたと思います。Active Directory を ID プロバイダーとして使用するには、ADFS サーバーをセットアップする必要があるようです。ADFS サーバーは既に azure Active Directory アカウントでセットアップされていると思っていましたが、そうではないようです。ADFS サーバーなしでこれを行う方法はありますか?

4

1 に答える 1

0

あなたがカバーしていない主な質問はhow will these companies use that WCF service?. Web ポータル経由ですか、それともリッチ クライアント (WinForms / WPF など) 経由ですか?

リッチ クライアントの場合は、このブログ投稿をご覧ください。トークンを使用して WCF サービスを保護し、WPF アプリケーションからそのサービスにアクセスする方法を示します。

Web ポータル経由でのみ WCF サービスへのアクセスを許可する予定の場合、状況は少し異なります。最初に Azure AD でポータルを保護し、ユーザーのトークンを取得できます。次に、そのトークンを使用して WCF に対して認証します。

しかし、真の Web シナリオではclient、サービスを呼び出す は実際にはyour web serverです。この場合、Web ポータルを Azure AD で保護するだけです。次に、単一のアクセス トークンで WCF を保護します。そのトークンは、Azure AD アクセス コントロールのサービス ID から取得できます。そして、この「サービス トークン」を my からの各 WCF 呼び出しの一部として提供しますweb server。追加の監査 (およびコンプライアンス) のために、元のユーザー トークンも送信して、誰がいつ何にアクセスしたかを追跡します。

于 2013-05-07T06:45:14.847 に答える