azure - 具有 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)
解决方案
因此,在 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)
查看用户是否已正确验证
推荐阅读
- python - python sockets发送文件功能解释
- python - 这些函数看起来就像他们会做同样的事情,但一个有效,一个无效。为什么?
- oracle-apex-20.2 - Oracle APEX 卡区域不转义字符
- c - GCC 编译器找不到 stdio.h
- angular - 如何在不同地方的表单中为ngModelGroup设置唯一名称
- html - 在 1 个链接中发送多个命令的快捷链接
- javascript - 如何为特定类型的所有 HTML 元素分配标识符?
- ios - 如何在 swift 中定义和使用具有可选属性的结构?
- zsh - 如何使用 zsh 'command' 选项来执行内置的 'source' 命令?
- r - Ubuntu 20 R 版本,无法使用 rpkg 安装 MXnet