首页 > 解决方案 > 显示不同身份验证消息的 Web 应用和 MVC 应用

问题描述

我正在尝试使用 Azure AD 对我的应用程序进行身份验证。该应用程序已在 Azure AD 中注册。旧应用程序是 ASP.NET Web 应用程序。最初,我遇到了让它工作的问题。我找到了一个 MVC 应用程序示例并创建了一个新的示例应用程序。

当新的应用程序。打开并点击 Azure AD,它显示消息: https ://i.stack.imgur.com/9jhqE.png

https://i.stack.imgur.com/9jhqE.png

我将旧应用程序中的 Startup.cs 替换为 Owin Startup.cs 并添加了相同的代码。当这个应用程序点击 Azure AD 时,它直接显示“访问被拒绝”错误。

我想知道管理员同意是否应该解决这两个问题或旧版应用程序需要其他任何东西。

标签: asp.netasp.net-mvcactive-directoryazure-active-directory

解决方案


如果我能更准确地回答您的问题,我尝试在本地使用 Asp .net mvc 进行复制,并使用 Azure AD 创建了演示应用程序,这使我可以成功登录。

以下是我遵循的步骤

登录 AzurePortal > Azure Active Directory > 创建新租户 > 切换到您创建的租户。

在此处输入图像描述

从租户转到 > 管理 > 应用注册 > 新注册。

在此处输入图像描述

并在注册期间确保根据您的应用程序提供本地主机。

在此处输入图像描述

注册后转到 > 概述 > 检查并复制所有凭据,例如客户端 ID、租户 ID、重定向 URL,如下所示:

在此处输入图像描述

您只需从管理中单击身份验证选项,然后向下滚动以获取 ID TOKEN 复选框。并使用单租户标记为是并保存。

在此处输入图像描述

成功完成天蓝色广告租户创建、应用注册和身份验证后。

从文件夹根目录的 Visual Studio 项目下载以下内容nuget PackagesMicrosoft.AspNetCore.authentication.AzureAD & Microsoft。身份。网络 在此处输入图像描述

然后到startup.cs配置服务下的文件和更新如下:

public  void ConfigureServices(IServiceCollection services)

{

**services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApp(Configuration.GetSection(****"AzureAd"****));**

services.AddControllersWithViews();

}

单击appsetting.json文件并根据之前在 Portal>Azure AD> App register>overview 中创建的凭据更新以下代码。

{

"AzureAd": {

"Instance": "https://login.microsoftonline.com/",

"Domain": " ******.onmicrosoft.com",

"ClientId": "*****",

"TenantId": "*****",

"CallbackPath": "/signin-oidc"

},

在此处输入图像描述

并在 startup.cs 文件中更新身份验证,如下所示:

**app.UseAuthentication();**

app.UseAuthorization();

在此处输入图像描述

在 homecontroler.cs 文件中添加一个名为[Authorize]的属性:

在此处输入图像描述

之后运行应用程序,该应用程序将重定向到具有访问权限的 MS 登录页面。 在此处输入图像描述

更多详情请参考以下链接:

. AAD 身份验证错误

. 将 Microsoft 登录添加到 ASP.NET Web 应用


推荐阅读