我想启用应用服务身份验证以保护开发环境免受公共(public)访问。 应用服务身份验证本身工作正常,仅允许我们公司 Azure AD 的人员,一切都很好。
但这与网站本身的身份验证相冲突,通过 Azure AD 进行身份验证后,网站会看到您已经登录。 我不明白它到底是如何最终发生冲突的,我们正在使用表单例份验证,我尝试显式命名表单例份验证应该查找的 cookie,并将其设置为始终使用 cookie 进行身份验证,但它仍然存在冲突。/p>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/sign-in" timeout="2880" requireSSL="true" cookieless="UseCookies" />
</authentication>
通过 Microsoft 登录后,我看到没有 .ASPXAUTH cookie,只有 AppServiceAuthSession,但 Forms auth 认为我已登录。
最佳答案
我认为您可以通过删除 web.config 中的身份验证设置并使用 OWIN 在网站本身的身份验证之前注入(inject)中间件(CustomMiddleware)来解决此问题。如果用户通过您的 CustomMiddleware 进行身份验证,您将继续常规流程,否则会短路请求流程。在 CustomMiddleware 中,您可以检查请求 header 、正文等以验证 cookie 等。我猜您的应用程序中有 MVC 风格的管道。互联网上有许多资源可供您探索。下面是一个示例。
https://www.tutorialsteacher.com/core/how-to-add-custom-middleware-aspnet-core
关于asp.net-mvc - Azure 应用服务授权/简易身份验证与 ASP.NET 表单例份验证冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61400437/