我以前发过这个帖子,但是线程变得非常广泛和令人困惑,从未达到过解决方案。我正在重新发布清晰简洁的代码块和我期望的结果。
我希望对Azure App Services后端使用客户端流认证。 我想使用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);
为什么这不起作用? 我该怎么办才能让它发挥作用?
获得401异常,尝试使用MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory以及MobileServiceAuthenticationProvider.Microsoftaccount
- Microsoft帐户的应用服务验证配置:
ClientID和ClientSecret出现在apps.dev.microsoft.com
中- AAD的App Service Auth Config:
出现在apps.dev.microsoft.com中的ClientID
发卡行网址:https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
客户端密码:(空白)
答案 0 :(得分:0)
遇到同样的问题,已经在App Service上设置了Azure Active Directory身份验证,并尝试使用MSAL从WinForms客户端进行身份验证。事实证明,截至撰写本文时,Azure App Service不支持AAD V2(包括MSAL)。找到以下注释here:
目前,Azure App Services和Azure Functions不支持AAD V2(包括MSAL)。请检查更新。
因此,除非您自己在后端代码中处理身份验证,否则ADAL似乎是目前唯一可行的选择。