c# - MSAL + Azure 应用服务

标签 c# azure azure-mobile-services azure-ad-msal

我之前已经发布过此内容,但该线程变得相当广泛且令人困惑,并且从未达成解决方案。我重新发布了清晰简洁的代码块和我想要的结果。

我希望对 Azure 应用服务后端使用客户端流身份验证。 我想使用 MSAL 来支持 Microsoft 帐户 (MSA) 和 AAD 帐户。几个星期以来一直在这个问题上徘徊,但看不到解决方案。

PublicClientApplication myApp = new PublicClientApplication("registered-app-id-in-apps.dev-portal");                            
string[] scopes = new string[] { "User.Read" };
AuthenticationResult authenticationResult = await myApp.AcquireTokenAsync(scopes);
JObject payload = new JObject();                            
payload["access_token"] = authenticationResult.AccessToken;
payload["id_token"] = authenticationResult.IdToken;                            
user = await MobileService.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload);

为什么这不起作用? 我需要做什么才能让它工作?

尝试使用 MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory 以及 MobileServiceAuthenticationProvider.Microsoftaccount 获取 401 异常

--Microsoft 帐户的应用服务身份验证配置:

apps.dev.microsoft.com 中显示的 ClientID 和 ClientSecret

--AAD 的应用服务身份验证配置:

apps.dev.microsoft.com 中显示的 ClientID

发行人网址:https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration

客户端 secret :(空白)

最佳答案

在应用服务上设置 Azure Active Directory 身份验证并尝试使用 MSAL 从 WinForms 客户端进行身份验证时遇到了同样的问题。事实证明,截至撰写本文时,Azure 应用服务不支持 AAD V2(包括 MSAL)。发现下面的注释here :

目前,Azure 应用服务和 Azure Functions 不支持 AAD V2(包括 MSAL)。请回来查看更新。

因此 ADAL 似乎是目前唯一可行的选择,除非您自己在后端代码中处理身份验证。

关于c# - MSAL + Azure 应用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44634327/

相关文章:

c# - 表单应用程序中的错误范围

c# - 如何在 Visual Studio 2015 中添加 EntityObject 生成器?

c# - 接口(interface)中的函数,返回实现它的任何类的类型的对象

c# - 以编程方式访问样式以获取值

python - 无法从 Python 连接到在 Azure Linux VM 上运行的 Redis 实例

azure - 如何使用 pyodbc 将 pandas 数据帧的多行插入到 Azure Synapse SQL DW 中?

c# - 使用 ADAL.js 获取的 token 对 Azure 移动服务应用程序进行身份验证

azure - 解决 SystemForCrossDomainIdentityManagementBadResponse

ios - Azure 移动应用 - 请求用户配置文件信息

azure - 如何将 nsg 关联到应用服务环境以限制 Azure 中来自 Internet 的访问