Identity and Access Management: Technical Overview - YouTube

Channel: unknown

[7]
Hi my name is Peter Bj枚rk and I'm a senior staff architect at VMware in this
[13]
video I'll cover an overview of Identity and Access Management if you google
[20]
Identity and Access Management you often get a definition similar to this one
[25]
Identity and Access Management is the security discipline that enables the
[30]
right individuals to access the right resources at the right time for the
[35]
right reasons that sounds easy enough but embedded in that sentence is quite a
[41]
lot we need to manage the life cycle of users we need to make sure the user is
[47]
who the user claims to be we must think about ease of access for our users
[52]
access management doesn't mean it must be hard to gain access just that the
[56]
access must fulfill our security policies let's have a closer look at the
[63]
components that build a typical Enterprise Identity and Access
[67]
Management solution first we need a user store this is often based on Active
[73]
Directory but doesn't have to be secondly quite early on companies
[78]
invested in some single sign-on or SSO capabilities these were often focusing
[84]
on internal applications and used non-standard methods of achieving single
[90]
sign-on but once the company started to interact more with external parties such
[96]
as partners and software as a service SaaS applications Federation was needed
[102]
these solutions very much are built on standards and you can integrate products
[107]
from many different vendors because of that closely tied to SSO and Federation
[113]
are the need for multi-factor authentication or MFA with the use of
[118]
MFA we can have a higher trust level in who the user is
[123]
with an ever-growing catalog of application directories partners of SaaS
[129]
applications we need something that can help with the lifecycle of the users
[134]
many companies have tied their user lifecycle to their human reason
[139]
management system and lastly we need capabilities to monitor and audit our
[145]
identity and access management solution to make sure the right person has the
[150]
right access at the right time and for the right reasons let's move on with
[156]
some common vocabulary the first one is an easy one
[159]
Authentication, authentication is the act of proving who you are it is often
[165]
referred to as AuthN typically authentication is done by the use of
[171]
username and password or a certificate to gain a higher trust level in the
[177]
authentication you can use things like multi-factor authentication
[181]
authorization once the user has authenticated authorization decides
[188]
what the user has access to authorization is often written as AuthZ
[193]
as an example, you authenticate into your domain join Windows machine once
[200]
logged in you open a file share and browse the content your access to that
[205]
content is your authorization at the beginning of mankind when developers
[212]
were asked to create an application the developer started out investigating the
[217]
business requirements are starting coding the business logic pretty soon
[222]
they realized they need some method of separating different users from each
[226]
other the reason could be to store individual user settings and preferences
[231]
or controlling access to data and so on so developers had to create a user store
[237]
within the application in order to know who the user were the developers had to
[243]
create some method of authentication and roles and writes engine each new
[251]
application required this of course the code could be reused but what happened
[256]
if username and password weren't good enough anymore
[258]
perhaps you require certificate based authentication instead now each
[263]
application must be changed and updated and to make it worse the developers who
[269]
mainly cared about the business logic is now in charge of
[272]
protecting the user store and to make sure it's not being hacked or become
[277]
corrupted using a local method for authentication is painful for developers
[282]
end users must enter user name and password for each application often
[287]
resulting in weak passwords or the reuse of passwords and lastly it's painful for
[294]
the administrators first they must create users in each application
[298]
secondly if someone leaves they must disable the user in each one of the
[303]
applications to solve this we have for a long time had claim based access in the
[311]
claim based model the developer replaces the authentication logic in the
[316]
application with a simpler logic that can accept a claim and Trust is
[322]
established between the application and a source of authentication and
[326]
authorization in this case I call it an identity provider or IdP the application
[333]
will happily accept the claim that is sent from the IdP the application may
[339]
still have a local user store for user settings and access rights but the
[344]
application does not have to handle any passwords since the users never
[348]
authenticate directly into the application the user authenticate into
[354]
the identity provider instead and when users wants to access the application a
[359]
claim or access token is generated by the identity provider and sent to the
[365]
application the identity provider can issue claims to all your applications
[372]
claim based access is much simpler for the developers because they do not have
[377]
to create a strong authentication method nor do they have to protect the users
[381]
passwords if a change in authentication method is needed you change it on the
[386]
identity provider and the application remains unmodified users are super happy
[392]
they can be authenticated once into the identity provider and with that gain
[398]
seamless access into all their applications administrators are also
[403]
happy if a user leaves the company the administrator can disable the user
[408]
in the identity provider and immediately access to all application has been
[413]
revoked let's try to use a common scenario to explain the concept of a
[419]
claim a little more in depth imagine you are about to go on a trip
[423]
and you decided to fly to the destination when you arrive at the
[428]
airport you walk up to the check-in counter here you provide proof of
[432]
purchase of the ticket and you authenticate with the help of your
[435]
passport the check-in personnel validates your
[439]
credentials and issue you a boarding pass this is your claim and the check-in
[443]
counter is the identity provider you walk through security and when it's time
[450]
to board you show your boarding pass to the personnel at the gate the gate
[454]
trusts the check-in counter therefore it accepts what the boarding
[459]
pass claims for example my name my frequent flyer status which plane I'm
[464]
supposed to board the boarding pass is signed so the gate knows the claim
[470]
hasn't been tampered with and in today's world of flying the gate trusts multiple
[476]
different identity providers the gate trust the check-in kiosk and many times
[481]
also web check-in in a claim based access model trust is at the heart in
[489]
order for it to work the application must trust the identity provider how you
[494]
establish trust varies depending on which standard you use often is trust
[499]
built with the help of exchanging certificates when you create the trust
[503]
you are often asked to use something referred to as the metadata
[508]
this is typically a file or a link to a file the application shares its metadata
[514]
with the identity provider and the identity provider shares its metadata
[519]
with the application using a metadata file simplifies the establishment of
[524]
trust the metadata often contains the certificate, login and logout URLs and
[531]
what else parameters each system supports or requires not using a
[537]
metadata file require you to manually enter these parameters
[542]
for some standards you do not use a certificate instead you use something
[547]
like a system username and password now
[551]
we have a better understanding of claim based access but as I mentioned before
[557]
in most cases we still need user objects in the applications today many companies
[562]
use a centralized human resource system to create and manage their users this
[568]
system can provision users into the identity provider and then the identity
[574]
provider can provision the users into the application but for larger
[579]
enterprises a more centralized system is needed most enterprises have many
[584]
different users stores so they incorporate a metadirectory as their
[589]
centralized and single point of truth this metadirectory is often fed by the
[596]
human resource management system from the meta directory users are being
[601]
synchronized into each one of the other systems this way the whole lifecycle of
[606]
the user is driven from the metadirectory you will often hear the term
[613]
realm or security domain when discussing claim based access a realm or security
[619]
domain is basically the circle of trust within the realm each component trusts
[625]
each other and claims are used to provide access to systems but if you
[631]
have multiple realms or security domains by default they do not have a trust
[636]
between each other so users in realm B cannot make use of their claim issued by
[643]
their local identity provider to gain access to applications in realm A this
[650]
is where Federation comes into play with Federation it is possible to establish
[654]
trust between two different realms and thereby a user in realm B can access an
[660]
application within realm A Federation offers a great user experience users can
[667]
use their own local identity provider for authentication and then seamlessly
[671]
access applications in other realms user administration is
[676]
handled within each realm which means if a user in realm B should no longer have
[681]
access the administrator of realm B disables the user the administrator of
[687]
realm A doesn't have to be told the user will lose all access once disabled by
[693]
the administrator in realm B when federating between different realms you
[699]
often discuss the level of assurance in other words how much do I trust the
[703]
other realm's processes, systems, users and administrators if I know that in order
[709]
for a user to be created in realm B the user must provide proper means of
[715]
identification and in order to authenticate the user are prompted for
[719]
multi-factor authentication my level of assurance is quite high but if a user
[725]
can get a user account by simply filling in an anonymous form and are prompted
[731]
for only username and password my level of assurance is of course quite low you
[736]
can tie this to the fact that many claims include information about how the
[741]
user was authenticated so you may have a trust established between two different
[746]
realms but if the user is authenticated using a too weak of an authentication
[752]
method I may decide not to allow access many times I can redirect the user back
[758]
to its home realm and in my redirect message requests for a higher level of
[764]
authentication when you federate with many different entities you must have a
[770]
method of knowing the home realm of the user this is often referred to as tenant
[776]
discovery you can argue tenant discovery is more when using a SaaS
[780]
application who have many different tenants and each tenant has its own
[785]
Federation configuration but the principle is the same a user connects
[789]
directly to a resource and the resource do not know if it should try to
[794]
authenticate the user or if it should redirect the user to someone else for
[799]
authentication realm or tenant discovery is quite hard to automate it often
[806]
requires some kind of user interaction here is a
[809]
couple of different variations of realm discovery prompts Office 365 is well known
[815]
by most people in office 365 we often perform tenant discovery by entering
[821]
your email address this tells Office 365 which tenant you belong to and thereby
[827]
it knows the Federation configuration other ways of performing tenant
[832]
discovery is to simply offer a custom URL then each tenant has a unique URL
[837]
that the user use for access here's an example where both a custom URL and a
[844]
user prompt is used this tenant is configured for two different identity
[849]
providers one for employees and one for the externals with realm or tenant
[857]
discovery the system can now successfully redirect the user for
[861]
authentication once authenticated the user gets a claim that can be passed to
[868]
the system for access there are many different standards regarding claims
[873]
which means a claim can contain many different things but as a bare minimum a
[878]
unique user identifier must be included the claim is often signed so the
[884]
receiving entity can verify the claim hasn't been tampered with nowadays it
[889]
becomes more and more common to encrypt the whole claim for further protection
[894]
in some claims you have information about if the user managed to
[899]
authenticate or not this might sound weird but you often use this to see if a
[904]
user can perform a certain method of authentication or not what method of
[910]
authentication the user performed is also often passed in the claim if I
[915]
think the method is too weak I can either prompt for another method myself
[919]
or I can redirect the user back to perform a stronger method of
[924]
authentication some standards are very flexible with the content of the claim
[929]
where others are very strict and minimalistic but you can often see
[934]
things like email address first-name lastname you can pass things like
[940]
rolls and group membership in a claim
[944]
sometimes you hear the word claim transformation so here's two example of
[950]
claim transformation in alternative one I use one type of claim to gain access
[956]
to an identity provider in this case I use Kerberos once authenticated the
[963]
identity provider sends me forward with a new kind of claim this time is
[968]
saml-based claim another way of viewing claim transformation is if you change
[974]
the content of the claim as an example the user may authenticate using username
[980]
a password and thereby authenticate into the identity provider as an individual
[985]
but the application may not need individual users separation so the only
[991]
thing that may be needed in the claim is group membership or the role employee of
[996]
a certain company you can build chains of federating entities with each hop the
[1004]
claim is terminated and a new claim is issued a claim is never passed through a
[1010]
hop in this example the application only trusts the last identity provider in the
[1016]
chain and lastly just to clarify multi-factor
[1021]
authentication or MFA. MFA means you must prompt for at least two different
[1027]
factors and the factors typically are something you know like a password or a
[1032]
pin, something you have like a certificate on a smart card or something
[1037]
you are like your fingerprint if you prompt twice for username and password
[1042]
you are still only using one factor so you haven't elevated your trust in the
[1048]
user's authentication method the only result you gained was to annoy the users
[1053]
with that I thank you for watching this video I hope you found it informative to
[1060]
learn more please visit techzone.vmware.com