2016-09-28 10 views
2

Ich habe eine Anwendung mit ASP MVC mit Azure AD-Authentifizierung entwickelt. Diese Anwendung soll Daten in Power BI veröffentlichen. Ich habe versucht, diesem Tutorial zu folgen: https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-register-a-client-app/, es funktioniert und es ist fast genau das, was ich brauche.Authentifizierung gegen Power Bi in Owin

Das Problem ist, dass es Native App-Authentifizierung verwendet, und meine Anwendung ist eine Webanwendung. Darüber hinaus ist meine App bereits gegen Azure AD authentifiziert, und ich möchte die Anmeldeinformationen des Benutzers nicht zum zweiten Mal anfordern.

Ich nehme an, dass ich Bearer-Token irgendwie aus dem aktuellen Owin-Kontext abrufen kann, und verwende es zur Authentifizierung gegen Power BI. Ist das korrekt und wie kann ich es tun?

Meine App ist eine einfache App, die von VS-Vorlage mit aktivierter AD-Authentifizierung generiert wird, so dass es keinen Sinn macht, Code zu posten.

Aktualisiert Ah, ok nur ein bisschen Details (lassen Sie mich wissen, wenn Sie mehr benötigen): Signing in (erzeugt durch VS):

if (!Request.IsAuthenticated) 
      { 
       HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, 
        OpenIdConnectAuthenticationDefaults.AuthenticationType); 
      } 

Authentifizierungstyp "OpenIdConnect"

ist

Startup.Auth.cs ist:

app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

app.UseOpenIdConnectAuthentication(
       new OpenIdConnectAuthenticationOptions 
       { 
        ClientId = clientId, 
        Authority = authority, 
        PostLogoutRedirectUri = postLogoutRedirectUri 
       }); 

Noch eine Sache, ich bin mir nicht sicher, ob es aus der Post klar ist. Mein Ziel ist die Authentifizierung bei PowerBi mit den aktuell angemeldeten Benutzerdaten. Jeder Benutzer in meinem System wird seinen eigenen Bericht in der Web-App

haben

Antwort

0

Sie sollten für Authenticate your web app oder Azure Active Directory tenant anstelle der Registrierung der Client-Anwendung mit Power BI gehen.

Tutorials

Authenticate your web app

Azure Active Directory tenant

Beispiel App

https://github.com/Microsoft/PowerBI-CSharp/tree/master/samples/webforms/get-started-web-app-asp.net

+1

ich diese Tutorials gesehen habe und sieht aus wie ich einfach nicht under d was dort passiert ist. Ich wollte nicht zweimal autorisieren, und ich dachte, dass die Umleitung zu "https: // login.windows.net/common/oauth2/authorize /" immer eine obligatorische Autorisierung durchführt, aber es scheint, dass dies nicht der Fall ist. Falls die App bereits authentifiziert ist, wird die Umleitung zu dieser URL zurück zu "redirectUri" umgeleitet, wobei der gesamte Autorisierungsbildschirm übersprungen wird, was genau das ist, wonach ich gesucht habe – Archeg