2

DotNetOpenAuthと、リストおよびブラックリストでの処理方法に関するドキュメントはありますか?

私の設定

<untrustedWebRequest>
        <blacklistHosts>
            <add name="*" />
        </blacklistHosts>

      <whitelistHosts>
        <add name="www.mysite.ca" />
        <add name="mysite.ca" />
        <add name="devel.mysite.ca" />
        <add name="devel.mysite.com" />
        <add name="mysite.com" />
        <add name="www.mysite.com" />

      </whitelistHosts>


    </untrustedWebRequest>

ウィールリストにないサイトの場合は、リクエストをキャンセルしてもらいたいです。現在バージョン2.5.49045を実行していますが、まもなく更新する予定です。

を使用して

<blacklistHostsRegex> 
<add name=".*" />  
</blacklistHostsRegex>

ホワイトリストにあるサイトもブロックしました。

4

2 に答える 2

4

ホワイトリストとブラックリストを処理するロジックは次のようになります。

DotNetOpenId / DotNetOpenAuthには、安全なホスト名と安全でないホスト名についての直感がすでにあります。したがって、これらのリストに何も設定しなくても、一部をブロックし、他のユーザーを許可します。リストはこの動作を上書きします。

  1. DNOAは、暗黙的に許可されていないホスト名を検出します。拒否-ホワイトリストに載っていない限り、すぐに通過させてください。
  2. それ以外の場合、ホスト名は安全に見えますが、ブラックリストに含まれている場合は拒否します。

ブラックリストに載っているホストは(ほとんど)決して通過しません(とにかく安全でないと思われ、ホワイトリストに載っている場合は例外です

特定のホストセットを除くすべてをブラックリストに登録する場合は、ブラックリストのみを使用し、正規表現の「一致しない」一致を実行するのが最善の策だと思います。

<untrustedWebRequest>
    <blacklistHostsRegex>
        <add name="^(?!www.mysite.ca|www.mysite.com|devel.mysite.com)$" />
    </blacklistHostsRegex>
</untrustedWebRequest>

これは少し複雑なようです。ただし、現在のバージョンのDotNetOpenId/DotNetOpenAuthでは機能します。そして将来的には、これをもっと明白なものに修正していきます。

于 2010-03-18T15:02:10.307 に答える
1

ユーザーのログインを許可されているプロバイダーをフィルタリングしようとしている場合、これは最善のアプローチではない可能性があります。これは、信頼するつもりのOPに委任する他のドメインから委任された識別子を壊してしまうためです。

OPエンドポイントでフィルタリングするには、OpenIdRelyingParty.EndpointFilterプロパティを、必要なエンドポイントに対してのみtrueを返し、そうでないエンドポイントに対してはfalseを返す関数に設定します。

于 2010-03-20T04:46:27.687 に答える