我正在尝试使用JavaScript / angular获取访问令牌,但我收到错误请求资源上没有'Access-Control-Allow-Origin'标头,而我正在调用api使用Postman获取响应代码200来访问令牌。
从角度调用api时控制台出错,但网络标签中的响应代码为200 。
Response code 200 in network tab
我无法在角度代码中获取Power BI访问令牌,并且没有适当的文档来访问权限BI中没有基于gui身份验证的令牌。
答案 0 :(得分:-1)
如果您使用的是C#.Net,您可以查看有关如何获取Power BI AAD令牌的官方文档: https://docs.microsoft.com/en-us/power-bi/developer/get-azuread-access-token
using Microsoft.IdentityModel.Clients.ActiveDirectory;
protected void Page_Load(object sender, EventArgs e)
{
//Redirect uri must match the redirect_uri used when requesting Authorization code.
string redirectUri = String.Format("{0}Redirect", Properties.Settings.Default.RedirectUrl);
string authorityUri = Properties.Settings.Default.AADAuthorityUri;
// Get the auth code
string code = Request.Params.GetValues(0)[0];
// Get auth token from auth code
TokenCache TC = new TokenCache();
AuthenticationContext AC = new AuthenticationContext(authorityUri, TC);
ClientCredential cc = new ClientCredential
(Properties.Settings.Default.ClientID,
Properties.Settings.Default.ClientSecret);
AuthenticationResult AR = AC.AcquireTokenByAuthorizationCode(code, new Uri(redirectUri), cc);
//Set Session "authResult" index string to the AuthenticationResult
Session[_Default.authResultString] = AR;
//Redirect back to Default.aspx
Response.Redirect("/Default.aspx");
}
如果您正在使用任何其他语言,您可以使用合适的AAD库(例如,对于js \ node.js使用ADAL.js),或者只使用相同属性对AAD端点进行HTTP调用。