2

この質問は、 「Azure ACS を使用して必要なクレームを OpenID ID プロバイダーに渡す方法」からの続きです。

ただし、問題に対する見方が少し異なるため、これを新しい質問として投稿しています。注: Azure セキュリティ フォーラムにもこれをクロスポストしていますが、これまでのところ有用な情報は得られていません。

Azure ACS サンプルは、任意の OpenID ID プロバイダーを ACS に追加できることを示しています。しかし、ACS がさまざまな一般的なプロバイダーの STS として私たちのプロジェクトで実際に役立つように、ACS を MyOpenID.com と連携させることに着手しました (これもサンプルで使用されています)。優れた Vittorioも示しているように、問題は、要求されない限り、MyOpenID が名前や電子メール アドレスなどのクレームを提供しないことです。Vittorio らは、これは MyOpenID が属性交換をサポートしていないためであると述べています。

しかし、私はそれについてよくわかりません。ACS が生成するリクエスト URL をもう少し深く掘り下げるopenid.ns.ax=http://openid.net/srv/ax/1.0と、 や などのパラメータが表示されますopenid.ax.required=email,fullname,firstname,lastname。また、openid.ax.type.emailタイプにタイプされaxschema.org/contact/emailます。ここで、MyOpenID の問題が発生します。MyOpenID は axschema.org の型を認識しないため、電子メールの値を返しません。

私が知っていることは、MyOpenID がschema.openid.net/contact/email型を理解しているということです。したがって、これに基づいて、ACS 要求 URL を手動で変更し、axschema の代わりに openid.net スキーマを使用しました。見よ、MyOpenID は反応し、私のメールアドレスが実際に返されることを示している.

myopenid.com/server エンドポイントに渡そうとしているパラメーターのリストを次に示します。

残念ながら、応答が ACS に返されたときは十分ではなく、ACS は次のエラー コードで失敗します。

HTTP エラー コード: 400 メッセージ: ACS30000: OpenID サインイン応答の処理中にエラーが発生しました。内部メッセージ: ACS90014: 必須フィールド 'openid.ax.value.email' がありません。トレース ID: f8e09e6f-0765-4370-9f03-f744cce6fa2a タイムスタンプ: 2011-08-02 17:12:57Z

元のメール タイプを変更せずにフィールドを追加しようとしましたが、同じエラーしか発生しません。実際、AX を完全にサポートしていないのは ACS であり、特定の種類のクレームのみを受け入れるようにハードコードされているのではないかと疑い始めています。

問題は、私のリクエストパラメータがあなたに正しく見えるか、それともここで明らかな何かが欠けているかということです.

注:私の初期設定は機能しています。ACS 要求を変更せず、ACS で ID プロバイダーのパススルー ルールを 1 つだけ構成すると、MyOpenID ID プロバイダーを使用して ACS を介して Web サイトを正常に認証できます。ただし、ACS からの要求でクレーム タイプhttp://schema.openid.net/namePersonまたはhttp://schema.openid.net/contact/email

4

1 に答える 1

0

セキュリティ上の理由から、ACS は発信者が電子メール アドレス クレームを再入力することを許可できません。事実上、あなたが無意識のうちに試みているのは、この論文の攻撃 4.5 (OpenID Data Type Confusion) の亜種です。セキュリティ上の理由から、ACS は、サポートする電子メール アドレスとその他の AX クレームが認識しているタイプと正確に一致することを確認する必要があります。そうしないと、悪意のある発信者が ACS をだまして、あるクレームを別のクレームに置き換える可能性があります。ACS が AX をサポートしていないわけではありません。ACS が電子メール クレームとしてサポートするクレーム タイプは 1 つだけであり、MyOpenID が使用するものとは異なります。要するに、これはうまくいきません。

于 2012-04-10T16:35:21.430 に答える