2016-07-14 10 views
0

IdentityServer3の実装に成功しました。MVCクライアントはIISで認証できません

app.UseCookieAuthentication(new CookieAuthenticationOptions 
    { AuthenticationType = "Cookies" }); 

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions 
    { 
     ClientId = "mvc.client", 
     Authority = Constants.ServerUri, 
     RedirectUri = Constants.MvcClientUri, 
     ResponseType = "id_token", 
     Scope = "openid profile", 
     UseTokenLifetime = false, 
     SignInAsAuthenticationType = "Cookies", 

     Notifications = new OpenIdConnectAuthenticationNotifications 
     { SecurityTokenValidated = TokenValidatedNotification }, 
     }); 

すべてがIIS Expressの上でローカルに完璧な走りを動作しますが、生産のIISサーバーにデプロイ時に失敗します。私は、暗黙的な流れと、このOwinのスタートアップコンフィギュレーションとASP.NET MVC5クライアントを作成しました。どちらの場合も認証は成功します。同じIdentityServerからid_tokenが返されますが、本番ユーザでは認証されないため、通知は行われません。プロジェクト参照Microsoft.Owin.Host.SystemWebアセンブリ。最初に例外処理OwinMiddlewareを登録しましたが、未処理の例外はキャッチされませんでした。

+0

あなたはAuthenticationType = DefaultAuthenticationTypes.ApplicationCookieを試しましたか? –

+0

私は試しましたが、変更はありません - ローカルで動作し、生産現場では認証されていません –

答えて

0

Anonymous認証を使用するように設定されている本番用IISがIISの認証インフラストラクチャに依存しないように設定されていることを確認します。要求をIIS経由で送信し、認証を担当するOWINミドルウェアに送信します。

+0

'Anonymous'だけが許可されています。 _IISの認証インフラストラクチャの意味は? –

+0

IISには独自の認証メカニズムがありますが、OWINを使用してアプリケーションレベルで(ミドルウェアを使用して)ユーザーを認証する場合、IISは認証処理をスキップします。 IISが既に 'Anonymous'オプションだけで構成されていると言うなら、問題はそこから来ていません。 –

関連する問題