【问题标题】:MSAL doesn't pop up when project is published to Azure VM将项目发布到 Azure VM 时不会弹出 MSAL
【发布时间】: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吗?它可能与问题本身无关......

标签: asp.net-core azure-active-directory azure-functions msal msal-angular


【解决方案1】:

请检查以下几点。

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

  2. 使用系统浏览器的应用: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 时, 不建议这样做。此默认值将更新为中断 在下一个主要版本中进行更改。

其他参考

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    相关资源
    最近更新 更多