通过ASP.NET,我创建了一个启动文件,该文件将使用Azure AD登录用户。 例如
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions()
{
ClientId = "42067b8d-b972-44e9-af86-ef60bc6d6fdb",
Authority = "https://login.windows.net/...com",
RedirectUri = "http://localhost:50560/content/story_html5.html",
PostLogoutRedirectUri = "http://localhost:50560/content/story_html5.html",
Scope = OpenIdConnectScope.OpenIdProfile,
ResponseType = OpenIdConnectResponseType.IdToken
});
}
正如您看到我的RedirectUri
击中静态文件html文件一样。
在Azure门户中我的应用程序注册中,replyUrls状态的清单
"replyUrls": [
"http://localhost:50560/content/story_html5.html"
],
所以一切正常,并正确连接。
(例如,如果我使用aspx,重定向将起作用)
但是使用.html文件时出现错误
HTTP错误405.0-不允许使用方法
由于无效,无法显示您要查找的页面 方法(HTTP动词)被使用。
我认为我需要做的就是将html处理程序添加到Azure AD,有人知道如何做到这一点吗?
谢谢
答案 0 :(得分:1)
这与Azure AD无关,但与您的配置无关。你的结局。您的项目。您的IIS配置。由于安全原因,登录响应是 HTTP POST 。出于显而易见的原因,IIS中的静态文件处理程序不接受GET之外的任何内容。
首先,为什么要重定向到静态页面?通过OIDC登录后的重定向,IdP(身份提供程序,在这种情况下理解Azure AD)将发送OIDC中间件(了解.UseOpenIdConnectAuthentication方法)所需的有价值的信息,以便能够验证令牌和初始化用户会话。通过将登录响应发送回静态页面,您可以完成几件事:
结论
请勿更改ASP.NET中间件的回复URL,除非您明确并有意地希望覆盖登录响应的完整处理。