2017-01-25 5 views
3

Je suis nouveau sur Azure ActiveDirectory et Power Bi Embedded.Obtention de 403 Interdit lors de l'authentification de l'API REST Azure non interactive pour PowerBi Embedded Report

J'ai une application ASP.net WebForms dans laquelle j'aimerais afficher certains rapports PowerBi. Lorsque je m'authentifie de manière interactive, tout fonctionne bien, j'obtiens mon jeton et je peux accéder à mon rapport. (Suit les excellents exemples trouvés on GitHub) Ces exemples sont des connexions interactives et utilisent la méthode AcquireTokenByAuthorizationCode().

Cependant, je ne veux pas que mes utilisateurs doivent créer/se connecter avec n'importe quel compte, je veux juste rendre le rapport pour leur consommation. J'ai donc configuré un ClientCredential (cc) avec mon clientID et clientSecret. Am en utilisant cela avec la méthode AquireToken ainsi:

token = AC.AcquireToken("https://analysis.windows.net/powerbi/api",cc).AccessToken; 

Cependant, cela me fait avec succès un jeton, quand j'ajoute que l'en-tête de demande:

request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value)); 

La réponse échoue toujours avec un « 403 Forbidden "erreur à:

using (var response = request.GetResponse() as System.Net.HttpWebResponse) 
    {} 

Je l'ai regardé d'autres exemples, beaucoup utilisent les méthodes asynchrones pour un jeton aquire, que je ne suis pas. Est-ce que quelqu'un peut me conseiller sur comment je peux passer ces erreurs 403 afin que je puisse simplement servir des rapports à mes utilisateurs (je ne veux pas les publier publiquement, pour des raisons de sécurité).

Merci d'avance à l'avance!

+0

Merci pour votre réponse rapide. Nous avons ajouté des rapports et des ensembles de données à notre espace de travail d'entreprise en utilisant Power BI en ligne. Je ne suis pas sûr de savoir comment obtenir les clés d'accès à utiliser dans l'application. Ils doivent être enregistrés dans Azure quelque part mais je ne sais pas où. – user7524598

+0

Il se peut que vous n'ayez pas fini de configurer votre collection PowerBi Workspace dans Azure. Une fois cela créé, sous les paramètres de votre espace de travail. Vers le bas, vous verrez une section appelée "clés d'accès" (gardez-les secrets). Parallèlement à cela, j'avais besoin du nom de la collection Workspace, le WorkspaceID pour obtenir le jeton d'intégration. Ce jeton, combiné à l'embedURL que vous obtenez de votre rapport, devrait être tout ce dont vous avez besoin pour intégrer votre rapport dans votre application. En suivant les 3 liens que j'ai posté ci-dessous, vous devriez vous rendre où vous voulez être. – Silmar

Répondre

2

Doh, je me trompais! Azure Login n'est pas nécessairement requis pour intégrer des rapports de manière sécurisée. Le troisième lien ci-dessous est inclus parce que mon application n'est pas MVC mais WebForms, et M. Mikami a partagé un échantillon de code sympa que j'ai peaufiné pour m'aider à atteindre mon objectif.

Pour tous ceux qui souhaitent utiliser Power Bi Embedded pour intégrer des rapports et s'authentifier de manière non interactive, ces trois liens m'ont aidé à atteindre cet objectif.