オンプレミスADFSサーバーに対して認証するようにMVCアプリケーションを設定する方法を決定しようとしています。私はthe Github Azure SamplesにあるAzure ADサンプルを使用しており、Vittorio Bertocci's blogに記載されているように変更して、私のアプリケーションのRealmIdと私の組織のADFSメタデータエンドポイントを使用しています。 IIS Expressを使用してサンプルを実行すると、OWINミドルウェアが呼び出され、ADFSログイン画面にリダイレクトされます。ローカルIISでADFS OWIN認証が呼び出されない
しかし、私が作業しているアプリケーションはIISで実行する必要があるため、ローカルIISでサンプルアプリケーションを設定しようとしています。ローカルIISでサンプルを実行すると、ADFSへのリダイレクトはなく、代わりにウィンドウ(Kerberos)IDが返されます。 OWINミドルウェアがIISによって呼び出されることを確認するにはどうすればよいですか?アプリケーションプールは、統合v4.0モードで実行されています。
private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
private static string metadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = metadata,
Notifications = new WsFederationAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("Home/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
}
現在、Windows認証以外のすべての認証モードが無効になっています。これは問題であったに違いありません。なぜなら、匿名のみを有効にした場合、ADFSにリダイレクトされているように見えるからです。 – emaia