2

私は DotNetOpenAuth サンプルに取り組んでおり、openID プロバイダーと証明書利用者を実装しています。

基本的に、提供されている DotNetOpenAuth サンプルと非常に似ていますが、MVC 4 を使用しているため Razor を使用しているため、サンプルで使用されているIdentityEndpointコントロールを使用していません。(代わりに、部分的なビューでプロバイダー ヘッダーを書き出しています)。また、IIS 7.5 でホストされています。

ユーザーがサインオンしている時点に到達しており、OP はログから次のエラーを取得している依拠当事者にリダイレクトしています。

DotNetOpenAuth.Messaging.ProtocolException: バケット "https://localhost/dnoa/association_handles" ハンドル "3tg1" の復号化キーが
DotNetOpenAuth.Messaging.ErrorUtilities.VerifyProtocol (ブール条件、文字列 unformattedMessage、Object[] args)
で DotNetOpenAuth.Messaging にありません.DataBagFormatterBase`1.CalculateSignature(Byte[] bytesToSign, String symmetricSecretHandle)
a....

役立つかどうかはわかりませんが、エラーの前にある 2 つのヘッダーは次のとおりです。

Signing these message parts:    
claimed_id: http://www.sampleOpenIDProvider.com/user/justpartofthecrowd   
identity: http://www.sampleOpenIDProvider.com/user/justpartofthecrowd   
assoc_handle: he9m!IAAAAD43Voo3-zQng-ZVSKb9ryFVSIKDLJj4Ph_I9W64ypFCQQAAAAFlZWUQzOJQfO70Pvud2a--auCE7HKkFjBM45HXlpJixLEmtdgd8YPBMckvUFnIPqHBbaAk7mkhI8lDVPoKekUW   
op_endpoint: http://www.sampleOpenIDProvider.com/OpenId/Provider   
return_to: http://www.samplemobilephonecompany.com/User/Authenticate?ReturnUrl=Index&dnoa.userSuppliedIdentifier=http%3A%2F%2Fwww.sampleOpenIDProvider.com   
response_nonce: 2012-12-03T23:59:05ZCqMBPIFL    
Base64 representation of signed data: Y2xhaW1lZF9pZDpodHRwOi8vd3d3LnNvbGZ5cmUtaWQuY29tL3VzZXIvcmFscGhza2kKaWRlbnRpdHk6aHR0cDovL3d3dy5zb2xmeXJlLWlkLmNvbS91c2VyL3JhbHBoc2tpCmFzc29jX2hhbmRsZTpoZTltIUlBQUFBRDQzVm9vMy16UW5nLVpWU0tiOXJ5RlZTSUtETEpqNFBoX0k5VzY0eXBGQ1FRQUFBQUZsWldVUXpPSlFmTzcwUHZ1ZDJhLS1hdUNFN0hLa0ZqQk00NUhYbHBKaXhMRW10ZGdkOFlQQk1ja3ZVRm5JUHFIQmJhQWs3bWtoSThsRFZQb0tla1VXCm9wX2VuZHBvaW50Omh0dHA6Ly93d3cuc29sZnlyZS1pZC5jb20vT3BlbklkL1Byb3ZpZGVyCnJldHVybl90bzpodHRwOi8vd3d3LnNhbXBsZW1vYmlsZXBob25lY29tcGFueS5jb20vVXNlci9BdXRoZW50aWNhdGU/UmV0dXJuVXJsPUluZGV4JmRub2EudXNlclN1cHBsaWVkSWRlbnRpZmllcj1odHRwJTNBJTJGJTJGd3d3LnNvbGZ5cmUtaWQuY29tCnJlc3BvbnNlX25vbmNlOjIwMTItMTItMDNUMjM6NTk6MDVaQ3FNQlBJRkwK  
Signature: kw4f92CpwFbXgUkLs+Pf+5cFrtEzmE9KpxHgTYwi1tQ=

After binding element processing, the received IndirectSignedResponse (2.0) message is:    
openid.sig: kw4f92CpwFbXgUkLs+Pf+5cFrtEzmE9KpxHgTYwi1tQ=   
openid.signed: claimed_id,identity,assoc_handle,op_endpoint,return_to,response_nonce   
openid.assoc_handle: he9m!IAAAAD43Voo3-zQng-ZVSKb9ryFVSIKDLJj4Ph_I9W64ypFCQQAAAAFlZWUQzOJQfO70Pvud2a--auCE7HKkFjBM45HXlpJixLEmtdgd8YPBMckvUFnIPqHBbaAk7mkhI8lDVPoKekUW   
openid.invalidate_handle: 3tg1!IAAAALLyXKaShsmSDmEaKWxiBCi7-a8Nso0tyNaPKVqi52KuQQAAAAHvnjGT2Gt-_iWlSTpmBgthNS8s2Dxs6-pQG6rzYrFqgA5mp_T_HPcaJ6BchUsN9Lx2uH7jssuSAq0xbae7lb1r   
openid.op_endpoint: http://www.sampleOpenIDProvider.com/OpenId/Provider   
openid.return_to: http://www.samplemobilephonecompany.com/User/Authenticate?ReturnUrl=Index&dnoa.userSuppliedIdentifier=http%3A%2F%2Fwww.sampleOpenIDProvider.com   
openid.response_nonce: 2012-12-03T23:59:05ZCqMBPIFL   
openid.mode: id_res   
openid.ns: http://specs.openid.net/auth/2.0   
openid.claimed_id: http://www.sampleOpenIDProvider.com/user/justpartofthecrowd   
openid.identity: http://www.sampleOpenIDProvider.com/user/justpartofthecrowd   
ReturnUrl: Index   dnoa.userSuppliedIdentifier: http://www.sampleOpenIDProvider.com  

これは dotnetopenauth を実装した人にとってのみ意味があると思いますが、試してみる価値はあります!

4

1 に答える 1

2

Googleグループを検索しているときに誤って修正し、別の質問を読んで、これまでに役立つAndrew Arnottが、すべてのopenIDエンドポイントが認証なしで到達可能であることを確認することを提案しました.

コードを確認したところ、RegisterGlobalFilters に次のステートメントがありました。

filters.Add(new System.Web.Mvc.AuthorizeAttribute());

openIDに使用されていたすべてのコントローラーまたはアクションの[AllowAnonymous]属性でそれを使用していました。または、グローバル フィルターを削除し、承認が必要な領域にのみ[Authorize]属性を明示的に追加して問題を修正したので、そう思いました。

于 2012-12-04T13:30:25.990 に答える