将项目发布到 Azure VM 时不会弹出 MSAL

Posted

技术标签:

【中文标题】将项目发布到 Azure VM 时不会弹出 MSAL【英文标题】:MSAL doesn't pop up when project is published to Azure VM 【发布时间】:2022-01-12 06:18:14 【问题描述】:

下面是我通过 MSAL 弹出和登录的代码。

var app = PublicClientApplicationBuilder.Create(msal.ClientId)
.WithDefaultRedirectUri()
.WithTenantId(msal.TenantId)
.Build();

var result = await app.AcquireTokenInteractive(msal.Scopes).ExecuteAsync();

上面的代码在我的本地机器上运行时有效。

下面是我在 Azure AD 中的设置。当我将它设置为 localhost:5000 时它工作

但是当我将 localhost 设置为托管在 Azure 虚拟机上的“myWebAppUrl”时。 MSAL 不会弹出。它只会返回“操作已取消”。我在这里错过了什么?

【问题讨论】:

你确定你可以使用myWebAppUrl而不是这里的https吗?它可能与问题本身无关...... 【参考方案1】:

请检查以下几点。

    在 azure ad 中,回复 URL 必须以方案 https 开头,除非使用 localhost。前:http://localhost:5000 否则,您可以使用 https://yourappurl 之类的东西,并且不要忘记授予管理员同意 在您在 azure ad 中拥有的范围的权限下。 请查看Redirect URI restrictions

    使用系统浏览器的应用:http://localhost

    使用嵌入式的应用 浏览器:https://login.microsoftonline.com/common/oauth2/nativeclient

    对于 Node.js,你可以使用msal://redirect

请查看Add a redirect URI 部分和Client application configuration (MSAL) | Microsoft Docs 并检查您是否可以在您的应用中使用机密客户端 .

某些身份验证库(如 MSAL.NET)使用默认值 urn:ietf:wg:oauth:2.0:oob 当没有指定其他重定向 URI 时, 不建议这样做。此默认值将更新为中断 在下一个主要版本中进行更改。

其他参考

    Instantiate a public client app (MSAL.NET) - Microsoft identity platform | Microsoft Docs Initialize MSAL.NET client applications - Microsoft identity platform | Microsoft Docs

【讨论】:

以上是关于将项目发布到 Azure VM 时不会弹出 MSAL的主要内容,如果未能解决你的问题,请参考以下文章

错误:机器人的MSA appId或密码不正确

带有 PuTTY 的 ssh 隧道不会靠近 Azure Jenkins VM

Azure DSC 将 Blob 上传到 Azure VM

创建 VM 时将 Azure Fileshare 挂载到 Azure VM

如何自动将文件从多个 Azure VM 复制到 Azure 存储并访问

如何将文件从 azure 存储复制到 vm