将项目发布到 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的主要内容,如果未能解决你的问题,请参考以下文章
带有 PuTTY 的 ssh 隧道不会靠近 Azure Jenkins VM
创建 VM 时将 Azure Fileshare 挂载到 Azure VM