首页 > 解决方案 > 具有 Microsoft 身份验证的本地 ASP Core 3.1 MVC 应用程序 - 单租户或多租户

问题描述

一些背景知识,我正在我们公司的内部网络中部署一个本地 ASP Core 3.1 MVC 应用程序。目前在本地开发环境中工作,但最终将在 linux 系统上运行,其中 URL 通过我们的 DNS 服务器路由,并提供比普通 IP 地址更好看的 url。我们的组织使用 Azure AD,我们所有的员工都有微软帐户。我试图只允许通过 Microsoft 帐户登录。我已按照 Azure 门户中的快速入门指南进行操作,但现在出现以下错误:“AADSTS50194 ... 未配置为多租户应用程序。在 '10/ 之后创建的此类应用程序不支持使用 /common 端点15/2018'。使用特定于租户的端点或将应用程序配置为多租户”

据我所知,指南没有提到任何关于配置端点的内容。我目前将其设置为单租户,因为它似乎只允许遵循这种格式的帐户,employeesname@mycompany.com。mycompany.com 是我们拥有的域。

这个应用程序将同时为多个用户提供服务,但我们只希望我们自己的员工可以访问,没有访客或例外。

问题:我应该使用多租户还是单租户可以吗?如果是单租户,我该如何配置端点?

我是 3.1 的新手,Microsoft 的示例项目是 2.1(我看到他们似乎在这里配置端点,但不确定如何将其更新到 3.1)

标签: azureasp.net-coreazure-active-directorymulti-tenantasp.net-core-3.1

解决方案


因此,在 Startup.cs 文件中的尝试之间来回移动之后

    services.AddAuthentication().AddMicrosoftAccount(microsoftOptions => {
                microsoftOptions.ClientId = Configuration["Authentication:Microsoft:ClientId"];
                microsoftOptions.ClientSecret = Configuration["Authentication:Microsoft:ClientSecret"];
                //microsoftOptions.CallbackPath = "/signin-microsoft";
      
            });

我与上述解决了。我改为多租户,因为限制性更强的页面将被手动授予,所以如果有人设法使用他们的个人 MS 帐户登录我们的网络,它不会有太大的不同

只要确保在您的布局文件(或任何剃须刀视图)中使用它:

@if (User.Identity.IsAuthenticated)

查看用户是否已正确验证


推荐阅读