MSAL + Azure应用服务

时间:2017-06-19 15:21:36

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

我以前发过这个帖子,但是线程变得非常广泛和令人困惑,从未达到过解决方案。我正在重新发布清晰简洁的代码块和我期望的结果。

我希望对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

客户端密码:(空白)

1 个答案:

答案 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似乎是目前唯一可行的选择。