An excellent architectural overview of the options available for API authentication, that really explains why each scheme is better or worse than the others. Essential viewing for API architects.
@pelic96084 жыл бұрын
It's rare that I put something on my "Liked videos" _and_ "Watch later" (again) list. This talk is one of them. 👌
@matheusdallrosa46983 жыл бұрын
I think that OAuth2 was made to solve the problem of delegating the authorization to a third part. But using it to make authorization on your own REST API is an overkill in my opinion.
@chon-8503 жыл бұрын
yes but the point for OAuth2 originally was that the token was communicated through back channel between the web server and the resource server so it's harder for man-in-the-middle attack on the end user. OAuth2 was about authorisation. What you described as "just another fancy password" is actually Open ID Connect, which is built on top (retrofitted) of OAuth2, plus the implicit flow - which is not the usual OAuth2 flow.
@Bastien783207 жыл бұрын
This video is very interesting. I will have to watch it twice to fully understand all the implication of each technology. Thank you David Blevins.
@SunilShekade2 жыл бұрын
Great explaination. Cleared all the queries.
@TheodoreRavindranath6 жыл бұрын
Great talk... hats off! And the repetition does play a key role, because this needs to be emphasised.
@jorgeguberte75854 жыл бұрын
2 minutes in and i already love the guy
@Freedom-si6fb4 жыл бұрын
I like David is so honest.
@MisterMArc4 жыл бұрын
Very good Overview. Thanks !
@AuDHDQ3 жыл бұрын
thank you for including the part about JWT being pronounced "JOT!"
@orochinagi11117 жыл бұрын
great video!!
@antonalekseyev96517 жыл бұрын
Please explain where 0.55 TPS came from 32:21? 1000 users refresh their tokens once per hour (3600 seconds) = 0.27 TPS for refresh. 0.55 TPS would be in case of 30 minutes tokens expiration period (30 min * 60 = 1800 seconds)
@DavidBlevins7 жыл бұрын
Correct on the math. I should maybe add a slide to show that math.
@kumarmanish90464 жыл бұрын
33:40 hidden easter egg : *No Way Jose!* :D Who else noticed?
@DavidBlevins3 жыл бұрын
You're the first and only so far :)
@kumarmanish90463 жыл бұрын
@@DavidBlevins Did you put it there deliberately or was it just a conincidence?
@DavidBlevins3 жыл бұрын
@@kumarmanish9046 I like to add stuff like that for my own entertainment :)
@christopherstamp97167 жыл бұрын
Amazing speech... it's like rest security is looking more like ssh
@Blizzardsunkmyship4 жыл бұрын
But where would one store current existing key_ids in a stateless system ? A common caching layer / server containing these keys would still be a bottleneck, albeit, a fast one. Would it be unsafe to encrypt the access token and pass the key within it ?
@thegrandmaster555 жыл бұрын
Great talk, it transpires that you know what you are talking about and you explained it very clearly
@vjnt1star4 жыл бұрын
very good clear presentation.
@makdeniss7 жыл бұрын
Nice talk! Helped me a lot!
@fambo69697 жыл бұрын
Great talk!!!
@rimbik14 жыл бұрын
Excellent, I got it now
@AnanthMajumdar7 жыл бұрын
Excellent talk! Thanks a lot!
6 жыл бұрын
Great Talk. I've heard it live in Cologne and it improved my understanding of what to implement in which situation. Thanks a lot!
@himanshutomar35125 жыл бұрын
Best talk on REST security!!
@VictorHernandez-zi7ll3 жыл бұрын
This guy is hilarious. Great talk.
@atuljoshi61824 жыл бұрын
I am not getting how is 15000 TPS at LDAP ? Can anybody explain please ?
@stephenhartley3754 жыл бұрын
Assume enforcing authentication on the back end microservices as well as the front end API gateway then: At the gateway, 1,000 users @ 3tps = 3,000 tps. In the back end microservices, 1,000 users @ 3 tps requiring the use of 4 microservices to complete = 3,000 tps * 4 = 12,000 tps For a total of 3,000 front end + 12,000 back end = 15,000 tps.
@atuljoshi61824 жыл бұрын
@@stephenhartley375 Thank you
@MartinWilmes7 жыл бұрын
Very nice talk. Just one question: How would you handle the case that the JWT data gets too big to be sent on every request?
@engelshentenawy6 жыл бұрын
well, you generate the JWT, you shouldn't make it too long as it will be encrypted anyway (https).
@demablogia6 жыл бұрын
Only cleartext , I mean violet + yellow text, ( base64 encoded , I know ) is variable lenght . The sign (blue text ) is hashed , so it should have a limited size. Anyway, I think your bigger problem could be the HTTP header size limits apply by web servers. For example, Tomcat defines , by default, 8K ( per HTTP header ) . But I don't think that you reach easily
@originalme43686 жыл бұрын
Excellent, but I have question... What if the token is stolen and issued from wrong origin?
@raulastudillo17525 жыл бұрын
OAuth2.0 should be used for limited Authorization NOT Authentication. If you want to still use OAuth2.0 there's a layer on top of it called OpenID which is more for Authentication and works fine.
@howardmarles25764 жыл бұрын
Thank you !!
@BharCode095 жыл бұрын
Excellent insight.. Pls share the slides..
@pohjoisenvanhus5 жыл бұрын
At 16:18 just thinking that a username-password pair at least has a lookup based on the username and is stored as a hash on the server. Session IDs / tokens just rely on being random enough but I think they're not stored as securely on the server. Password logins should have at least some sort of a brute forcing prevention scheme in place like rate limiting, but then again rate limiting in a load balanced and distributed system would require a shared resource to do that. In the end the user agent is just sending in a bunch of bytes and the services are checking that against a table either raw or hashed. Some systems require the client to first fetch what is effectively a salt tied to the session they get at the same time and then send a hashed version of the password and username or whatever sequence of bytes they need to send in order to be authenticated. But like David says there only a limited number of ingredients here that people mix in order to try to secure things.
@SiddharthKulkarniN7 жыл бұрын
A fantastic talk. thanks!
@tomknud2 жыл бұрын
This seems like a great lecture that I've made a point to come back to after several months. In terms of state, though, wouldn't a 'revocation' list for refresh tokens cause some state distribution and keeping?
@benotisanchez55833 жыл бұрын
I use node js crypto to encrypt and decrpt a json payload containing the user details. I don't know I'm probably the only one doing that lol. But I really need to know if this is vulnerable. Got sick and tired of the cumbersome npm modules with a Chunk of unnecessary code and a bunch of other npm modules. I mean bcrypt somes with some 40 node modules. LoL what? This is to hash a password? I think node js inbuilt crypto module handles that pretty easily.
@tomknud3 жыл бұрын
If you've re-invented the wheel, you invented the wheel!
@stavsap4 жыл бұрын
Great speech! very nice solution!
@davidkozak88825 жыл бұрын
Great talk, learned a lot from it, thank you! :)
@alinaqvi26385 жыл бұрын
Excellent talk ... we need more presenters calling out BS on "new" techs which are 80% rehash of previous techs and provide little to no benefit to the end users. 'JWT = Cookie' lols awesome.
@savagebp07 жыл бұрын
Man.. Such a great meat, but the rest of the 85% was a huge broken record player of rants. This probably could've covered the full content in 20 minutes instead
@DavidBlevins6 жыл бұрын
Check out some of the more advanced material and let me know what you think kzbin.info/www/bejne/paS0nnmEopWMerc The talk is so huge now I'm really looking for ways to condense and have people still not get lost.
@zexli67095 жыл бұрын
"Token sounds more official" XD
@nstha88485 жыл бұрын
Your voice is like Mark Zuckerberg
@tenminutetokyo26434 жыл бұрын
Just merge and consolidate all the crap into one standard. WC3 needs an annual merge review to stop tech diarrhea.