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