Deconstructing REST Security by David Blevins

  Рет қаралды 28,334

Devoxx

Devoxx

Күн бұрын

Пікірлер: 54
@stephenhartley375
@stephenhartley375 4 жыл бұрын
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.
@pelic9608
@pelic9608 4 жыл бұрын
It's rare that I put something on my "Liked videos" _and_ "Watch later" (again) list. This talk is one of them. 👌
@matheusdallrosa4698
@matheusdallrosa4698 3 жыл бұрын
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-850
@chon-850 3 жыл бұрын
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.
@Bastien78320
@Bastien78320 7 жыл бұрын
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.
@SunilShekade
@SunilShekade 2 жыл бұрын
Great explaination. Cleared all the queries.
@TheodoreRavindranath
@TheodoreRavindranath 6 жыл бұрын
Great talk... hats off! And the repetition does play a key role, because this needs to be emphasised.
@jorgeguberte7585
@jorgeguberte7585 4 жыл бұрын
2 minutes in and i already love the guy
@Freedom-si6fb
@Freedom-si6fb 4 жыл бұрын
I like David is so honest.
@MisterMArc
@MisterMArc 4 жыл бұрын
Very good Overview. Thanks !
@AuDHDQ
@AuDHDQ 3 жыл бұрын
thank you for including the part about JWT being pronounced "JOT!"
@orochinagi1111
@orochinagi1111 7 жыл бұрын
great video!!
@antonalekseyev9651
@antonalekseyev9651 7 жыл бұрын
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)
@DavidBlevins
@DavidBlevins 7 жыл бұрын
Correct on the math. I should maybe add a slide to show that math.
@kumarmanish9046
@kumarmanish9046 4 жыл бұрын
33:40 hidden easter egg : *No Way Jose!* :D Who else noticed?
@DavidBlevins
@DavidBlevins 3 жыл бұрын
You're the first and only so far :)
@kumarmanish9046
@kumarmanish9046 3 жыл бұрын
@@DavidBlevins Did you put it there deliberately or was it just a conincidence?
@DavidBlevins
@DavidBlevins 3 жыл бұрын
@@kumarmanish9046 I like to add stuff like that for my own entertainment :)
@christopherstamp9716
@christopherstamp9716 7 жыл бұрын
Amazing speech... it's like rest security is looking more like ssh
@Blizzardsunkmyship
@Blizzardsunkmyship 4 жыл бұрын
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 ?
@thegrandmaster55
@thegrandmaster55 5 жыл бұрын
Great talk, it transpires that you know what you are talking about and you explained it very clearly
@vjnt1star
@vjnt1star 4 жыл бұрын
very good clear presentation.
@makdeniss
@makdeniss 7 жыл бұрын
Nice talk! Helped me a lot!
@fambo6969
@fambo6969 7 жыл бұрын
Great talk!!!
@rimbik1
@rimbik1 4 жыл бұрын
Excellent, I got it now
@AnanthMajumdar
@AnanthMajumdar 7 жыл бұрын
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!
@himanshutomar3512
@himanshutomar3512 5 жыл бұрын
Best talk on REST security!!
@VictorHernandez-zi7ll
@VictorHernandez-zi7ll 3 жыл бұрын
This guy is hilarious. Great talk.
@atuljoshi6182
@atuljoshi6182 4 жыл бұрын
I am not getting how is 15000 TPS at LDAP ? Can anybody explain please ?
@stephenhartley375
@stephenhartley375 4 жыл бұрын
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.
@atuljoshi6182
@atuljoshi6182 4 жыл бұрын
@@stephenhartley375 Thank you
@MartinWilmes
@MartinWilmes 7 жыл бұрын
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?
@engelshentenawy
@engelshentenawy 6 жыл бұрын
well, you generate the JWT, you shouldn't make it too long as it will be encrypted anyway (https).
@demablogia
@demablogia 6 жыл бұрын
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
@originalme4368
@originalme4368 6 жыл бұрын
Excellent, but I have question... What if the token is stolen and issued from wrong origin?
@raulastudillo1752
@raulastudillo1752 5 жыл бұрын
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.
@howardmarles2576
@howardmarles2576 4 жыл бұрын
Thank you !!
@BharCode09
@BharCode09 5 жыл бұрын
Excellent insight.. Pls share the slides..
@pohjoisenvanhus
@pohjoisenvanhus 5 жыл бұрын
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.
@SiddharthKulkarniN
@SiddharthKulkarniN 7 жыл бұрын
A fantastic talk. thanks!
@tomknud
@tomknud 2 жыл бұрын
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?
@benotisanchez5583
@benotisanchez5583 3 жыл бұрын
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.
@tomknud
@tomknud 3 жыл бұрын
If you've re-invented the wheel, you invented the wheel!
@stavsap
@stavsap 4 жыл бұрын
Great speech! very nice solution!
@davidkozak8882
@davidkozak8882 5 жыл бұрын
Great talk, learned a lot from it, thank you! :)
@alinaqvi2638
@alinaqvi2638 5 жыл бұрын
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.
@savagebp0
@savagebp0 7 жыл бұрын
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
@DavidBlevins
@DavidBlevins 6 жыл бұрын
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.
@zexli6709
@zexli6709 5 жыл бұрын
"Token sounds more official" XD
@nstha8848
@nstha8848 5 жыл бұрын
Your voice is like Mark Zuckerberg
@tenminutetokyo2643
@tenminutetokyo2643 4 жыл бұрын
Just merge and consolidate all the crap into one standard. WC3 needs an annual merge review to stop tech diarrhea.
@carnelyve866
@carnelyve866 6 жыл бұрын
Use Soap. It has security built in.
Principles Of Microservices by Sam Newman
56:13
Devoxx
Рет қаралды 321 М.
-5+3은 뭔가요? 📚 #shorts
0:19
5 분 Tricks
Рет қаралды 13 МЛН
Жездуха 42-серия
29:26
Million Show
Рет қаралды 2,6 МЛН
JISOO - ‘꽃(FLOWER)’ M/V
3:05
BLACKPINK
Рет қаралды 137 МЛН
Every team from the Bracket Buster! Who ya got? 😏
0:53
FailArmy Shorts
Рет қаралды 13 МЛН
JUnit 5 by Marc Philipp
51:23
Devoxx
Рет қаралды 17 М.
Common API Security Pitfalls - Philippe De Ryck
49:32
NDC Conferences
Рет қаралды 20 М.
How Netflix Is Solving Authorization Across Their Cloud [I] - Manish Mehta & Torin Sandall, Netflix
36:25
CNCF [Cloud Native Computing Foundation]
Рет қаралды 88 М.
OAuth 2.0 and OpenID Connect (in plain English)
1:02:17
OktaDev
Рет қаралды 1,8 МЛН
Introduction to Apache Kafka by James Ward
49:48
Devoxx
Рет қаралды 280 М.
DHH discusses SQLite (and Stoicism)
54:00
Aaron Francis
Рет қаралды 103 М.
Microservice Authentication and Authorization | Nic Jackson
1:05:43
DevOps Conference
Рет қаралды 78 М.
-5+3은 뭔가요? 📚 #shorts
0:19
5 분 Tricks
Рет қаралды 13 МЛН