この質問はここの他の息子と似ているように思えますが、ここに投稿された回答を試してみました: 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 サーバーなしでこれを行う方法はありますか?