
Identity with Christos Matskas
Durée: 70m2s
Date de sortie: 20/12/2020
In this last episode of the year, I was joined by Christos Matskas to talk all about Identity! Christos is the Program Manager for the Microsoft Identity Platform, so obviously the conversation was slightly biased towards AzureAD and B2C as an identity provider - but we also tried to cover some common identity topics, and demystify terminology such as OAuth, OpenID Connect, scopes, claims, and more! We even went a bit off-piste at the end and chatted about public speaking, languages (not prog...
Hey everyone, welcome to the Unhandled Exception podcast. This is show number 8 and today's
episode is all about identity. And I am thrilled to be joined by Christos Mascas, programme manager
for the Microsoft Identity team. And according to his about page on his website, his goal in life
is to become greater to his job, be an excellent husband and father and also to be a geeky geek.
So a huge massive welcome to the show Christos and I'm really curious, what is a geeky geek?
The geek to rule all geeks I suppose, I don't know. I spend most of my time writing code and having fun
and tinkering with software and hardware. So I suppose that this makes me geek.
It's a great term, I'm going to start using it I think.
Yeah, it can be more geek than a geek. I used to say that geeks will inherit the earth and apparently
these days, having a CS degree or knowing how to deal with programming is a very important thing
or programming, IT pros, security networks, whatever. It's all interesting, at least in my head.
I don't know if you remember but we very first met
at one of the DDD conferences quite a few years ago now. I think you were doing a talk on Azure functions.
God, so that must have been 2016 or 2017.
I seem to remember it being a guac talk.
I mean, I would grab any opportunity to talk about staff. So, you know, I would drive all the way
down to, you know, the south of England just to get the opportunity to talk about the stuff I was
passionate about. So, I would not be surprised if I drove all the way down there for 15 minutes.
I remember being a definitely good talk and then you've done a few
Donald Oxford talks as well, like joining us at Donald Oxford.
One in person when you lived in the UK and then I think two months ago you did one virtually
on fun enough identity.
Yeah, fun enough about identity but back in my, when I was back in the UK, one of the last roles
I had was working as a PFE for Microsoft and that meant I would go around customers and
help them with problems and solve issues.
So, if I was around the area, I would ping one of the meetup organisers and ask whether they wanted
to do a session because I would be all the way, let's say I was near London or near Oxford,
I would ping somebody that has a dotnet meetup or a cloud meetup and say, yeah, I'll be seeing
a customer in the morning, do you fancy doing a talk in the afternoon if the time and the schedule
fits because I'm already there and I'm not flying home, I might as well meet new people and
spread the law.
There you go.
How are you finding it now, everything's virtual?
I think, I don't mind. Obviously, it's a lot more challenging to have an engaging session,
especially since you can't see everybody else in the room.
So, if you say something that flies over their head or it's difficult to comprehend,
it's very hard to get that kind of reaction and then maybe reiterate on the subject.
Also, you can ask questions like, how many of you here have done this and wait for a number of
raised hands?
Obviously, the chat works, but not everyone engages in the chat as well.
And then, the other challenge for the speaker, obviously, is keeping everybody engaged.
And I know that I'm not one of the most gifted speakers, so it always adds pressure to make sure
that you deliver something and that people stay there for 45 minutes.
And I also find that people have had Zoom saturation or team saturation or whatever
other software organisers are using.
So, people can't really stay as focused as in the older days where you were in person.
But, on the other hand, it's super positive because I've done speaks with Singapore,
Australia, you guys in the UK, all over the world without me having to leave the comfort of my
office.
So, I find that the opportunities are greater because we can deliver to you a lot wider audience.
At the same time, the challenge is that everyone is online now and attention spans
are hard to maintain.
Yeah, definitely.
I think, especially when people have been at the computers all day long working from home
and then, it gets to the end of the day and then staying on the computer to attend these events.
Also, with the computers, it's very hard to divert your attention to something else.
So, an email has arrived or I just remember I need to copy something.
So, you divert your attention from the session to something else.
If you're in the room, it's very rare that you'll get people playing on the laptops
while you're doing a session.
Although, that's not a heard off and I've done conference talks where half the audience
were just typing on a computer.
Hoping that they're doing what you're doing on stage, but they could be answering emails
for work.
Pros and cons, I suppose, do everything.
Yeah, definitely.
So, we're going to talk about identity today and obviously, we're going to talk about
Microsoft Identity Platform as part of this episode.
But I'm also really keen on spending a bit of time on just demystifying identity in general.
Yes.
There's lots of terms floating around.
I think a lot of devs don't really understand like OAuth, OpenID Connect, Scopes, Claims, Jot,
or JWT tokens, ID tokens, Access tokens, Refresh tokens, and lots more.
So, I don't know how we're going to cover...
Where did you start?
Exactly, how we're going to cover all of this in one episode.
But if we can actually just...
Well, maybe we just start with what identity is in the first place.
Yeah, these days, identity hasn't changed, to be honest.
Identities explain who I am or what I can do in the system.
And in the past, it was very different because everybody was in the LAN,
everybody was in their own network.
There was no cloud.
So, you would go into the office, turn on your PC, and then you were automatically
domain joined, you were already signed in, everybody knew who you were.
And for developers writing applications, it was just as simple as doing a call
to work out who the currently user is signed in.
So, that was simple, back in the good old days of LANs and internets.
But now, with things moving to the cloud, now with the web,
the proliferation of the web, online shopping, and what have you,
we need to have a way to identify who the user is when they come into our system.
And unless you're writing a marketing site that just has information that you don't
really interact with, everything else that you use today has to have
some kind of a notion of identity, whether it's a line of business app
that you're using from your VPN at home, whether it's shopping with Costco,
Chefway, House of Fraser, whatever you want to buy online,
you need to have a profile that explains who you are,
and also retain some profile information so that the retailer can dispatch your goods
and they can interact with you and provide a customized experience.
So, identity is everywhere.
You can't really interact with anything on the web without having an identity.
And that's where we start.
We need to find a way to validate that you are who you say you are,
like a driver's license when you're presented,
you need to present some identity in physical form.
Online, obviously, there's a much bigger challenge
because you need to have a way to prove who you say you are.
And the only way to do that is for both parties, me,
the user, and you, the owner of the software, whatever it is,
you need to have a common kind of a source of information
that is the actual truth.
With physical identities, you trust the government to issue a passport,
you use that passport, and both parties accept that the government is right
in this instance.
With online, we use identity providers that we trust,
and we hope that they provide the right information,
whether that's Microsoft or some other vendor.
The assumption there is that because we're both using the same system,
I trust that you are who you say you are, and off we go.
So, that's the new format of online identities.
We have a common backend system that verifies to both parties
that I am who you say you are,
and you are the site I'm supposed to be using,
and we take it from there.
I guess you've also got the not just you are who you say you are,
but once we've verified that, what is that person allowed to do?
Correct.
Authentication and authorization.
So, authentication is where I prove that I am who I say I am,
and then based on information, you can define what I can do in your system.
Usually, that's down to the identity provider
or the person that manages the identity system
to provide the right permissions to me.
So, if I am a user buying something from Costco,
then the only thing I can do is buy stuff and edit my profile,
but if I log in as an admin, then I might also have access.
So, if I am a Costco user, but also a Costco admin,
I might have a different way to sign in
in order to be able to edit settings inside the system.
So, that is all dependent on how you configure your authorization
within your app, and there are different ways to do that.
Yeah, I guess, what you mentioned about identity provider as well.
I think this was something in our notes,
we were going to cover a bit later on,
but that probably leads nicely on to the concept of,
I know, back in the olden days,
you'd store username and password in your own database
and you'd do it all yourself, DIY.
But then, nowadays, that's not recommended, I don't think.
I mean, there's nothing wrong in using a super secure system
to store that information.
Unfortunately, the challenge there is knowing what you're doing.
There's a whole lot of RFCs and documentation
and libraries that you need to be aware of
in order to be able to implement a super robust system.
And since it's so complicated,
most of the developers that try to roll their own
authentication system, I'm one of them,
screwed up some way.
And it's not just a simple,
I'm going to store a username and a password.
It's also all the things that come around that identity
and how you manage it.
Things like multi-factor authentication,
things like conditional access,
things like how do I protect my website from brute force attacks,
how do I protect my website from DDOS,
how do I protect my website from rainbow attacks
against my database if that ever gets hacked.
So as a developer, you don't only have to think about
just a simple UI of username and password,
it's password reset, it's, you know,
how do I edit my profile,
and it creates a whole heap of work.
If you ever had to do it yourself,
you'll know that it is super involved.
You need a number of services like email and SMS.
You need a way to validate that nobody has actually hacked
that URL they sent to an email
to try to obtain access to another profile.
So it starts very simple
and then it becomes very, very complex.
Incremental back off.
So, you know, people don't really try to brute force passwords
because they went into Troy Hunt's database
and found all these emails that they can export, right?
And because people,
they like to use the same habits over and over again,
they fall into the fallacy of using the same passwords.
And hopefully everyone is using password managers these days,
but since they're not,
it's easy for a dump from another hack
to be reused and try to do attacks
against Facebook and Twitter profiles.
So, there's nothing wrong in implementing
your own identity system
if you know what you're doing.
But if you don't have to,
if you don't know what you're doing,
then we do provide you things out of the box.
And we do provide,
I mean, the market has solutions for you.
The other thing that you don't have to think about
if you're using a delegated authentication provider,
like Azure AD,
is the fact that you don't have to worry about scalability,
right?
You implement the solution once
and then you don't have to worry
about where my database is going to end up.
How is it going to grow with my users?
Imagine you have a super successful business,
you start with 10 users,
and suddenly within a month,
you become viral.
Everybody's coming to your site,
so now you have 1 million users
that you have to manage.
That database is to grow,
and you have to manage it and back it up
and make sure that it doesn't get compromised or whatever.
And assuming that everything is secure,
you still have to worry about scalability.
With Azure AD,
we do 30 billion authentications a day.
That's an insane amount of authentication
that you never have to think about as a developer.
I had to check with marketing
because I was not quite sure
that the number was right.
I was like, are you sure it's not like 3 billion
or maybe 3 million or million?
And they were like, yeah, that's 30 billion.
That's the marketing information
that you can provide publicly.
I was like, wow, that is insane,
even for me working at identity.
So there you have it.
Do not roll your own authentication
unless you really, really know what you're doing.
And we have 1500 engineers working day in, day out
to make sure that you don't have to do it yourself.
That is crazy.
I'm going back to about DIY
and you mentioned about a password reset page.
And you also mentioned about Troy Hunt.
I can't remember whether it was a blog post he wrote
or a play all site course he did.
Years ago, I remember reading something
where he was talking about
all the things you can get wrong
in just a password reset page.
And I've just won Element.
And there was a lot of stuff to think about
in just that one side.
So when you add all the things you spoke about,
you just don't want to do it yourself.
No, it takes days, days, weeks.
And that's assuming that you know what OpenID connect
and all what two are
and how to handle tokens,
how to encrypt them,
how to sign them,
how to create HMAX and whatever.
And it's a lot of complex work.
And to be honest, nobody finds that
an exciting type of work.
Like, as a developer,
you're presented with 10 tasks up front
and identity is one of these tasks.
You don't want to be spending
three weeks trying to implement that.
Right. You want to be damp one library,
delegate that to somebody else
and then move on to the other tasks.
Especially when security comes into play.
Because once you get hacked,
then it's very, very hard to gain customer trust again.
I think another advantage,
which I've just discovered recently,
for one of the projects I'm working on,
I started to look at GEDPR.
Mm-hmm.
And I realised that because we're using
an identity provider,
a managed identity provider,
that we're actually not storing
any personal data whatsoever
in the database that I'm working with
that we're building.
It's all just delegated off.
So actually,
I don't need to worry about GEDPR
from my project really.
It's just all handed off.
Correct.
Yeah.
And obviously it depends on the solution.
But in BTC, for example,
you can also define your custom fields
that you can store.
So it doesn't mean that you're not,
you don't have to worry about GEDPR.
It just means that inside your own databases,
you don't have to worry about that information.
And for people to try to understand why and how,
it's the same as doing delegated customer payments.
So you use a payment gateway
to process the payment for you
when somebody buys something off you.
So you don't have to start the credit card information.
So if you ever get hacked,
all the information they get is like
a Gouid code
appoints to some transaction
to happen in the payment provider.
And it's exactly the same for authentication.
You just get some token information
and a Gouid that matches your,
you know, the user ID.
And you never ever have to worry
about storing that information.
Nice.
You did mention about understanding
our authentication open ID connect.
And shall we delve in
and roll off the leaves up?
And by our, I mean,
like yours, I mean, obviously.
But...
Sure.
Yeah, let's, let's, let's delve into protocols
because everyone is super excited
about protocols.
We, we,
and to be honest,
I don't really have too much
in-depth knowledge
about how these protocols work
because again, I delegate that
to my engineering team
to worry about these things.
But at the very high level,
OAuth 2 is a protocol
that allows you to securely exchange
tokens, right?
Access tokens.
So it says,
this system can access
this resource at the back end.
And that's described in a
in a JSON web token
or JOT or JWT.
My, my partner crime JP
always gets triggered
when I say JOT
because he's like,
there's no O
in the JWT,
but in the RFC,
they also say
you can pronounce it as JOT.
So if I want to trigger him
any point,
at any point,
I'll just throw that word.
So JWT tokens.
So OAuth 2 defines the protocols
or the sequence of exchanges
between the identity provider
and two systems
or multiple systems
that need to exchange tokens.
So I know that if I have a front end
single page application
that needs to access an API,
then I can pass an access token
and both parties
know what that is.
And then at the back of that,
if that API needs to access
other sources,
then we may need to acquire
on behalf of the user
another token
and then do those calls.
So there's a whole flow of OAuth 2.
The problem with OAuth 2
was that it had no way to
validate the user.
It could also only say
what you can do with the system.
It couldn't say who you were.
So OpenID Connect
is an extension of OAuth 2
which built on top of OAuth 2
is the next iteration
and allows us to acquire
ID tokens
and ID tokens
are what developers are looking at
when they try to validate
who you are.
So every application
at the very minimum
will have an ID token.
So the user signs in,
the identity provider
speech out an OpenID Connect token.
You get that token
and now I know who you are
and you know who I am
and you can look at that token
and do the necessary.
Next is the OAuth 2
obviously we also may acquire
that's not necessary
if it's just a static website
that doesn't do anything else
that's fine
but if you need to access other resources
now you need to go and get your access tokens.
So you go and grab your access token
via OAuth 2
and then that access token
has some information
like what the audience will be
what the other API
or endpoints need to be there.
I need to speak to you
and what my permissions are
and based on that
you as a developer
have to pass the access token
downstream to whatever API.
Somebody said upstream
I don't know why
it's downstream upstream
both the same right?
You pass that token to somebody else
and then that somebody else
is responsible for verifying the token
validating that it's for the right audience
and other information
like has it expired
is it still valid
can I use it
and then based on that
you can again do the necessary
that's probably an API
or some other resource.
So there you have it
OAuth is the protocol responsible for
acquiring and managing
and passing access tokens.
OpenID Connect
provides a way for you to
understand what ID tokens are.
So I hope that explains it.
I think it was actually me
that mentioned about the upstream
versus downstream.
Were you there now?
I remember somebody mention
that when I was doing a dot
in a chord then
at some point
which actually has a
there's an API
call that
just enabled downstream API calls
and you're like
but should be upstream.
I'm like it doesn't matter.
It's another API thing you need to call.
Well I was curious
and I actually put a Twitter poll out
just to see what people
what people
not about that thing in particular
but about what people refer to as upstream
and what people refer to as downstream
and it was 50-50
and lots of people were saying
it's upstream for this reason
and downstream for this reason
and it was kind of like
so there's no correct answer
it doesn't sound.
I'll definitely I'll include a link
to that in the show notes
but it was quite an interesting thread
and lots of people voted and replied
with different reasons.
It's really interesting.
What are the chances though?
It was two months ago
at Donner Doctored
when you did the identity talk.
It was, yes.
When I was demoing that
and you were like
no, it should be called upstream.
Like fine.
I can go back to the product team
and ask them why they decided that.
It's similar to a poll I did
for services and demons
because some people call
the headless applications
are running as jobs somewhere.
Demons were other people
called them services
and we were really
polarised with the team as well
what should be called.
It was almost 50-50
so there you have it.
Nice, nice.
So with the Oalthan Openology Connect
so I'm all right that this is
all relates to the redirect
you get when you're redirected
to your identity provider
then you get your login page
tapping username and password
not on your website
on your B2C
Azure AD website
or Oalth Zero
or whatever provider you use
and then
as part of that flow
you get redirected back
and that redirect is a worth
and then Open ID Connect
just adds the concept of
knowing who you are.
Yeah, yeah.
So obviously when you do the signage
of Open ID Connect
so just to explain
how this thing works
people come to your website
they say I want to login
and at that point
they get redirected
to the identity provider
and the identity provider
will take the username and password
will validate that it's correct
will authenticate you
and at the end it will spit out
an ID token
which is part of the OIDC
RFC
and that information
lands back into your website
or your front-end solution
whatever it is a mobile app
for example
and then there are libraries there
that will do the
validation verification
maybe caching if they need to
and you're done.
The nice thing about this is
that in the old days
you would have to take the username
and the password
do a call to your own database
validate that they're correct
do some compaction
and then return back that information
but you had to store the information
now it's all done outside your website
so you don't have to worry about PII
in response you just get back a token
it's a JSON web token
that only has some like basic explanation
about where it came from
who it was signed from
so you know they came from azuread
or whatever other provider
and then what your information is
what did you ask inside the
token to be included
at minimum there'll be an email
and your user ID
the app ID
the tenant
like where it came from
from azuread which tenant came from
and what have you
and with openID connect
you get an ID token
and an access token
well it's part of the flow right
so if the configuration is
I want to sign in the user
and also acquire an access token
so I can later call
you know a downstream API
then that's part of the same flow
you don't have to worry about
how it gets implemented behind the scenes
yeah so let's talk about refresh tokens
because I think that's something
that you asked before
so refresh tokens are
part of the whole flow
they're fairly transparent to developers
if they use the right library
so unless you're rolling out
your own OIDC library
openID connect library
then refresh tokens
are handling everything for you
and what happens is
tokens are issued with a specific
expired time expired date
and your library will be checking
for that every time
they need to do a call
at some point it will expire
and it will either prompt the user
to go and authenticate again
or it will issue a refresh token
and will try to acquire a new access token for you
so it does happen behind the scenes
you don't really have to code for it
there are some cases
where you might want to
tap into that information
there are cases
where you might want to
fiddle with the expired times
so you might want to have a very short
expired time
because you want your system
to be super secure
and always prompt the user
let's say your HR site
needs to have some very tight
or your bank may say
you know what after 5 minutes
boot out the user
because you want to expire them
and force them to authenticate
refresh tokens are also
things that you don't see
when you use things like Outlook
or Mobile Apps
or you know Teams
where you sign in once
and then behind the scenes
it just goes and gets a new token for you
so you don't have to log in all the time
it's about user experience
so it's very rare
that I will have to like
I can't even remember logging into my Outlook on the phone
I did it once and then I've never had to do it again
periodically although you know
I can't remember the last time I signed in
but the other day
I got a new prompt for a login
so that meant that
I reached the end of my refresh period
and I was prompted to sign in again
which is good
periodically to prompt the users
one of the challenges with
token lifetime
is what happens if the user
is booted out of the organization
let's say they're part of the Azure AD tenant
and suddenly you know you go to the office
something horrible happens
you get fired
but you're still signing to all your things
and you still have access from home
one of the challenges there is
how do we force these people out of the system
because imagine
you left the company
but you still have access to the HR side
because you still signed in or whatever
so one of the things that we are looking
as part of the identity provider system
that we have or platform
is token lifetime
and how we can do continuous evaluation
of that
so if you're not an Azure AD member anymore
we should expire all your tokens automatically
right now you have to code for it
or you have to implement your own logic
so that's one of the things
other things that tokens
have challenges with
is proof of possession
how do you prove that
you are who you say you are
when you present the token
like if I come into your machine
and still all your tokens
and then start passing them around
what happens then
so that's another thing that we're working
to continuously add
and I think there's some work on the pipeline
but as a developer
you know the bottom line is
I don't want you to know about these things
it's nice to know about the things
that they exist right
there's a refresh token that takes place
so once my access token expires
I'll get another one
or my users will get another one
but as a developer
you don't really want to think about
what's happening with caching
what's happening with refresh
what happens when things expire
and if you're using the right libraries
whether community libraries
or our own libraries
then it becomes a lot easier
you know you just implement the code
and it's there for you to work
out of the box
nice
I think it's always nice to get a bit of an
understanding about these common terms
maybe not like the underlying implementation
but just like things like the workflows
because even with B2C
when you go in and you can figure the workflows
you're still like using some of this terminology
so just having a basic understanding
yes correct
you mentioned about if someone leaves a company
that's what I thought refresh tokens were for
so that the access tokens were short lived
and the refresh token had to go back
to the identity provider
they are but the minimum is like an hour
so it's not for days and days
although you can configure and change the lifetime
but even within that hour
and then I have one more hour
to access all the systems I want
so that's a challenge
like that hour window
how do we deal with that
I see
I see
cool so this actually didn't take as long as I thought
to cover all these
I think we've covered like most of these topics
shall we jump into
Microsoft identity platform then
sure yeah
I'm biased obviously so
I thought you might be
this is what I use day in day out
but you know Microsoft identity
the identity platform comes
in two basic flavors
there are lots of
like other scenarios
that you might look into
but as a developer
when you come in there's a decision tree
that you have to make
and that tree is basically
two branches at the very top
one is I want to authenticate users
for my line of business apps
my organizational users
at Contoso
at whatever company I work for
at Microsoft
this is a Azure AD issue
so Azure Active Directory
where I go
if you are building anything
that needs to bring external users
like a forum
where you want people to register
and manage their profile
a mobile game
a mobile app
website that sells things
let's say
Costco needs to
give away for people to go and register
buy stuff and then check out
this is where BTC comes into play
so business to consumer
or business to customer
whatever you want to call it
allows people to
or developers to implement
at the very basic form
a username and password database
where people sign in
with their username and password
that can be their phone
that can be their email
and then a password
that they decide to use
and it comes with all the
beautiness of multifactor authentication
out of the box
so you don't have to implement that
it comes with conditional access
so I might say you know what
I only want to operate in Australia
or I might want to only operate
in the UK because of GDPR requirements
you can actually enforce that
and BTC also allows you
to bring external identities
so if you want to enable your users
to maybe sign in with their Facebook account
or the Google account
it provides that capability
we have pre baked ones
so you can configure them
out of the box
but you can also bring any other
open ID connect
compliant endpoint
we had somebody building a
tweets
tweets social media
kind of a platform
and he wanted their
the users to sign in with their tweets account
so they didn't have to
you know create a new account
or something else
they're already on tweets
why not
et c'était aussi simple
de trouver la tweet
open ID connect endpoints
ajouté à BTC
et off you go
BTC délégat tout ça
donc c'est un endpoint
les usages ont sélectionné
comment signer
et puis ça
retient un token ID
donc c'est
vous savez
tout le complexe est
dans BTC
votre application
doit changer la code
ou ajouter différents providers
comme vous avez créé l'application
pouvez-vous aussi connect
BTC
à un autre provider d'identité
par exemple
ou 0
vous pouvez
si vous êtes construit
comme
une plateforme
où vous avez besoin de
soutenir plusieurs tenants
et
vous avez besoin de soutenir
plusieurs providers d'identité
pouvez-vous utiliser ça
pour les mettre ensemble
oui
si vous parlez de
multitenance
alors c'est aussi possible
via BTC ou Azure AD
donc c'est un autre point
que vous pouvez considérer
mais
n'importe quel point
qui a un point de connect
et c'est discoverable
via un point public
c'est un jeu très fort pour BTC
nous avons aussi des scenarios
où BTC
était aussi utilisé
en front end
à Azure AD
où
ils voulaient provider
une flexibilité
où BTC
a été le point de fin
pour tout
et puis ils avaient
des utilisateurs
qui ont été étendus
contre Azure AD
et puis autres utilisateurs
qui vont sur le compte social
de la médias
il y a des très complexes
scenarios
que nous avons vu
les gens faire
juste parce que
vous pouvez le faire
ça ne veut pas que vous le faites
mais
oui
avec un grand power
qui arrive
une grande responsabilité
donc
vous pouvez vraiment les screw-up
ou créer
des très complexes scenarios
et nous avons des customisations
qui ont besoin
d'une très grande customisation
mais
vous commencez avec des très basiques
et puis vous vous buildz
sur le dessus
vous n'avez pas besoin
de tout ce complexité
derrière les scènes
Cool
et BTC
c'est sa propre ténète
n'est-ce pas?
Je suis bien avec ça?
Oui c'est
les ténètes
c'est quoi un ténète?
c'est l'une des terminologies
qui vraiment les gens
sont screw-up
donc
un ténète est un nom de main
qui
s'obtient
à un set de données
donc
vous avez
vous pouvez avoir plusieurs ténètes
Azure AD
vous pouvez avoir plusieurs BTC ténètes
la
la complexité qui arrive
dans la confusion
qui usually
arrive
est quand vous êtes
dans Azure AD
ou
ou pardon
dans Azure
le portail
et vous dites
je veux aller à mon BTC ténètes
ou je veux demander
à mon BTC
vous savez
ressource
et puis vous vous pliez
à une nouvelle page
et c'est un ténètes
on est en fait activement
travaillé sur cette expérience
maintenant
parce que nous sommes en train de sentir
que
il me dérange
beaucoup de gens
en
comme
pourquoi
comment ai-je enduré ici
et
comment vais-je retourner
mais
vous êtes bon
à la BTC
c'est un ténète différent
tout différent
de votre Azure AD
par exemple
et il y a des différents
des noms d'autorité
donc vous devez travailler
sur les endpoints
qui sont comme ça
dans votre code
mais ils sont tous
très bien documentés
mais j'ai l'agré
que
cette sorte de ténétrie
la terminologie
est
quelque chose qui est
très
géométrique
d'identifier les providers
et
tenter de les mettre en place
donc
j'ai l'amuse
pour que tout le monde
soit écouté
sur
comment nous avons évoqué
la tendance
et les choses
mais nous travaillons
activement
pour
prendre vos réponses
et simplifier les choses
oui
je pense que
c'était un truc
qui a initialement confié
moi
quand j'ai commencé
à utiliser la BTC
comme vous le dites
c'est comme
pourquoi j'ai évoqué
tout de suite
dans un autre portal
comment je vais retourner
mais ensuite
j'ai l'understand
et j'ai commencé à penser
sur un
separate login
c'est un separate database
comme ça
la BTC
c'est juste un database de utilisateurs
et dans ma subscription
c'est pas un service
comme un web app
ou un VM
c'est un peu différent
je pense que initialement
j'étais essayant de penser
sur
quelque chose qui peut se tromper
comme vous pourrez tromper
un VM
ou un Key Vault ou quelque chose
mais c'est pas le même
c'est pas
c'est pas
alors il y a un débat
interne
et
beaucoup de customers
se disent
pourquoi je ne peux pas
tromper
la BTC
en armes
ou la Terraform
ou tout
et c'est aussi
quelque chose que nous travaillons
en
en approchant
l'automation
de la tendance
et de pouvoir
vous savez
vous avez une compagnie
de pouvoir tester
et déployer
des choses
et automater les choses
donc
nous nous restons
pendant que nous nous fixons
tous ces jours
et nous sommes activement
en train de l'opinion
à quelqu'un qui a
de la suite
de la grande
des customers
aux petits
les développeurs
les petits
même
les développeurs
qui sont utilisés
dans le système
et qui ne veulent pas
utiliser le système
nous prenons
toute cette suite
et nous prioritons
selon le show
2021
on va probablement
voir beaucoup de change
dans ce espace
il y a un effort collectif
across multiple divisions
dans Microsoft
pour
improving
l'expérience d'identité
encore plus
bien
je sais
une chose que tu as mentionnée
je pense que tu parles
de
quand tu parles de Donald Oxford
c'est de
bouger dans les libraries
maintenant
je sais qu'on a
l'ancien
édale
library
d'AmSyle
mais il y a un nouveau
en parlant de les improvements
il y a un nouveau
Microsoft Identity Web
Libre qui
c'est ça
c'est ça
c'est ça
c'est super simple
une ligne apparaît
je ne l'ai pas pensée
c'est ça
c'est comme une ligne
et tu peux faire
n'importe quelle
une ligne
et des settings configs
évidemment
c'est une ligne
pour commencer
mais
généralement
ce n'est pas si simple
je veux dire
ça pourrait être
comme si tu crées
un site très simple
qui juste signifie
des utilisateurs
et puis tu
tu vas faire sure
que ces utilisateurs
ont accès
aux points de l'application
de l'application
mais
généralement
il y a un peu plus
involvement
dans ça
comme en tentant
de mettre
dans les vans de connecté
et tu devrais déjà
avoir un système
qui fait
ce truc
donc tu devrais
réplicer cette information
qui est totalement disponible
pour toi
mais si tu commences
maintenant
si tu es dans dot.nacore 3.1
et plus tard
alors
Microsoft Identity Web
a simplifié les choses
et
je vais prendre
deux minutes
peut-être pour expliquer pourquoi
donc maintenant
si tu es construit
un app ASP.net
quand tu authentiques
il y a une chose
qui s'appelle
l'app ASP.net Identity
système
où
tu vas
tu vas
aller à Visual Studio
tu dirais
un projet de file
un projet de web
et puis tu dirais
tu veux une authentication
oui, je veux une authentication
donc tu cliques
ça
il vous présente
avec les settings
d'azuré
tu configures
eux
et d'ailleurs
ta authentication
est
est fermée
et tout est en train
parfait
et maintenant tu veux
accéder à mon API
ouai
comment j'ai les tokens pour ça
mes utilisateurs sont authentiqués
mais je n'ai pas de
accès
au
le libre nécessaire
donc je dois download
mcell
le libre de l'authentication de Microsoft
wirez ça
et puis
aller
et accéder à mon token
et j'ai mes tokens
et ça a été un pain
parce que
mais j'ai déjà authentiqué le utilisateur
pourquoi je n'ai besoin d'un autre libre
maintenant pour aller et j'ai mes tokens
donc c'était très confusé
donc ce que nous avons fait
c'est
travailler
nous avons travaillé sur un projet
pour simplifier ça
et unifier ça
donc maintenant tu as le Microsoft
d'adenture web
qui est construit sur le top de mcell
donc tu prends une dépendance
sur mcell
et tu le dis à l'avant
quand tu fais un projet de file
avec l'authentication
ou tu as un .NET CLI
.NET New
DASDAS
ou
ou quoi-même
et le point est que
quand tu authentiques
tu authentiques contre Azure AD
mais tu peux maintenant
acheter des tokens
pour accéder aux API
tu n'as pas besoin d'adapter un autre libre
nous faisons
la configuration en milieu
pour toi à l'avant
et ça vous fait vous faire
de ne pas avoir à ne pas se inquiéir
de comment je implemente
mes tokens management
mes tokens de cash
mes acquisitions de tokens
des consignes incrementales
et quoi que tu as
donc oui
c'est un ligne
pour faire tout ça
et peut-être deux ou trois lignes
de faire tout autre
mais c'est un peu plus
plus simplifié
que l'histoire de l'an
que nous avons
et ça a bien sûr
l'imprisonné
comme il est dans le cadre
de toutes les complexes
qui sont derrière
les détails d'implementation
donc j'adore cet effort
et j'espère que vous allez voir
ce qui vient
dans les autres langues
comme note et JavaScript
et Java
tout le monde
que nous avons vu
ça aussi
et qui est super excité
ils veulent voir ça
et impliquer ça
donc si tu as des réponses
comme si tu dis
que j'aimerais voir ça
en Python ou Go ou Ruby
pour ma solution
alors laissez nous voir
parce que c'est ce que nous sommes ici pour
mais c'est été un grand step
pour déambiguer
les complexes d'identité
dans le net.net
ça peut aussi inclure
si tu fais serveur-serveur
authentication
aussi
oui
pardon
maxof.net.web est seulement
pour les solutions de la net.net
pour tout autre
tu dois utiliser
AIMSEL
donc si tu as un service
techniquement
il n'y a pas d'interaction
là donc tu peux vraiment
utiliser maxof.net.web
parce que c'est .web
mais download AIMSEL
et c'est
littéralement
6 ou 7 lines de code
pour créer une confiance de clients
et puis authentiquer
le système local
et puis il peut être
comme si c'est un service
démon
ou un service
tu peux utiliser un certificat
donc tu n'as pas besoin de secrets clients
stored dans votre application
on veut éliminer
le besoin pour secrets
comme avec les 4
anglais et single page apps
où nous avons évoqué
d'une flow implique
qui a besoin
d'une idée cliente
et de la secret client
pour utiliser
l'autorisation de flow avec
Pixie
donc maintenant
tu signes
il y a un changement de clé
qui se passe entre ton solution
et l'identité de l'adenture
et tu n'as pas besoin de
de secrets
c'est un grand step
pour plus de secours
est-ce que l'imposé
doit aller de toute façon
avec les browsers
pour soutenir
les 3rd party cookies
nous encourageons les gens
de bouger avec Pixie
en tant que
ça complique
les choses
mais je dirais
si tu peux bouger
ton application
pour
utiliser Pixie
c'est la façon de le faire
si tu utilises McellJS
qui était
la v1
qui a été implique
l'upgrade
pour v2
est simile
donc tu n'as pas besoin de
réévaluer
ça fonctionne de la box
tu peux juste prendre le secret client
de ta configuration
et tout le monde y va
super bien
je pense que ça peut changer maintenant
mais
quand nous faisons
un peu de service
pour servir
de choses
nous utilisons B2C
pour
l'utilisation d'utilisation d'actualité
mais
pour le service
nous utilisons Azure AD
et
nous avons des services .NET
et des services Node
et pour les services Node
je pense que je dois remercier
de retourner
à la library Aidal
parce que Mcell
n'a pas supporté ça
je ne sais pas
si ça a changé
ça change
en fait
nous avons un preview public
de Node.js Mcell
donc si tu es en train de construire
les apps de Node
nous nous providerons
avec l'obligation de
construire les apps Electron
ou les apps Node
en utilisant Mcell
et
encore
cette consistance de libraries
parmi le whole ecosystem
signifie que
le code que tu as écrit
peut rester
comme les patterns que tu as
pour
Write in the code
entre .NET et Node
peuvent être très très consistants
Right
et
ça est fantastique pour l'audience
donc
la Node
devrait arriver
à la preview public
bientôt
mais tu peux utiliser
aujourd'hui
tu peux donner des messages
sur GitHub
si tu cherches
pour Mcell.js Node
le code que tu as landé
a l'annoncement
sur le top
c'est
Node
version
avec samples
et code
et documentation
donc c'est plein
une des choses
que tu as mentionné
tu as utilisé Azure AD
derrière les services
pour services
sont-ils les services
sur Azure ?
oui
et Kubernetes
dans Azure
dans Azure
certains sont
des des
mais
on est
en fait
enregistrés
les arbitrains
et
ce qui est probable
quelque chose qu'on devrait parler
et puis
oui
donc on enregistre
les clients
et le service
en séparation
et ensuite
les contrôles
et
juste
juste en utilisant
pour
dire à l'un ou l'autre
donc
le plus important que je veux
parler
c'est que ce n'est pas
très
très avantageable
ou
comme bien avantageable
sur le maximum de la plateforme d'identie
c'est
toutes les autres choses
que tu peux faire
avec le maximum de la plateforme d'identie
comme
un
service pour service
communication
dans Azure
un développement de sécurité
sur le local machine
des choses comme
l'identie de manoeuvre
et le principe de service
que je vous permets de créer
des
très spécifiques
des accounts
scopes
que tu peux utiliser
des accounts de service
pour
permettre les services
de communiquer avec l'autre
en quelques cas
les choses combinées
comme
le volume de la porte
aussi signifie
que ça éliminera
le besoin de
secrets ou
des clés
ou quelque chose d'autre
dans ton application
parce que
c'est tout
securité
par
le maximum de la plateforme d'identie
et tout il faut
faire
comme un développeur
c'est
utiliser les libraires
pour
aller et pour
ces secrets
de
soit
votre
le système de manoeuvre
local
si
je dois parler
de mon service de secret
ou si je dois
prendre un secret
que je dois vraiment
utiliser
comme
un API
pour un
weather
tu fais un appel
pour un API
qui vous donne
des informations de weather
c'est external
pour toi
tu n'as pas de clés
comment tu storing
votre clés sécurité
tu stored dans le clé
et puis tu utilises
l'identie de manoeuvre
pour aller et prendre
ce secret
en temps réel
et puis passer
à quoi tu fais
donc ta solution
comme développeur
est plus secure
comme une compagnie
tu n'as pas à ne pas
ne pas
pas passer
ces secrets
tu n'as pas de
contrôle de source
ces secrets
peuvent être tournés
par votre admins de l'IT
sans toi
comme développeur
tu ne t'es pas mal
ce qui va
arriver
donc c'est
c'est une bonne solution
et aussi la histoire de dévop
qui est
vous savez
nous avons fait une session
de .NET Conf
cette année
pour quand nous annoncons
.NET 5
nous sommes partage
des sessions de conférence
et
nous avons aimé
construire la histoire
nous avons eu un
identité de manoeuvre
de principaux de service
avec terraform
avec des templates armes
avec le clé
nous avons eu
une identité de manoeuvre
en train de tourner
au-delà de Azure
en utilisant Azure Arc
donc si tu joins ton
device
ton PC maintenant
ou ton serveur
dans Azure Arc
il ressemble
à un VR Azure
et ça automatique
donne l'identité de manoeuvre
dont tu peux utiliser
de services de roues
sans avoir de secrets
et ce VR
peut vivre sur AWS
ou votre propre prime
mais
d'un perspective Azure
d'un perspective de Microsoft
d'identité
ça toujours
s'est fait comme un
joint de main
device
et tu peux tout le bonheur
donc il y a beaucoup
je peux probablement
faire 3 jours de
épisodes
sur tous ces
incroyables choses
qu'ils peuvent faire
avec la plateforme
mais
le fait que ils les ont tous
pour freiner
comme développeur
juste en utilisant
un couple de libraries
ou vos propres libraries
donc on n'a pas besoin de nos libraries
roues
comme tu veux
ou camas
comme tu es
comme nous le disons
dans notre vie
donc comment
le plateforme
sait que
un service est qui ils disent
qu'ils sont
présument
il y a un peu
de cryptographie
qui
qui assure
que un réquest
peut seulement
venir de
cette single host machine
oui
il y a un peu de
que tu dis
donc si tu parles
d'Azure Arc
il y a un agent
que tu installes
sur cette machine
cet agent est
explicitement
décliné par Azure AD
pour être
ce que c'est supposed
pour être
et puis il a
tu sais
tout le cryptographie
qui se passe
derrière cette machine
donc tu roules
un simple script
qu'est-ce que c'est un Linux
ou un machine Windows
et il le permet
d'attacher
à la domaine
et puis
il vous permet
de vous
une capacité similaire
comme un point public
qu'ils peuvent
faire pour
avoir information
sur le device
ou
ou pardon
ce n'est pas un point public
qui est un point public
ou un point public
que vous pouvez
utiliser pour
trouver information
sur votre identité de manoeuvre
et c'est
l'assistance implicite
entre
le vm ou la machine
que tu as juste attaché
à Azure Arc
et Azure AD
encore
ce qui se passe
derrière les services
sans que vous soyez
en train de ne pas
Azure Arc
est le service
qui garantit
cette sécurité
entre les systèmes
tu as un développeur
tu dois juste
lever
la identité de manoeuvre
pour
avoir le plaisir
et construire des systèmes
et puis tu peux
utiliser,
que tu as mentionné avant,
des vallées
donc
légèrement
ton app
peut faire un line
ou
et
sans
des passwords ou
quelque chose
et
juste
prendre des vallées
et un vallée
d'intervalle
oui
vraiment bon
je pense qu'il y a
un très petit
caveat
qui est
tout à fait
je pense qu'on a fixé
ceci
je pense que pour
les devices Azure Arc
qui est
je pense que
je vais retourner
dans ce cas
il y a un petit
peu de goûte
qui a dû être ajouté
parce que
le processus
n'est pas exactement
le même
il faut
en effet,
ce qui se passe derrière
le site local
dans l'usage
et il
va
scatter
par les accounts locales
qui se disent
oh
j'ai trouvé le nombre de
dents ici
ou c'est un autre nombre
dents
ce qui est un Arc
évoqué
Azure Identity
je vais faire
le nécessaire pour vous
c'est pas du tout
donc vous n'avez pas de
ne pas avoir de
l'implementation
mais en effet
Azure Identity
va défendre
l'authentification
au système
et ils vont passer
les progrès
des tokens
pour le
appel
ou quoi que soit
le clé
ou un
ou un service sqeur
ou un compte de storage
ça vous fait ça
c'est une expérience fantastique
si vous n'avez pas
fait
n'importe quoi
avec l'identité de masse
c'est tellement libre
pour les deux développeurs
et les organisations
depuis
toutes ces clés
toutes ces tokens
sont handées
par
l'identité de l'identité
pour l'identité de masse
où toutes les clés
sont automatiquement pour vous
donc vous n'avez pas de
ne pas avoir
l'expérience de clés
ou quoi se passe
et
c'est automatiquement
mais si vous voulez
avoir le contrôle
de l'identité de masse
parce qu'il y a deux flavors
l'un est
l'un qui se prévise
avec votre service
donc si vous avez un web app
ou un clé
ou quelque chose d'autre
vous pouvez enlever l'identité
sur ça
et automatiquement
ce sont les identités
signées
donc le service
crée une identité
contre l'identité de masse
et puis
cette identité
s'applique à la service
mais si vous délirez la service
la identité
se met en place
ce qui peut être un problème
parce que vous pouvez dire
que je ne veux pas utiliser
la même identité
pour mes web apps
et mes functions
donc vous pouvez
les coller
sur mon
service s'il faut
être super secure
comme ça
il n'y a que
très très limites
de la permission de RBAC
vous pouvez aussi
avoir un usage
défendu
de la identité de masse
et cela
en effet
vous permet de contrôler
la vie de la service
donc même si le service
s'est défendu
de la identité de masse
c'est un objectif
dans la Azure AD
et vous avez le contrôle
sur ça
même juste de la collaboration avec Key Vault
avant
on n'a pas utilisé la identité de la commande
et de la tendance
avec
les clients ID
et les secrets clients
où vous avez appris ça
vous parlez avec Key Vault
qui est créé
pour contrôler les secrets
mais ensuite vous avez
vous avez
un autre secret
comment vous avez appris ça
donc
exactement
ça juste ressemble à
juste de la preuve de ce problème
mmh
je pense que
ASP.NET
si vous parlez de ASP.NET
avait eu cette solution
résolue
même 2 ou 3 ans
il y avait un provider Key Vault
à l'intérieur
ASP.NET
qui vous permettra de
vous acheter
des clés
pour votre Key Vault
sans l'accompagner
en bas
mais il a travaillé
maintenant avec
la identité de masse
c'est tout
disponible pour vous
en ASP.NET
donc je sais pas
pas les deux
mais
à l'arrivée
à l'arrivée Azure SDK
je peux l'utiliser
donc Node
Python
Go
je ne sais pas
on a beaucoup de langues
Java
ils poursent tout ça
et si vous en avez
un enjeu de Kubernetes
vous avez des identités
avec ça aussi ?
oui
vous devez regarder ça
et je pense que
vous avez
des identités par class ou par pods
donc vous pouvez aussi
avoir un peu plus de contrôle
de
quel pod il va
avec le service
et avec quoi la permission
je ne suis pas très capable de Kubernetes
donc je vais
dire ça à l'arrivée
mais on a des fantastiques
personnes qui sont venus
sur la 4-5 Stream
pour streamer
des Kubernetes
avec la identité de masse
et vous savez
vous pouvez toujours
se cacher sur YouTube
si vous voulez
trouver les détails
sur ça
on peut mettre des liens
sur vos shows
aussi
dans les notes de show
parfait
donc on a parlé beaucoup
de ASP.NET
et
vous avez mentionné Electron
mais c'est Web
dans toute la toute
même si c'est un desktop app
ce qui est le point
de la store pour les normales
des apps de desktop
et des apps mobile
et des choses
encore
M-Sally est
votre
le moyen de aller
en fait
aucun library de connecté
qu'on peut utiliser
pour la fréquence de votre choice
va travailler
donc si vous êtes
en train de construire
UWP
ou des apps de sommeur
ou
WPF
WCF
tout en fait
peut utiliser ces libraries
Right
nous vous donnons
un moyen de
sécuriser et éventiver
et manquer vos tokens
et faire de l'autre chose
qu'il faut
avec nos libraries
donc
il y a un très bon histoire
en fait
je l'ai fait
pas beaucoup de demos
en utilisant
des sommeurs
avec M-Sally
pour l'authentifier
contre les deux Asredi
et obtenir
des données graphes
M-S graphes
ou
en utilisant BTC
pour simplement
rédiger
et authentiquer les utilisateurs
donc
donc
entre internet
et un extra net
ou
public face app
ça vous a fait
comme une WPF app
que serait-ce que ça ressemble
à l'utilisation
on a parlé
de l'OpenID connect
où vous vous êtes rédirecté
à un page de login
par l'identité de l'identité
vous vous en avez encore
vous avez un
embeddé
web page dans votre app
pour faire ça
ou
est-ce que vous ouvrez un browser
oui, vous devez avoir access
à la web, ou bien
je pense que
ce qui s'est passé
c'est que vous utilisez
un browser system
ou un webview
et vous pouvez aussi
définir comment ça ressemble
même
comme pour Zamer
vous pouvez aussi dire
je ne veux pas avoir
un webview embeddé
ou je veux utiliser
un browser system
et puis based sur ça
ça va faire
l'appropriation
de la main
mais
je me souviens que j'ai fait
des formes de wind
ou des formes de web
comme très old
stock
je me suis dit
comment je peux
prendre
un max de l'identité
c'est mon
c'est mon moto de ce jour
qu'est-ce que je peux
prendre l'identité
je peux aller à un très
ancien web
et voir ce que je peux faire
donc console
je ne pense pas que j'ai fait WPF
mais ça devrait travailler
dans le même manière
la seule différence
c'est qu'ils sont en train
de faire le site
de l'utilisation
dans le système de l'identité
qui était
le fait
de le faire
dans le passé
vous délicatez ça
à Azure AD
ouvre la page
et vous le portez
et vous allez
et on a beaucoup
de samples sur GitHub
que vous pouvez trouver
tous ces différents workflows
où vous avez WPF
qui s'appelle
un API
qui s'appelle
Graph
ou SQL
donc la toute-flow
de la fin
parce que
dans les plus grands scénarios
vous n'avez pas juste un seul app
c'est
plusieurs services
qui parlent de l'un à l'autre
et avoir cette sorte de
de l'exemple de la fin
et du workflow
et de voir une action
est bien
donc
c'est
c'est definitivement doable
donc tout ce qui est
incroyable
que nous nous avons maintenant
fait pour nous
comme part de Azure AD
et de la plateforme BTC
nous servons
beaucoup de temps et de money
ça lead à
une question obvieuse
comment est-ce que ça
s'est fait?
c'est gratuit
si vous avez Azure AD
ou Office 365
c'est gratuit pour vous
évidemment il y a des différents
services
donc si vous
vous avez besoin de
plus de requirements
et de l'acquisition
vous avez
à changer les services
mais
pour les gens qui sont les appes
qui sont publics
et qui ne veulent pas
signer des utilisateurs
BTC est gratuit
pour les premiers 50 000 logins
par mois
oui
donc c'est un numéro
signifiant
de penser
et puis il y a des pensées
littéralement
des pensées
quand vous vous mettez à la limite
et puis il s'y crée
évidemment
que la faute s'y crée
mais
il y a
les bénéfices
totalement outweintes
le facteur
que vous n'avez pas besoin
de manoeuvrer
cette sécurité
donc vous pouvez payer
je ne m'en souviens pas
le numéro est un calcul de faute
mais
pour BTC
c'est signifiant
plus cher que
rien d'autre
au marché
et il s'y crée
et c'est scalable
et c'est sécuritaire
donc
si vous
si vous vous mettez 50 000 logins
je pense que c'est un bon problème
à avoir
pour commencer à payer
vous savez
un peu de poudre
pour aller au niveau de cette limite
donc
ça signifie qu'on a un modèle successe
donc
on n'a pas eu à personne qui dit
oh, on est 51 000
c'est un peu de problème pour nous à payer
c'est un bon problème
pour avoir
et vous avez tous les supports
de Microsoft
nous avons des équipes
qui sont délicates
pour
résoudre les problèmes
donc
je pense
commencer pour frérot
c'est fantastique
et puis
dès que vous avez créé
votre business
vous savez
l'identité de l'identité
qui peut se produire avec vous
oui
et pensez si vous allez
sur ça
et on parle de pensées
de n'importe quoi
pour
bien sûr
je sais
sans mentionner les noms
un autre
identité
qui est
incroyable
à leur frein
tout de suite
il se trouve très expensif
quand il faut
tout ce qu'il faut
sur leur frein
et ça semble
que ce n'est pas le cas
avec
Azure ADM BTC
ce qui est
très bon
c'est surprise
quand
les gens ont des
vraiment expensés
les tirs
comme pour Azure
ils ont des agreements d'entreprise
ou ils ont l'office de 65
pour dire 15 000
seats
dans leur organisation
et nous marchons
et ils n'ont pas réalisé
qu'ils avaient une solution Azure ADM
pour les freins
ou un BTC
disponible pour eux
comme part de leur subscription
et
vous savez
parfois les looks que nous
avons
sont incroyable
donc
M365
ou Azure subscriptions
viennent avec une ad 10
et derrière les scènes
vous devez les manurer
de toute façon
donc c'est toujours
fou
que vous pensez
qu'on a une solution
et on n'a pas utilisé
pourquoi pas
donc l'une des choses que
les développeurs
devraient
demander
avant de s'impliquer
ce qui est
nous avons déjà
quelque chose
qu'on peut utiliser
dans les livres
très cool
mais je pense que nous avons
découvert
plein de choses
de différents trucs maintenant
donc
est-ce qu'il y a quelque chose
que vous voulez mentionner
avant de nous marcher
sur des tips de défi
oui
j'ai un bon tip de défi
j'espère que personne ne
n'a pas utilisé ça
mais
on a couvert
beaucoup de choses
et encore
nous avons juste
créé la surface
mais
si les gens veulent
commencer
avec Maxxof
d'identité
nous avons
des vraiment fantastiques
les dogs
nous inclusons
les liens sur
comment nous nous attraper
nous avons
nous avons
des discours
nous avons
Twitter
nous avons des emails
nous avons des emails
si vous avez des questions
moi et mes teammates
nous allons être plus heureux
de vous aider
mais
j'espère que maintenant
vous savez pourquoi
vous ne devriez pas
impliquer votre propre solution
et pourquoi vous devriez
j'espère que vous choisissez
Maxxof d'identité
pour votre prochain projet
je sais
dans notre Google Docs
il y a un whole stream
de liens que vous avez
mis dans le lien
donc
il y a beaucoup de choses
les notes de défi
je ne peux pas le souvenir
je l'ai fait
ça
c'est ça
donc
vous voulez mon conseil
pour moi
je dois aller avec ça
aller pour ça
ce sont les gens
qui travaillent
avec XML
et Zation
très souvent
et ils ont de la classes
autour de eux
et parfois
c'est un petit petit
parce que
vous avez de comprendre
ce que
ça peut être
une structure très complexe
et vous ne pouvez pas
m'en souhaiter
ou vous ne savez pas
comment faire
et je ne peux pas même
m'en souvenir
comment créer la classe
de l'application Zation
qui appartient
au schéma correcte
donc si vous utilisez
Visual Studio
ou Visual Studio Code
dans Visual Studio
il y a une fonctionnalité de construction
que vous pouvez
aller à une nouvelle classe
ou à un autre file
vous pouvez le faire
cliquer dans l'édit
sur la menu
et là-bas
il y a une édition spéciale
et là-bas
vous pouvez faire
le classement de la classe XML
ou le classement de la classe Zation
et quand vous le pastez
ça, pendant que vous avez
votre classement de la classe Zation
en souvenir
donc vous avez un clip
ou
ça va en faire
créer une classe
pour vous
avec tous les
les maux de la setting
donc tous les fields
dans votre classement
ou la classe ZM
et les structures très complexes
de ces choses
vous ne le manifesterez
correctement
VS Code ne le fait pas
et il y a une extension
pour le faire
mais je l'ai trouvé la dernière fois
que j'ai utilisé
des codes
de la code
VS fait ça
beaucoup mieux
parce que ça
juste crée un Poco
une classe de la classe Zation
rien d'autre
et tout va bien
donc c'est mon tip
bien
je fais comme des tips de dev productivité
un commande peut vous sauver
huit heures
des jours
je suis en train de faire un XML
comme les maux de la base
donc pour mon tip de dev
je voulais penser à quelque chose
qui était relative
et
je suis surpris que je ne l'ai pas touché
quand on a parlé de JWT tokens
mais il y a un peu
je ne pense pas qu'on l'a fait
de toute façon
mais il y a un peu de différents websites
JWT.io
JWT.ms
qui est présumé par la Microsoft
et vous pouvez vraiment
juste mettre votre
access identity token
et vous pouvez voir tous les clés
donc comme mentionné
les clés sont
des pares de valeur
comme juste metadata
et vous pouvez voir
tout ce que vous avez listé
vous pouvez voir
des trucs de la sorte
sur le token
et quand je fais
l'authentication
évidemment via
un library
comme BTC
je trouve ça vraiment
utile
de juste être able
à savoir
ce que j'ai mis dans mes tokens
donc je peux mettre ça
dans les notes de la show
c'est un très bon tip
en fait si vous êtes
en faisant des registres
vous pouvez définir
JWT.ms
c'est un de ces directeurs
des RIs
donc vous pouvez avoir
vos tokens admis directement
à ça
donc ça ouvre la page pour vous
et vous n'avez pas à
faire du coup
Wow, je n'ai pas compris
ça
il y a
vous êtes en faisant des
des tips de la dév
je n'ai pas oublié
de JWT.ms
merde
je vous ai mis un bon tip
mais j'espère que
ils sont tous utiles
donc merci pour faire ça
pas de problème
pas de problème
donc ce sera probablement
l'envers dernier
épisode de l'année
et
c'est
c'est été
un bon an
un bon an
non
donc j'espère que
2021
on va montrer
des lignes
à la fin de la tunnel
alors que je vois
sur Twitter
qu'apparemment
2021 est l'année
qu'on a mis à la fin
donc
on peut aller dans les waves
dans les
dans les vaccinations
non
je ne sais pas
je ne sais pas
on va voir comment ça va
on va voir
il y a un coup de poids
donc je vais définitement
inclure un lien
à toutes les choses
qu'on a parlé
aujourd'hui
dans les notes de la show
et ceux qui seront disponibles
sur
UnhandledException podcast.com
et c'est ça
c'est juste un grand merci
pour vous joindre
moi sur le show
Christos
merci pour moi
et pour
pour faire le temps
pour vous parler
à moi
j'apprécie beaucoup
et pour être
l'endroit dernier
de l'année
en termes de l'année
merci
oui
le podcast
très début de l'année
j'espère qu'il va
se poursuivre
pour beaucoup de années
pour venir
et l'apologise
sur toutes les interruptions
des enfants
en ce moment
non
les enfants sont amus
qui
sera prouvé
pour nos listeners
mais
de toute façon
donc c'est le show
on a en fait couvert
un grand nombre
c'est vraiment
si je te dis
que vous avez
suffisamment
à couvrir
tout
je parle vite
parce que
on a arrêté
beaucoup de temps
je ne sais pas
combien on a passé
car le temps
c'est juste 14 minutes
oui
donc je pense
que
on a probablement
d'une heure et 10 minutes
ou une heure et 15 minutes
de contenu
si tu le souviens
peut-être
de venir
à 110
117
c'est ça
je suppose
oui
il ne peut pas
trop trop trop trop
parce que
à moins de ton point de vue
il n'y a pas eu
beaucoup de moules
ou n'importe quoi
que je dois couper
donc
c'est assez
assez
pour
oui
j'aimerais
j'aimerais
que je dois
mouler
toutes les m's et les m's
parce que
je dis ça
très souvent
j'ai besoin d'improver ça
non
tu es bon
j'ai regardé
un Dylan Bitti
j'ai regardé Dylan Bitti
ce matin
dans une de ses
clés de clés de NDC
et ce gars ne disait pas
un seul m ou armes
dans la toute session
j'étais mesmerisé
j'étais juste regardé
ses skilles en parlant
j'étais comme
oh putain
il est à la prochaine
mais pour moi
c'est toujours
le pré-processing
le
c'est une seconde langue
pour moi
et
d'être
fluente et élequente
comme tu es dans votre langue néanmoins
c'est difficile
alors que je ne peux pas même
parler grec
ainsi que l'anglais
parce que
je les parle souvent
et
je ne peux pas dire
des termes techniques
donc ça va être
une question
et je l'ai rassemblé
mon grec
quand j'ai besoin
de aller
sur les conversations basées
parce que je ne fais pas
souvent
tu m'as vraiment mis à chier
en disant que
c'est votre seconde langue
et tu parles mieux que je le fais
ce n'est pas très bon
d'hier
non non non non
ne dis pas ça
il y a beaucoup
de
colloquialismes
comme ils se disent
que
si tu n'es pas dans le pays
tu ne te le verras jamais
donc
si tu apprends l'anglais
ou en langue
au-delà
de
le pays
qui a été parlé
ça
devient très difficile
tu peux être super grammatiquement correct
mais ça ne va pas faire du sens
et il y a un fantastique
T-talk
que quelqu'un a fait
une langue qui a fait
et il a eu un bon exemple où il a dit
comme comment tu peux dire
que quelqu'un n'est pas négatif
et il a dit
la dernière nuit
on a cooked
du dinner
ou on a cooked
du chien
et puis mon mari
a regardé le décembre
et il a aussi été grammatiquement correct
mais il a dit que si quelqu'un
de ce même genre
avait dit ça
il aurait probablement dit
la dernière nuit
on a fait du chien
on a pas fait du chien
c'est grammatiquement correct
mais le fait du chien
est probablement plus approprié
et puis mon mari
a fait du chien
tu n'as pas vraiment fait du chien
mais ça ressemble à
comme tu peux dire
un bon chien
ça ressemble à un peu de la chienne
tu as dit
un bon chien
il y a tous ces choses
et des détails
que tu n'as pas vu dans le pays
tu n'as pas eu de la chien
et si tu le laisses
au sein de la pays
tu es grammatiquement correct
tu seras toujours grammatiquement correct
mais
quand tu le vois et tu dis ça
tu es comme
dans ton cerveau
il se dit que
il n'est pas là
il n'est pas venu ici
ou quelque chose
donc
en living dans le UK
pendant 20 ans
tu as pické ces choses
à
mais
encore
c'est difficile de me dire
native
et j'ai ma grecque
scotlandaisie
qui aussi
fait des choses
beaucoup plus horreur
mais c'est bon
ton accident est beaucoup plus bon
que moi
c'est pour sûr
mais
en regardant les
hums et ours et les choses
oui
il y a beaucoup
pas juste hums et ours
mais
les manoeuvres
que j'ai dans ma propre voix
que je n'ai pas réalisé
jusqu'à
parce que j'ai eu un écran
tu as entendu ta voix
oui
oui
donc en méditing
j'ai eu ces en
je suis en train de trompir
hums et ours
et choses comme
j'ai trompé un peu plus
que j'ai pensé
et c'est pas mal de dire
quelques mots
de la parole
et puis sans le savoir
commence la parole
encore et en un autre de l'autre
mais je fais ça plus que je pensais
que j'ai fait
oh ok
et
puis
toi est vraiment clair
donc je ne pense pas que toi
va prendre beaucoup de editing
tout le monde
mais un exemple
d'exemple
il y a beaucoup de
amines
et
tu sais
tu sais
les amines
je sais
je sais
je sais
je
j'ai en fait pris des lessons
pour le public
en parlant
quand je suis en le UK
j'ai eu des codes
et l'un des choses qu'il a dit
est de parler lentement
c'est le quai
très successful des speakers
on parle très lentement
parce qu'il m'a dit
imagine si tu as 60 minutes
et tu as
et tu parles à
je ne sais
100 mots par seconde
ou par minute
ça veut dire
je ne sais
12 000 mots
que j'ai à remercier
et de mémoriser
et de pratiquer
pour cette même session
maintenant j'ai dit
imagine si tu parles
à 60 mots par seconde
et maintenant tu as 60 000
ou 6 000 mots
pour dire
à cette même heure
et puis il a parlé de pauses
et il a dit
à chaque fois qu'il a essayé de dire
mn
ou r
ou tu sais
ou
nous travaillons sur ça
il a dit
pause
et pause encore plus
et pause jusqu'à la perte
parce que dans ton cerveau
tu seras comme
oh mon Dieu
tout le monde est juste pensé
que je suis tombé maintenant
il est comme
ça ressemble à normal
à des gens qui vous entendent
mais
si tu parles trop vite
évidemment
tu es
et parfois je fais
quand je fais
sessions ou des meetups
je serai comme
je serai en train
je serai coupé
en train de me faire partie
parce que je suis en train de me faire partie
donc je suis comme
j'ai besoin de parler plus vite
mais
je suis super excité
donc je vais très vite
et je dis tous ces choses
et je le fais dans ma main
mais
je dois juste parler plus vite
donc tu le trouves
comme tu le slow down
c'est difficile
il y a beaucoup de practice
tu as moins de
de la start
tu dois commencer
ta sentence beaucoup moins
et quoi as-tu
mais évidemment
je ne suis pas le meilleur
à le dire
je suis juste en train de dire
ce que les autres gens m'ont dit
et je vais toujours essayer de me fixer
donc ils ont le fait
et aussi
les gens qui écoutent les podcasts
ont les faits en 1,5 speed
donc c'est plus facile
aussi
c'est vrai
je ne fais pas de plus ou plus vidéos
moins que 1,5
c'est pareil pour LinkedIn Learning
parce qu'ils parlent très lentement
c'est bon pour que les gens ne soient pas natives
ou ne l'ont pas fait
dans le pays
et qu'ils ont besoin de
les faire
c'est pareil de lire un livre
je le read très lentement
parce que je lis tous les mots
donc je ne fais pas de skimming ou de scan
où mes filles
elles me disent
je finis le châtre
comment on finit le châtre
il y a beaucoup de mots ici
mais elle
elle parle anglais
et puis en Gric second
donc elle read
plus vite que je le le read
je pense aussi
à lire en speed
beaucoup de temps
vous ne regardez pas tous les mots
et aussi
je sais qu'une des gens
est subvocalisation
où beaucoup de gens
ils le readent
et dans le tête
ils le parlent tous les mots
et ça vous s'arrête
mais si vous pouvez
se faire de ça
vous pouvez lire
à la vitesse de la pensée
je ne sais pas si je peux le faire
pour mon second langage
peut-être que je le fais pour Gric
parce que je dois penser à ça
mais pour l'anglais
je le read pour moi-même
donc c'est comme vous l'avez dit
subvocalisation
je ne sais pas
c'est un terme
mais je dois le lire parce que
sinon si je vais trop vite
je vais me
je vais perdre les sens
ou je le le transgrippe
c'est vrai
il transgrippe tous les jours
tout le temps
c'est super vite
ce qui est incroyable
quand vous pensez à ça
mais c'est un part de le processus
c'est bien quand je suis
entre les langues aussi
donc en parlant
le Gric de ma fille
et le prochain instant
je vais en parler le Gric
à quelqu'un de l'autre
en anglais ou quelqu'un d'autre
et je peux me changer de côté
donc ça aussi se passe
ce qui est incroyable
et les enfants peuvent aussi le faire
mais pas aussi bien
donc ils sont
ils se sont appelés
préprocessant
pour
spécialement pour l'anglais
où vous devez dire quelque chose
vous devez planir avant
vous savez parfois
je dois faire un très important appel
je vais en fait
faire le appel dans ma main
avant de même prendre
le téléphone
pour parler
parce que je dois faire
surement que je dois avoir tout le temps
c'est incroyable
je ne peux pas imaginer
ce que je dis avec les deux langues
elles sont juste
switchées entre les deux
je sais
Anna
ma fille
frère
est mariée à un italien
et comme il peut parler italien
mais les enfants
ont été
éprouvés
pour parler les deux
donc ils
ils se souvient
vous dites toujours
quand on a un family gathering
ou évidemment pas au moment
mais quand
quand on a un family gathering
alors
quand les enfants se sont dit
que c'était un italien
mais alors que tous les conversations
étaient en anglais
c'est
on a tendance de dire
nos enfants en anglais
aussi
ça ressemble beaucoup
mieux quand vous dites en anglais
je ne sais pourquoi
le garçon est aussi différent
comme je le garçon
anglais
mais si je veux vraiment
être
comme si j'ai vraiment
un moment
il peut être en grec
et
oui les enfants sont aussi
bilinguales
mais je n'ai pas
trois langues
donc je vais être un interprète
c'était mon premier
path de career
je voulais devenir
interprète pour le union européen
donc anglais, anglais et frère
et je l'ai flué
tous les trois
évidemment si tu n'as pas
les deux
tu perdras
donc mes amis maintenant
sont
subpar
mais il y a un point dans ma vie
que je pouvais parler en anglais
mieux que en anglais
ce qui était scénarie
mais mon anglais ne était pas
aussi bon que ce qu'il est maintenant
donc c'est le autre
côté de la coin
mais trois langues
et
tu sais
tu fais un et deux
et ça devient
un force fabrique
les choses craintes
c'est des gens qui savent
sept ou huit langues
c'est juste incroyable
donc est-ce que c'est un C sharp
JavaScript
et Pell
Ruby
ça compte
ça compte aussi
c'est le même
basique
le même fondation
et c'est juste
un syntaxe
de sucre
tu fais le même chose
des loups
et des bifes
et des conditionnels
et des landes
et tu es prêt
on va au bout du
speed reading
donc j'ai fait un peu
de reading
sur speed reading
et l'une des choses que j'ai regardé
c'était
tu sais
sur la compréhension
donc basé
si tu es
imagine que tu es en train de
faire 40
dans la ligne
dans une route
c'est relaxé
tu as
ton stéréo
tu es joué avec ton stéréo
tu es regardé sur la fenêtre
tu es regardé autour
donc tu n'es pas
en train de faire
si tu es en train de faire
dans le pays
tu es en train de faire
120mph
tu es en train de faire un C sharp
en train de faire
tu es en train de faire
tout seul détail
et c'est comme ça
sur le speed reading
aussi
donc si tu
si tu es en train de faire
passer la subvocalisation
read as faster
comme basé
tu es en train de faire un habitant de reading faster
alors
ça automatique
vous fait focus
plus bas
quand tu es
quand tu es en train de read
parce que tu es en train de read faster
Ah
OK
quand même si je ne
ne fais pas en train de speed reading
je read lentement
mon mind wandera
à
ce que j'ai fait
ce jour
et puis tu dois
continuer de rereader la page
mais si j'intentionnel
si je suis en train de read
plus vite
alors ça se passe beaucoup moins
donc comment tu parles de ça
comment tu parles de la
subvocalisation
et il y a quelques petits tips
donc l'un de eux est
en train de
faire un homing
en train de rereader
aussi tu déstractes
toi-même
par
faire un continu de homing
donc tu ne peux pas vraiment
parler à toi-même
et puis
ou counter à la foule
et juste
juste commencer
évidemment tu ne peux pas faire ça
en train de le faire
mais juste
faire
dire 1, 2, 3
en train de rereader
juste comme
pas quand tu read
quelque chose que tu tries
à comprendre
mais comme une session de pratiquant
oui, plus comme une pratique
faire cette paragraphe
essayer de le rééter
sans te subvocaliser
c'est intéressant
et aussi juste être
aware de ce que tu fais
et pratiquer
et essayer
si tu trouves que tu fais ça
essaye de l'arrêter
et aussi
lire vite
si tu te fais
si tu te fais ça
comme mettre ton oeil
sur la page
et utilise-la comme un marque
et faire ça
en train de le lire
si tu fais ça
en train de le lire
alors tu peux se vocaliser
alors tu ne peux pas se vocaliser
vrai
vrai
oui
c'est juste de pratiquer
oui
le read
et ça va se passer vite
j'aime ça
à l'âge de 40 ans
je vais essayer de
je vais essayer de
arrêter de se vocaliser
donc ça va être
pas un exercice de faire
mais oui, je vais essayer
ça va être bon
bien
merci
donc on va toujours
inclure tout ça dans le podcast
je ne vois pas pourquoi pas
je ne vois pas pourquoi pas
ça va être comme
en parlant de généralité
pas de technologie
on le voit toujours
Episode suivant:
Les infos glanées
TheUnhandledExceptionPodcast
Tags
Functional Programming in C# with Simon Painter