4

我之前已经发布过这个,但是这个帖子变得非常广泛和混乱,并且从未达成过解决方案。我用清晰简洁的代码块和我想要的结果重新发布。

我希望将客户端流身份验证用于 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);

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

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

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

出现在 apps.dev.microsoft.com 中的 ClientID 和 ClientSecret

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

出现在 apps.dev.microsoft.com 中的 ClientID

发行者 URL:https ://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration

客户密码:(空白)

4

1 回答 1

1

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

目前,Azure App Services 和 Azure Functions 不支持 AAD V2(包括 MSAL)。请查看更新。

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

于 2019-06-19T21:08:30.057 回答