WEBVTT
00:00:00.015 --> 00:00:10.015
[MUSIC]
00:00:12.143 --> 00:00:14.359
Everybody, welcome to
another exciting episode of
00:00:14.359 --> 00:00:16.471
Data Exposed, I'm your host,
Scott Klein, and
00:00:16.471 --> 00:00:18.907
with me today all the way from
Israel, which is awesome.
00:00:18.907 --> 00:00:20.825
>> [LAUGH]
>> Is Arena and Ron,
00:00:20.825 --> 00:00:22.185
did I say those right?
00:00:22.185 --> 00:00:22.955
>> Yeah.
00:00:22.955 --> 00:00:25.885
>> Awesome, so you guys are from
the Power BI Embedded team.
00:00:25.885 --> 00:00:27.785
>> Yeah,
we are on the engineering side.
00:00:27.785 --> 00:00:28.985
>> Awesome, so
00:00:28.985 --> 00:00:32.485
you're here in town to talk
about Power BI Embedded.
00:00:32.485 --> 00:00:35.362
But before we get started, take
a second to introduce yourself
00:00:35.362 --> 00:00:36.621
and then we'll get going.
00:00:36.621 --> 00:00:37.502
So, how about you first?
00:00:37.502 --> 00:00:38.990
>> Yeah, so, I'm Marina.
00:00:38.990 --> 00:00:42.440
I'm senior software engineer
in the Far Beyond Better team.
00:00:42.440 --> 00:00:43.030
This is Ron.
00:00:43.030 --> 00:00:44.238
We are coworkers and
00:00:44.238 --> 00:00:46.875
working together on
the Power BI platform.
00:00:48.675 --> 00:00:51.605
Like you said,
we have came here for,
00:00:51.605 --> 00:00:55.555
we are releasing a batch of
new capabilities this week,
00:00:55.555 --> 00:00:59.303
coming out with new, totally new
branded solution for Power BI.
00:00:59.303 --> 00:01:03.645
With Power BI Embedded,
like you are able to have all
00:01:03.645 --> 00:01:08.391
the capabilities and analytic
platform and computation
00:01:08.391 --> 00:01:11.790
>> Yeah, that's fine.
00:01:11.790 --> 00:01:16.303
So this is new stuff
coming out when?
00:01:16.303 --> 00:01:17.084
>> Two days ago.
00:01:17.084 --> 00:01:18.004
>> Two days ago [LAUGH].
00:01:18.004 --> 00:01:18.524
>> [LAUGH].
00:01:18.524 --> 00:01:21.010
>> So we're already late,
awesome, all right.
00:01:21.010 --> 00:01:22.100
So what do you got?
00:01:22.100 --> 00:01:23.982
So what can you show
us about Power BI.
00:01:23.982 --> 00:01:26.180
So for example,
I'm new to Power BI,
00:01:26.180 --> 00:01:29.710
I know enough about Power BI
to be very dangerous.
00:01:29.710 --> 00:01:31.550
So what is Power BI Embedded?
00:01:31.550 --> 00:01:34.160
And what does that mean for
developers and
00:01:34.160 --> 00:01:35.270
all the new stuff
you guys have done?
00:01:36.412 --> 00:01:40.000
>> So whenever developer's ready
to enrich his application and
00:01:40.000 --> 00:01:44.240
he would like to incorporate
analytic capabilities and
00:01:44.240 --> 00:01:47.490
strengths and handle his data
and present and have this
00:01:47.490 --> 00:01:50.120
amazing reporting services
>> Okay.
00:01:50.120 --> 00:01:52.990
>> He can choose to have
entire Power BI within
00:01:52.990 --> 00:01:55.940
his application and
have seamless experience of his
00:01:55.940 --> 00:01:58.840
application without even the
notion and draining of Power BI.
00:01:58.840 --> 00:02:01.050
It's like,
you'll see it later on.
00:02:01.050 --> 00:02:02.364
It works like magic.
00:02:02.364 --> 00:02:03.180
>> Okay, cool.
00:02:04.360 --> 00:02:10.030
So I know Power BI from the
website or the Windows, right?
00:02:10.030 --> 00:02:10.776
But what is embedded mean?
00:02:10.776 --> 00:02:14.481
I mean, is just that I'm
adding it to my application or
00:02:14.481 --> 00:02:17.966
what does that mean for,
what does embedded mean?
00:02:17.966 --> 00:02:23.310
>> So there are two parts for
the embedded so we exposed
00:02:23.310 --> 00:02:27.220
bunch of REST APIs on the Power
BI service platform itself to
00:02:27.220 --> 00:02:30.530
enable the users, like to fetch
their data, get all the metadata
00:02:30.530 --> 00:02:33.820
about their available
dashboard reports and dataset.
00:02:33.820 --> 00:02:36.881
They are able to create
dataset programatically
00:02:36.881 --> 00:02:38.783
through the push data API.
00:02:38.783 --> 00:02:40.044
So a set of APIs.
00:02:40.044 --> 00:02:40.556
>> Yeah.
00:02:40.556 --> 00:02:41.252
>> That I can work with.
00:02:41.252 --> 00:02:44.690
>> Bunch of new REST APIs for
refresh like dataset.
00:02:44.690 --> 00:02:47.070
You can just refresh
automatically.
00:02:47.070 --> 00:02:47.950
You can handle and
00:02:47.950 --> 00:02:51.140
manage your enterprise
gateway through REST APIs.
00:02:51.140 --> 00:02:52.510
And many, many more.
00:02:52.510 --> 00:02:53.160
>> Sweet.
00:02:53.160 --> 00:02:53.810
>> Yeah.
>> Okay,
00:02:53.810 --> 00:02:57.770
so give us an overview of what
this Power BI Embedded stuff is.
00:02:57.770 --> 00:03:01.610
>> Yeah, so we can start with
a quick overview with one slide
00:03:01.610 --> 00:03:06.520
that we have presenting our new
solution for Power BI Embedded.
00:03:06.520 --> 00:03:10.444
And this basically shows the
end-to-end flow of an end user,
00:03:10.444 --> 00:03:13.775
which enters the start body
application of the ISV and
00:03:13.775 --> 00:03:16.959
whenever the end user of
the application enters and
00:03:16.959 --> 00:03:20.809
want to access Power BI Embedded
resource, just to take a side
00:03:20.809 --> 00:03:24.733
note, the application end user
is not necessarily an AD user or
00:03:24.733 --> 00:03:26.388
Power BI licensed at all.
00:03:26.388 --> 00:03:29.459
Whenever he enters
the application, and he would
00:03:29.459 --> 00:03:32.821
like to see the enterprise,
the company like report or
00:03:32.821 --> 00:03:36.990
business matrix, the application
behind the scenes preferably on
00:03:36.990 --> 00:03:40.884
the back-end side will have to
authenticate him for prior BI.
00:03:40.884 --> 00:03:44.675
And for this is like on
the back-end side will use an AD
00:03:44.675 --> 00:03:47.970
user like the master
user of the application.
00:03:47.970 --> 00:03:50.260
The application is
an AD application.
00:03:50.260 --> 00:03:52.570
And this is one user,
it will need to handle and
00:03:52.570 --> 00:03:56.180
provision with Power BI Pro
licence in order to be able
00:03:57.720 --> 00:04:00.400
to authenticate and
authorize for Power BI.
00:04:00.400 --> 00:04:05.520
So the application
handles the master user.
00:04:05.520 --> 00:04:08.190
It authenticates him through AD.
00:04:08.190 --> 00:04:12.740
It retrieves a valid token to
access Power BI on his behalf,
00:04:12.740 --> 00:04:16.450
yeah he can use this token for
the REST APIs and
00:04:16.450 --> 00:04:20.230
the main authentication call for
embedding.
00:04:21.510 --> 00:04:23.780
Like the application
would need to grant
00:04:23.780 --> 00:04:24.770
the end-user-
>> Okay.
00:04:24.770 --> 00:04:27.490
>> Of the application embed
token so you just call
00:04:27.490 --> 00:04:31.900
new REST APIs for generate embed
token for the specific resource
00:04:31.900 --> 00:04:34.930
and with a valid permission
scope and operation.
00:04:34.930 --> 00:04:38.290
He can say, I allowed the
end-user just to view the report
00:04:38.290 --> 00:04:41.600
or I allow him to edit report or
create a new report.
00:04:41.600 --> 00:04:43.930
All these batch of new
capabilities like self-service
00:04:43.930 --> 00:04:45.630
capabilities are also added.
00:04:45.630 --> 00:04:48.660
And for this access of
management informations
00:04:48.660 --> 00:04:50.590
you will have to
generate the token.
00:04:50.590 --> 00:04:53.940
>> Okay, so I don't have to be
an Azure Active Directory user
00:04:53.940 --> 00:04:55.797
to use Power BI Embedded.
00:04:55.797 --> 00:04:56.473
>> Right.
>> Right,
00:04:56.473 --> 00:04:58.670
but there's this
authentication token or this,
00:04:58.670 --> 00:05:02.280
the will I do authentication
allow me to use that.
00:05:02.280 --> 00:05:03.410
>> Yeah exactly.
00:05:03.410 --> 00:05:07.140
So this step of the application
going to Power BI in order to
00:05:07.140 --> 00:05:11.800
generate the embed token will be
on behalf of the AD master user.
00:05:11.800 --> 00:05:15.090
And when we get the response
with the embed token,
00:05:15.090 --> 00:05:17.782
the application just
returns to the client side.
00:05:17.782 --> 00:05:19.106
>> Mm-hm.
>> And then you'll have to
00:05:19.106 --> 00:05:20.630
embed Power BI.
00:05:20.630 --> 00:05:23.450
We have the JavaScript familiar
SDK, very comfortable,
00:05:23.450 --> 00:05:27.868
you just get him in the idea
of the dashboard or report or
00:05:27.868 --> 00:05:31.450
add the dataset and
provide him the embed token and
00:05:31.450 --> 00:05:33.407
just do the magic.
00:05:33.407 --> 00:05:34.392
>> Just do the magic.
00:05:34.392 --> 00:05:38.340
>> [LAUGH] Yeah just embed.
00:05:38.340 --> 00:05:43.958
>> So it seems, if I'm just a
user from what I understand, so
00:05:43.958 --> 00:05:47.280
Power BI Embedded is taking care
of all the authentications and
00:05:47.280 --> 00:05:48.170
token stuff for me.
00:05:48.170 --> 00:05:50.287
I don't have to worry about,
I just use the API and
00:05:50.287 --> 00:05:53.130
everything's cool
>> Yeah, exactly.
00:05:53.130 --> 00:05:56.513
An additional point that
we would like to add,
00:05:56.513 --> 00:05:59.721
which is a bit more advanced,
but the ADs and
00:05:59.721 --> 00:06:02.672
the application is
an AD application and
00:06:02.672 --> 00:06:06.005
it has its tenant and
one master user, okay.
00:06:06.005 --> 00:06:10.902
And we have also the tenant
admin and the analyst of the ISV
00:06:10.902 --> 00:06:15.270
which he might author
the business reports.
00:06:15.270 --> 00:06:19.660
Those two personas are able to
access the application content
00:06:19.660 --> 00:06:23.460
in Power BI either through
the powerbi.com portal with
00:06:23.460 --> 00:06:26.380
interactive login like
Power BI the regular one or
00:06:26.380 --> 00:06:27.290
through the application.
00:06:27.290 --> 00:06:31.530
So they have the flexibility to
work either through the APIs or
00:06:31.530 --> 00:06:35.630
through the application
interface or through Power BI.
00:06:35.630 --> 00:06:39.159
Yeah, you have
the entire spectrum.
00:06:39.159 --> 00:06:40.000
>> That's kind of cool.
00:06:41.180 --> 00:06:43.090
So there's a set of APIs.
00:06:43.090 --> 00:06:46.720
And you said, what was actually
released two days ago,
00:06:46.720 --> 00:06:49.960
was it this set of APIs,
or what was?
00:06:49.960 --> 00:06:50.780
>> This new solution.
00:06:50.780 --> 00:06:51.670
>> This new solution, okay.
00:06:51.670 --> 00:06:54.410
>> This new solution, we have
already Power BI Embedded
00:06:54.410 --> 00:06:57.780
solution, but
this is brandly new solution and
00:06:57.780 --> 00:07:00.690
it's more integrated
with Power BI.
00:07:00.690 --> 00:07:04.150
Like, we have
the Power BI Embedded,
00:07:04.150 --> 00:07:05.750
integrated pillar of Power BI.
00:07:05.750 --> 00:07:09.320
Whatever you will be able to do
with Power BI you'll be able to
00:07:09.320 --> 00:07:09.960
do in Embedded.
00:07:09.960 --> 00:07:12.715
So there will be more equally
>> I see
00:07:12.715 --> 00:07:13.965
>> And all the functionality.
00:07:13.965 --> 00:07:19.120
A new stuff coming out in
Power BI will come right away.
00:07:19.120 --> 00:07:22.600
>> Basically, you're bringing
the capabilities and
00:07:22.600 --> 00:07:26.210
security of Power BI
to Power BI Embedded,
00:07:26.210 --> 00:07:29.168
make it easy to author and
do Power BI.
00:07:29.168 --> 00:07:32.435
>> Exactly
>> Very nice, cool And
00:07:32.435 --> 00:07:36.027
how do you use this API?
00:07:36.027 --> 00:07:37.900
Is that what the demo
was all about?
00:07:37.900 --> 00:07:39.830
>> Yeah.
>> We love demos on this show.
00:07:39.830 --> 00:07:43.230
>> So we will switched to run
and we will show how easy it is.
00:07:43.230 --> 00:07:44.550
>> All right, so
00:07:44.550 --> 00:07:50.040
we're gonna walk you through
the process of having 0 to 60,
00:07:50.040 --> 00:07:54.940
from nothing to an embedded
dashboard right now.
00:07:54.940 --> 00:07:59.640
And maybe next time we'll show
you a report or a tile but.
00:07:59.640 --> 00:08:01.660
>> We're good for 0 to 60.
00:08:01.660 --> 00:08:03.500
We love this type of stuff.
00:08:03.500 --> 00:08:04.890
>> Maybe zero to 59.
00:08:04.890 --> 00:08:05.560
>> Okay, good.
00:08:05.560 --> 00:08:06.795
Close enough.
00:08:06.795 --> 00:08:07.870
[LAUGH]
>> So
00:08:07.870 --> 00:08:11.070
what I need to do
is register an app.
00:08:11.070 --> 00:08:13.470
I've used redirect URL
00:08:14.480 --> 00:08:18.370
which is local right now cuz
we're gonna run it locally.
00:08:18.370 --> 00:08:22.460
I'll just call it
a Channel 9 demo.
00:08:22.460 --> 00:08:23.400
>> Okay.
00:08:23.400 --> 00:08:27.100
>> And make sure it's in
native app because we want it
00:08:27.100 --> 00:08:30.170
seamlessly so we don't want to
pop anything back to the user.
00:08:30.170 --> 00:08:34.310
We don't wanna invoke any
user interface to log in.
00:08:34.310 --> 00:08:36.090
Like we said it's all
happening in the back end.
00:08:36.090 --> 00:08:37.010
>> On the back end okay cool.
00:08:37.010 --> 00:08:40.440
>> I need to permit
the app to do some
00:08:40.440 --> 00:08:44.350
actions on Power BI on behalf
of the application user.
00:08:44.350 --> 00:08:49.050
And right now we just selected
a bunch that we're gonna demo.
00:08:49.050 --> 00:08:52.470
And all I need to do
is register that app.
00:08:52.470 --> 00:08:56.019
It's expired.
00:08:56.019 --> 00:08:58.930
>> That's okay, cool,
we're okay with that, woohoo.
00:09:09.248 --> 00:09:16.054
>> Let me just answer that again
>> Did the URL change?
00:09:16.054 --> 00:09:19.294
Redirect URL?
00:09:19.294 --> 00:09:20.381
>> No, it just disappeared.
00:09:22.425 --> 00:09:26.368
Here we go.
00:09:26.368 --> 00:09:29.760
All right, and
I'll just register an app.
00:09:29.760 --> 00:09:32.802
And all I need to do is
save this key for later.
00:09:32.802 --> 00:09:35.860
>> Okay.
00:09:35.860 --> 00:09:38.377
>> And use it as my
application ID in the solution
00:09:38.377 --> 00:09:39.842
I'm just gonna show you.
00:09:39.842 --> 00:09:41.558
But if I lost it,
00:09:41.558 --> 00:09:46.820
I can just retrieve it in
the agent report portal.
00:09:46.820 --> 00:09:49.785
>> So
that's easy to get back that ID.
00:09:49.785 --> 00:09:50.457
Okay, cool.
00:09:50.457 --> 00:09:54.980
>> So we wanted to show
the developer samples.
00:09:54.980 --> 00:09:56.956
We're gonna publish this URL.
00:09:56.956 --> 00:09:59.050
It's been published for
a while now.
00:09:59.050 --> 00:10:00.760
>> And what we'll do is we
can actually take that and
00:10:00.760 --> 00:10:02.640
put it in the description
of the show so
00:10:02.640 --> 00:10:07.350
people can actually get to that.
00:10:07.350 --> 00:10:09.770
>> First, before we dive in
into these samples we have,
00:10:09.770 --> 00:10:14.680
we see that we have App Owns
Data and User Owns Data.
00:10:14.680 --> 00:10:19.990
The User Owns Data is what we
call a first party embedding
00:10:19.990 --> 00:10:22.660
which requires the application
to have all its users,
00:10:22.660 --> 00:10:25.120
all its end users registered and
00:10:25.120 --> 00:10:29.100
have Power BI licenses to
access their own data.
00:10:29.100 --> 00:10:31.630
And if we built an app that,
00:10:31.630 --> 00:10:36.140
like Elena just showed,
uses that embed token to
00:10:36.140 --> 00:10:40.760
access data on behalf of
a single master user, and
00:10:40.760 --> 00:10:45.725
I don't have to have my users
registered on Power BI.
00:10:45.725 --> 00:10:46.750
>> Okay.
00:10:46.750 --> 00:10:50.613
>> And then I'm gonna use that
App Owns Data which we're gonna
00:10:50.613 --> 00:10:51.910
see in code.
00:10:51.910 --> 00:10:57.530
I just wanna show one thing,
which is the web config.
00:10:57.530 --> 00:11:03.080
And what I see here, aside from
all those URLs that are already
00:11:03.080 --> 00:11:08.680
registered inside I see that
client ID which we just saved.
00:11:08.680 --> 00:11:11.170
>> Okay, so you're just
putting in the client ID.
00:11:11.170 --> 00:11:11.750
>> Right.
00:11:11.750 --> 00:11:13.120
>> Okay.
>> A group ID
00:11:13.120 --> 00:11:16.100
is that app workspace
within Power BI that
00:11:16.100 --> 00:11:18.310
has the content that
we wanna embed.
00:11:18.310 --> 00:11:24.040
So one way to get that, which
is probably the fastest, is just
00:11:24.040 --> 00:11:29.620
logging into Power BI as that
user that we're embedding.
00:11:29.620 --> 00:11:33.870
And get the group from our URL.
00:11:33.870 --> 00:11:34.490
>> Okay.
00:11:34.490 --> 00:11:37.937
>> Okay, I can retrieve
it with the APIs too.
00:11:37.937 --> 00:11:39.590
The REST APIs.
00:11:39.590 --> 00:11:42.410
But that's a longer way and
we have a short.
00:11:42.410 --> 00:11:46.570
So we're just gonna
use the shorter way.
00:11:46.570 --> 00:11:50.279
>> So that's the group ID and
then you retrieve the client ID.
00:11:50.279 --> 00:11:54.047
>> Right, and all of that stuff
is just that Power BI and
00:11:54.047 --> 00:11:57.570
Power BI user and password for
that master user.
00:11:57.570 --> 00:12:02.480
So we're gonna use this as
a demo right as a sample
00:12:02.480 --> 00:12:06.100
when you're in the Dev process,
you can use that in the web
00:12:06.100 --> 00:12:10.940
config but that's not a totally
secure way so we recommend
00:12:10.940 --> 00:12:14.280
using Key Vault or something
like that to restore your users.
00:12:14.280 --> 00:12:17.310
But when we're doing
a demo like this or
00:12:17.310 --> 00:12:22.150
just playing around with
that SDK, then we can use.
00:12:22.150 --> 00:12:23.310
And write it right here.
00:12:23.310 --> 00:12:27.930
So I'm just gonna open
this solution right here.
00:12:27.930 --> 00:12:31.100
I see that
Power BI Embedded App Owns Data.
00:12:31.100 --> 00:12:35.135
And because we said we wanna
embed a dashboard then,
00:12:35.135 --> 00:12:38.621
I'm just gonna go here,
home controller and
00:12:38.621 --> 00:12:42.291
just setup a break point and
embed dashboard and
00:12:42.291 --> 00:12:45.700
just put that solution
up just so we can see.
00:12:45.700 --> 00:12:49.719
>> Okay now where would they
get the master username and
00:12:49.719 --> 00:12:52.490
password, who sets that up?
00:12:52.490 --> 00:12:56.610
>> That's the only thing
you need to setup if you
00:12:56.610 --> 00:13:01.070
are a developer that you wanna
develop your app over Power BI,
00:13:01.070 --> 00:13:05.070
all you need to do is setup
a Power BI account for
00:13:05.070 --> 00:13:06.320
you as a developer.
00:13:06.320 --> 00:13:11.597
Set up one single app
user per app workspace.
00:13:11.597 --> 00:13:13.796
And that's the one-
>> And that's that okay cool
00:13:13.796 --> 00:13:14.405
>> Right, so
00:13:14.405 --> 00:13:15.766
we've booted the app.
00:13:15.766 --> 00:13:18.430
We see I can embed a report,
dashboard and
00:13:18.430 --> 00:13:20.180
tile right off the bat.
00:13:20.180 --> 00:13:24.518
All I have to do is have
those in my app workspace.
00:13:24.518 --> 00:13:29.180
And I can see that we have
newer versions of our SDKs
00:13:29.180 --> 00:13:33.632
available by Nuget just for
quick on boarding.
00:13:33.632 --> 00:13:35.300
>> Okay.
>> I'm just going to click on
00:13:35.300 --> 00:13:38.636
embed dashboard and land right
here and start going over.
00:13:38.636 --> 00:13:42.400
So I get those web
config parameters.
00:13:42.400 --> 00:13:44.860
I get user password and
00:13:44.860 --> 00:13:47.010
credentials from my
user name and password.
00:13:47.010 --> 00:13:48.906
I'm not gonna show
that right now
00:13:48.906 --> 00:13:49.759
>> [LAUGH]
00:13:49.759 --> 00:13:50.296
>> But trust me it's there.
00:13:50.296 --> 00:13:56.645
>> [LAUGH]
>> So we're gonna instantiate
00:13:56.645 --> 00:14:01.310
an AD token for
that master user.
00:14:01.310 --> 00:14:05.220
So we're gonna use that
authentication context.
00:14:05.220 --> 00:14:09.790
And call acquire token
with that client ID and
00:14:09.790 --> 00:14:11.590
credentials for
that app master user.
00:14:11.590 --> 00:14:12.240
>> Okay.
00:14:12.240 --> 00:14:17.330
>> So that's gonna call the REST
APIs, and it just came back.
00:14:17.330 --> 00:14:22.170
I can see in the debugger that
I have a valid AAD token,
00:14:22.170 --> 00:14:25.190
I have a valid expiration,
right?
00:14:25.190 --> 00:14:26.480
>> Yep.
00:14:26.480 --> 00:14:28.370
>> And I can continue.
00:14:28.370 --> 00:14:31.100
So what we want now is to
00:14:32.670 --> 00:14:37.070
hook up that access token,
that AAD token with our Power BI
00:14:37.070 --> 00:14:39.590
client that's available through
the REST APIs and the SDKs.
00:14:39.590 --> 00:14:41.610
>> So that's the token you guys
were talking about in that
00:14:41.610 --> 00:14:42.450
PowerPoint.
00:14:42.450 --> 00:14:43.640
>> Not yet not yet.
00:14:43.640 --> 00:14:47.010
That's the first token, that's
the right hand side the upper
00:14:47.010 --> 00:14:50.080
right side of that slide
that's the master user.
00:14:50.080 --> 00:14:53.210
>> Okay, so the master user's
authenticated at this point.
00:14:53.210 --> 00:14:56.560
>> Right so
all we need to do is boot and
00:14:58.300 --> 00:15:03.320
instantiate that Power BI
client with these credentials.
00:15:03.320 --> 00:15:06.898
And what we're gonna do
right now is just call
00:15:06.898 --> 00:15:11.418
the Power BI REST APIs through
that NuGet SDK package that
00:15:11.418 --> 00:15:15.800
allows you to enumerate
all your resources.
00:15:15.800 --> 00:15:18.190
We've just called get
dashboards in the group,
00:15:18.190 --> 00:15:19.460
the group we just saw.
00:15:19.460 --> 00:15:24.465
We can see it has one
dashboard in it's list.
00:15:24.465 --> 00:15:26.787
>> Okay.
>> I can just see that API
00:15:26.787 --> 00:15:30.754
response right here
already in a data contract
00:15:30.754 --> 00:15:35.126
that I know I have the embed
URL, I have it's name,
00:15:35.126 --> 00:15:40.109
I have it's ID and for the sake
of the demo we're just gonna
00:15:40.109 --> 00:15:43.490
take the first
dashboard that we have.
00:15:43.490 --> 00:15:47.372
We only have one, you can
choose it by whatever you like.
00:15:47.372 --> 00:15:50.490
By name,
ID if you know it in advance.
00:15:50.490 --> 00:15:51.760
And now we're gonna go through
00:15:51.760 --> 00:15:53.870
the interesting part which
is the generate token.
00:15:53.870 --> 00:15:55.930
That's the token we just showed.
00:15:55.930 --> 00:16:02.240
We have an AAD token on behalf
of that master app user or-
00:16:02.240 --> 00:16:03.090
>> Master user.
00:16:03.090 --> 00:16:04.340
>> Master user.
00:16:04.340 --> 00:16:06.860
And now it's granting
permissions for
00:16:06.860 --> 00:16:11.670
that single dashboard to
have a specific set of
00:16:11.670 --> 00:16:15.920
actions that this embed
session can have, which is for
00:16:15.920 --> 00:16:19.260
now we're gonna just
allow access level view.
00:16:19.260 --> 00:16:22.510
You can see it right
here in the parameters.
00:16:22.510 --> 00:16:28.040
If I'm talking about reports and
I can use edit capabilities.
00:16:28.040 --> 00:16:31.600
I can allow my users to
actually edit the report.
00:16:31.600 --> 00:16:33.690
>> The read write okay.
00:16:33.690 --> 00:16:35.120
>> And I can create new ones.
00:16:35.120 --> 00:16:38.530
And we're gonna show
it probably next time.
00:16:38.530 --> 00:16:39.595
>> Okay.
>> Or not.
00:16:39.595 --> 00:16:41.210
>> [LAUGH]
>> So
00:16:41.210 --> 00:16:43.950
I'm gonna grant permissions for
00:16:43.950 --> 00:16:49.260
my user, which is using right
now the app, which is us again,
00:16:49.260 --> 00:16:53.170
to have a single dashboard,
which this is his ID.
00:16:53.170 --> 00:16:57.200
I saw that, that's his levels
view, and I know it's within
00:16:57.200 --> 00:16:58.963
the group I just selected
>> Yep.
00:16:58.963 --> 00:17:05.740
>> And I'm gonna shoot that,
generate token SDK REST API
00:17:05.740 --> 00:17:11.530
call and get back a token
response which has a token,
00:17:11.530 --> 00:17:15.040
a token ID that I can
just monitor later for
00:17:15.040 --> 00:17:17.260
my purposes if I want to audit-
>> Sure.
00:17:17.260 --> 00:17:20.630
>> The actions done
by that token.
00:17:20.630 --> 00:17:21.320
>> Okay.
>> And
00:17:21.320 --> 00:17:25.500
I have its valid expiration
which is bound by that AAD
00:17:25.500 --> 00:17:26.510
token's expiration.
00:17:26.510 --> 00:17:27.010
>> Right, okay.
00:17:28.230 --> 00:17:32.070
>> So all I need to do now and
this is just moving these
00:17:32.070 --> 00:17:36.810
parameters over to the client
side is save that embed URL I
00:17:36.810 --> 00:17:43.020
got, that dashboard ID I got,
and the token that I need and
00:17:43.020 --> 00:17:48.590
go over to that view for
that client side.
00:17:48.590 --> 00:17:53.600
And the easiest thing to use
here is all I need to do is have
00:17:53.600 --> 00:17:58.870
a valid token ID,
a resource ID which I know
00:17:58.870 --> 00:18:03.860
of which is the dashboard report
and I just need a single DIV,
00:18:03.860 --> 00:18:08.890
HTML DIV which I know how to
point to through jQuery or
00:18:08.890 --> 00:18:12.080
basic document element IDs.
00:18:12.080 --> 00:18:16.330
And what I need to setup right
now is have that access token
00:18:16.330 --> 00:18:19.754
like we've seen a minute ago.
00:18:19.754 --> 00:18:21.391
>> Yep.
>> So I have a token.
00:18:21.391 --> 00:18:22.340
I have an embed URL.
00:18:22.340 --> 00:18:24.280
I have an ID and
00:18:24.280 --> 00:18:27.700
I just need to set them up
inside the JavaScript config.
00:18:29.680 --> 00:18:32.810
I know that it's an embed token,
that's a dashboard,
00:18:32.810 --> 00:18:37.770
that's the access token ID and
all I need to do is call
00:18:37.770 --> 00:18:42.140
Power BI which is our
JavaScript SDK.embed.
00:18:42.140 --> 00:18:48.186
Give it that Single DIV that
we've just seen and that config,
00:18:48.186 --> 00:18:53.668
and if I just run it then
that DIV is gonna popup and just-
00:18:53.668 --> 00:18:55.309
>> and show the dashboard.
00:18:55.309 --> 00:18:57.798
>> Show the dashboard
right inside my app. Wow.
00:18:57.798 --> 00:18:58.579
>> As easy as that.
00:18:58.579 --> 00:18:59.085
>> As easy as that.
00:18:59.085 --> 00:19:01.910
So, create the master user.
00:19:01.910 --> 00:19:03.240
>> Right.
00:19:03.240 --> 00:19:07.480
>> Register your app, and then
go through it and, basically,
00:19:07.480 --> 00:19:09.150
put that in code and
walk through that.
00:19:09.150 --> 00:19:11.560
And you've got
a Power BI embedded app.
00:19:11.560 --> 00:19:12.182
>> Right.
00:19:12.182 --> 00:19:13.694
>> That was pretty simple.
00:19:13.694 --> 00:19:14.294
>> It should be.
00:19:14.294 --> 00:19:18.197
>> [LAUGH]
>> And so people can use this
00:19:18.197 --> 00:19:22.940
sample as a way to
get started correct?
00:19:22.940 --> 00:19:23.795
>> Right.
>> Yeah.
00:19:23.795 --> 00:19:24.915
>> And you can copy the code and
>> Yeah.
00:19:24.915 --> 00:19:26.545
>> Off of that and
use it in your own app.
00:19:26.545 --> 00:19:28.755
We just wanted to state that,
for
00:19:28.755 --> 00:19:31.475
dashboard, which
was just released
00:19:31.475 --> 00:19:33.445
as part of this new offering-
>> Yeah.
00:19:33.445 --> 00:19:35.285
>> You can use whatever
dashboard you can use
00:19:35.285 --> 00:19:35.855
in Power BI.
00:19:35.855 --> 00:19:37.213
LIke Irina said,
00:19:37.213 --> 00:19:41.023
you can use single tiles
like you have in Power BI.
00:19:41.023 --> 00:19:43.505
You can use widgets,
you can use real time data.
00:19:43.505 --> 00:19:44.662
>> Yeah.
>> Yeah, it's all up to date.
00:19:44.662 --> 00:19:47.462
>> Everything you have in
Power BI you have here for
00:19:47.462 --> 00:19:48.659
>> So all the capability I have
00:19:48.659 --> 00:19:50.660
in Power BI now works
in Power BI Embedded.
00:19:50.660 --> 00:19:52.611
If I'm doing real time data
streaming and things like that,
00:19:52.611 --> 00:19:53.153
that all works.
00:19:53.153 --> 00:19:53.996
>> Right.
>> Yeah.
00:19:53.996 --> 00:19:55.004
>> Right.
>> Sweet, okay.
00:19:55.004 --> 00:19:57.502
>> So basically you have
all these visualization.
00:19:57.502 --> 00:19:58.184
>> Right.
>> And
00:19:58.184 --> 00:20:00.482
data analysis right
there in your app and
00:20:00.482 --> 00:20:03.659
the users don't have to know
you're using Power BI, we
00:20:03.659 --> 00:20:06.448
just have to know you're using
>> [LAUGH] Yeah we have to know
00:20:06.448 --> 00:20:07.470
you're using Power Bi.
00:20:07.470 --> 00:20:07.970
Exactly.
00:20:09.020 --> 00:20:14.000
Now is there documentation other
than this sample here, your
00:20:14.000 --> 00:20:17.080
documentation on how to actually
walk through this if they want?
00:20:17.080 --> 00:20:21.963
>> Yes, all I need to do
is go to devpowerbi.com.
00:20:25.306 --> 00:20:29.158
Go to Products and
select Power BI Embedded and
00:20:29.158 --> 00:20:32.030
you could see our documentation.
00:20:32.030 --> 00:20:37.435
You can see how do you do it,
how do you set it up,
00:20:37.435 --> 00:20:41.418
links to the samples
we've just shown you,
00:20:41.418 --> 00:20:45.050
or the JavaScript API which
is the client side API.
00:20:45.050 --> 00:20:49.025
And we've just released as
you can see, June 12th.
00:20:49.025 --> 00:20:49.791
That's two days ago.
00:20:49.791 --> 00:20:50.528
>> Two days ago.
00:20:50.528 --> 00:20:53.609
>> We just sent our whole
documentation as to how
00:20:53.609 --> 00:20:54.264
we do it.
00:20:54.264 --> 00:20:57.760
>> So we haven't talked
about the Java SDK.
00:20:57.760 --> 00:20:59.059
Is that where you just
>> Yeah,
00:20:59.059 --> 00:21:00.905
we'll separate another session.
00:21:00.905 --> 00:21:02.565
So stay tuned.
00:21:02.565 --> 00:21:06.615
>> We definitely want to talk
about that given that will
00:21:06.615 --> 00:21:09.830
be a hot topic for some of
our viewers, how to use that.
00:21:09.830 --> 00:21:12.395
This a great way to say hey how
do I get started how do I do
00:21:12.395 --> 00:21:13.421
Power BI Embedded and
00:21:13.421 --> 00:21:15.365
get started with it
which is awesome so.
00:21:15.365 --> 00:21:19.450
>> Yeah, so you start with
downloading this C# SB.NET
00:21:19.450 --> 00:21:23.263
application, you can embed
your own resource and
00:21:23.263 --> 00:21:26.010
plug in the necessary
parameters.
00:21:26.010 --> 00:21:28.925
And afterwards you're just
moving to the JavaScript
00:21:28.925 --> 00:21:31.000
client sample and
then you can just play and
00:21:31.000 --> 00:21:36.050
interact with the capabilities
and we'll show you later on.
00:21:36.050 --> 00:21:39.370
>> So, two things, if users need
supports or have questions,
00:21:39.370 --> 00:21:40.280
what's the best way to do that?
00:21:41.470 --> 00:21:46.150
Is there an alias they can email
or is there like a connect place
00:21:46.150 --> 00:21:48.858
that they can go to provide
feedback or ask questions?
00:21:48.858 --> 00:21:51.742
>> So we are on the GitHub.
00:21:51.742 --> 00:21:56.365
And we are on
the Yammer Group and
00:21:56.365 --> 00:21:57.990
>> Power BI support.
00:21:57.990 --> 00:22:00.990
Just say embed
>> [LAUGH] and
00:22:00.990 --> 00:22:04.830
you'll get routed
to the right place.
00:22:04.830 --> 00:22:07.727
And then, see the other
question I had was,
00:22:07.727 --> 00:22:11.812
if they wanna provide feedback
on that, is it the same place?
00:22:11.812 --> 00:22:14.340
>> Yeah,
Power BI has the ideas page,
00:22:14.340 --> 00:22:16.793
which is ideas ideaspowerbi.com
00:22:21.947 --> 00:22:24.721
Where you can just suggest
your own improvements,
00:22:24.721 --> 00:22:26.376
suggest your own features.
00:22:26.376 --> 00:22:27.599
>> Yeah, that one okay, good.
00:22:27.599 --> 00:22:29.290
>> And people can vote and
00:22:29.290 --> 00:22:32.858
the highest voted features
will probably get.
00:22:32.858 --> 00:22:33.657
>> That's where the line goes.
00:22:33.657 --> 00:22:35.249
Yep that's what were
doing right there.
00:22:35.249 --> 00:22:35.980
That's it.
00:22:35.980 --> 00:22:36.732
>> Not me but someone.
00:22:36.732 --> 00:22:39.633
>> Okay, cool.
00:22:39.633 --> 00:22:41.350
All right, that was awesome.
00:22:41.350 --> 00:22:44.464
So great way to get started with
Power BI, or Power BI Embedded.
00:22:44.464 --> 00:22:45.464
>> Yeah.
00:22:45.464 --> 00:22:48.189
>> Look forward to having you
back to talk about Java SDK,
00:22:48.189 --> 00:22:49.562
which is gonna be awesome.
00:22:49.562 --> 00:22:51.150
>> Right.
>> So all right, cool.
00:22:51.150 --> 00:22:51.920
Thanks for coming.
00:22:51.920 --> 00:22:54.051
Hey everybody,
thanks for watching and
00:22:54.051 --> 00:22:55.434
we'll see you next time.
00:22:55.434 --> 00:23:05.264
[MUSIC]