0

.Net 2.0 フレームワークのアプリケーションに Google Apps サポートを統合する必要があるため、私は危機的な状況にあります。そのため、DotNetOpenId v2.5.7 を使用しています。これを実現するために、フレームワーク 4.0 で DotNetOpenAuth v3.4.6 を使用して別のアプリケーションを作成しました。このアプリケーションは、Google Apps で認証を行い、データをすべての情報とともにリダイレクトします。しかし、そのプロセスにはセキュリティ ループ ホールがありました。したがって、アプリケーションを上位のフレームワークに移行できないため、DotNetOpenId を使用する必要があります。

主な問題は、Google Apps で使用する場合です。OpenId エンドポイントがhttps://www.google.com/accounts/o8/udである Gmail アカウントでは問題なく機能します。ただし、OpenId エンドポイントがhttps://www.google.com/a/example.com/o8/ud?be=o8のようなものである場合、アサーション エラーが発生します。アプリケーションは、ユーザーを Google Apps ログイン ページに正しくリダイレ​​クトします。ただし、データが返されると、認証ステータスは失敗になり、次の例外があります。

Message: The OpenId Provider issued an assertion for an Identifier whose discovery information did not match.

Assertion endpoint info: 
ClaimedIdentifier: http://example.com/openid?id=11......010 
ProviderLocalIdentifier: http://example.com/openid?id=11......010 
ProviderEndpoint: https://www.google.com/a/example.com/o8/ud?be=o8 
OpenID version: 2.0 
Service Type URIs: (unavailable) 

Discovered endpoint info: 
{ClaimedIdentifier: http://specs.openid.net/auth/2.0/identifier_select 
ProviderLocalIdentifier: http://specs.openid.net/auth/2.0/identifier_select 
ProviderEndpoint: https://www.google.com/a/example.com/o8/ud?be=o8 
OpenID version: 2.0 
Service Type URIs: http://specs.openid.net/auth/2.0/server, }

この場所にダウンロードする XRDS ファイルを配置しましたhttp://example.com/openid次のようなデータがあります

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
    <XRD>
        <Service priority="0">
            <Type>http://specs.openid.net/auth/2.0/server</Type>
            <URI>https://www.google.com/a/example.com/o8/ud?be=o8</URI>
        </Service>
        <Service priority="10">
            <Type>http://specs.openid.net/auth/2.0/signon</Type>
            <URI>https://www.google.com/a/example.com/o8/ud?be=o8</URI>
        </Service>
    </XRD>
</xrds:XRDS>

しかし、これも役に立ちませんでした。

また、次の内容のファイルをhttp://example.com/.well-known/host-metaに配置しました。

Link: <https://www.google.com/accounts/o8/site-xrds?hd=example.com>; rel="describedby http://reltype.google.com/openid/xrd-op"; type="application/xrds+xml"

他に何をする必要があるか教えてください。この問題を解決するために、フォーラムを閲覧したり、Google を使用したりしていますが、進展はありません。

4

1 に答える 1

0

DotNetOpenIdv2.xが.NET2.0をターゲットにしているという点で正しいです。Google AppsはOpenIDプロトコルに準拠しておらず、Google独自のバリアントであるため、GoogleAppsOpenIDを介してユーザーにログインすることはできません。

DotNetOpenAuth v3.xは、OpenIDのバリアントのサポートをアクティブ化することでGoogleAppsが機能できるようにプラグイン可能です。

DotNetOpenAuthが.NET4.0を必要としないことを知っていると、最も役立つと思います。.NET2.0の影響の少ないインプレース更新である.NET3.5をインストールするだけです。Webサイトは引き続き正常に機能するはずですが、DotNetOpenAuthv3.xは機能します。

于 2011-10-11T16:42:18.357 に答える