可以从Power Bi和Power Apps中使用经过AAD身份验证的Azure功能吗?

时间:2018-01-25 21:41:24

标签: authentication azure-active-directory powerbi azure-functions powerapps

在Power Bi中,我们在尝试建立网络连接时遇到此错误:

“我们无法使用提供的凭据进行身份验证。请重试”

Azure功能应用已在我们的AAD中注册。该函数是一个C#httptrigger,代码如下:

using System.Net;
using System.Net.Http;
using System.Security.Claims;
using System.Threading.Tasks;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
// parse query parameter
ClaimsIdentity userClaimsId = ClaimsPrincipal.Current.Identity as ClaimsIdentity;
    var claims = userClaimsId.FindAll(ClaimTypes.Upn);
    var groups = userClaimsId.Claims.Where(x => x.Type.Equals("groups")).ToList();
    var upns = userClaimsId.Claims.ToList();
    var roles = userClaimsId.Claims.Where(x => x.Type.Equals("upn")).ToList();
    return  req.CreateResponse(HttpStatusCode.OK, groups);
}

我们正尝试通过Get Data&gt;从Power Bi Desktop连接;在我们相同的AAD中使用组织帐户的Web选项。当我们从浏览器调用该函数时,它会提示登录并且似乎返回数据。

enter image description here

1 个答案:

答案 0 :(得分:5)

当您使用单位帐户登录时,Power BI Desktop从AAD获取的令牌适用于https://yourfunction.azurewebsites.net个受众群体。但是,当您为Azure功能应用程序配置AAD身份验证时,默认情况下配置的受众为https://yourfunction.azurewebsites.net/.auth/login/aad/callback。这就是您拒绝接入访问权限的原因。

因此,您可以转到Azure功能应用程序的AAD身份验证设置,单击AAD&gt;高级&gt;并在那里输入新的允许令牌受众(见下文,标记为红色)。确保单击“确定”,然后保存更改。

enter image description here