What's going on with the OAuth 2.0 Implicit flow?

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ธ.ค. 2024

ความคิดเห็น • 76

  • @hemanth.alluri
    @hemanth.alluri 5 ปีที่แล้ว +54

    I really like how a lot of the potential questions were anticipated, asked and also answered here. I really respect your work here!

  • @sahngcobo
    @sahngcobo 4 ปีที่แล้ว +6

    The interviewer did the first and best presentation he is well versed in the technical bit.

  • @YoavRaman
    @YoavRaman ปีที่แล้ว

    This made the differences between the security level of the flows an the reasons behind them much clearer for me, also cleared up the reasons why it was not one before on some environments, great video!

  • @LMasniuk
    @LMasniuk 5 ปีที่แล้ว +12

    I am currently working on a solution for a system that will involve OAuth2 and I can't thank you enough for this video and the one about OAuth and OIDC in plain english. Very great conversation between a Product person and a dev that I will be doing something similar to. Thank you thank you thank you!

    • @nbarbettini
      @nbarbettini 5 ปีที่แล้ว +3

      You're welcome! Glad it was helpful.

  • @dmoka
    @dmoka 5 ปีที่แล้ว +7

    So far I have read many articles about Oauth2 and the difference between Implicit and AuthCode flow, but this video owned all of them! Great job guys, thanks for it, keep it up!

  • @ssougnez
    @ssougnez 4 ปีที่แล้ว +3

    These guys have a way to explain complicated thing in a very understandable way. Thanks !

    • @nbarbettini
      @nbarbettini 4 ปีที่แล้ว

      Thanks for watching! ♥

    • @ssougnez
      @ssougnez 4 ปีที่แล้ว

      @@nbarbettini thanks for sharing ;-) by the way, your colleague looks a lot like Colin Farrell on that video haha

  • @omarjarkas2175
    @omarjarkas2175 2 ปีที่แล้ว +7

    Aaron has a very unique way and explaining hard concepts simply, great job by Okta team!

  • @FedericoDiDio-s3r
    @FedericoDiDio-s3r ปีที่แล้ว

    Very informative and well presented, thank you! It annoys me to no end that we basically solved this problem with SSL client certificates a long time ago and we keep wasting time on this, but this is kinda beside the point...

  • @Dhruv-nc8xo
    @Dhruv-nc8xo 8 หลายเดือนก่อน +2

    Implicit flow was required as we didn’t have CORS back then. But, how come applications were able to call resource servers at that time? Or were resource server and client app usually had the same domain ?

  • @p0werinside
    @p0werinside 4 ปีที่แล้ว +2

    I'm really glad I watched this video. Thank you for uploading!

  • @alanrice9935
    @alanrice9935 2 ปีที่แล้ว

    this is such a great explanation haha. honestly the interviewer questions were 100% spot on

    • @nbarbettini
      @nbarbettini 2 ปีที่แล้ว

      Glad it was helpful!

  • @adamglass2599
    @adamglass2599 ปีที่แล้ว +1

    10 points for basic clarity as to how and why.

    • @OktaDev
      @OktaDev  ปีที่แล้ว

      Aaron and Nate are great. Thanks for your feedback!

  • @smokelessboy
    @smokelessboy 3 ปีที่แล้ว +1

    That's so useful! So many things I explained I was wondering about and trying to find answers for!

  • @tvh73
    @tvh73 3 ปีที่แล้ว +1

    This answered a lot of my questions! Thank you.

  • @davidroberts3152
    @davidroberts3152 5 ปีที่แล้ว +1

    Great video. Serving up our SPA from .Net Core so we can keep oauth on the server.

  • @khanhtranduy1361
    @khanhtranduy1361 3 ปีที่แล้ว

    Great video that reveal a lot of my confusion. Thanks!

  • @Omikoshi78
    @Omikoshi78 4 ปีที่แล้ว +1

    Really nice discussion, I can tell a lot of thought went into both the question and answer. Thank you!

  • @starbuck3980
    @starbuck3980 10 หลายเดือนก่อน

    Finally a good explanation about this, i have been days searching in the internet, all this oauth2 protocol is the most confusing thing i had ever to learn. Had no idea what was the problem of just sending a token in the url. But if it is not implicit just make the post directly to get the access token?

  • @wiggerlywoo
    @wiggerlywoo 4 ปีที่แล้ว

    Great video. All the right questions asked. Thank you!

  • @bennorthrop5601
    @bennorthrop5601 4 ปีที่แล้ว +2

    Very helpful. Thanks for posting this!

  • @NoTalentGuy
    @NoTalentGuy 4 ปีที่แล้ว +1

    This was surprisingly too good. Thank you so much! 😎

  • @alex_chugaev
    @alex_chugaev 4 ปีที่แล้ว +1

    Great talk, things became more clear now 👏👍

  • @ChumX100
    @ChumX100 3 ปีที่แล้ว +2

    Nowadays it's hard to imagine the internet without cross domain requests. And to think CORS was accepted as recently as 2014.

  • @megaman2016
    @megaman2016 5 ปีที่แล้ว +2

    How does this prevent app developers from using proxy's to reverse engineer your app, make un-authorised calls to your API from their cloned app? Is there a way to prevent this in OAuth 2.0?

    • @nbarbettini
      @nbarbettini 5 ปีที่แล้ว +1

      Good question. Fundamentally, if someone has physical access to the app/device and calls are going over the internet, it's hard to prevent this. What OAuth does is tie authorization (the access token) to the user. So, a valid access token authorizes API calls _for a particular user_. Someone could figure out your API endpoints, but they would still need a user to present their real credentials to the authorization server in order to get a valid access token.

  • @adam.millerchip
    @adam.millerchip 4 ปีที่แล้ว +3

    10:07 they could still intercept the code, they just wouldn't be able to use it because they don't have the code verifier / "dynamic secret".

  • @tstcikhthys
    @tstcikhthys 3 ปีที่แล้ว

    Excellent overview. Thanks!

  • @snowman7480
    @snowman7480 3 ปีที่แล้ว

    True ... 10 years ... Its been a long time ...

  • @expertreviews1112
    @expertreviews1112 3 ปีที่แล้ว

    Amazing and such informative discussion!!

  • @mastershake5817
    @mastershake5817 5 ปีที่แล้ว +2

    Thanks for the video, great content

  • @ILyaCyclone
    @ILyaCyclone 2 ปีที่แล้ว

    Many thanks for this video. One question though: speaking about backend application - in terms of oauth client, do I make my frontend/mobile application and backend (e.g. spring boot) application two separate oauth clients? Like Frontend/mobile is public with PKCE and backend is confidential with client secret. Or they should be a single oauth client - public with PKCE?

    • @devaru.karthik
      @devaru.karthik ปีที่แล้ว

      Best for you to use two clients. Each client can be provisioned differently.

  • @majormayer7133
    @majormayer7133 3 ปีที่แล้ว

    Great video, thanks for the explanation!

  • @ftlight2362
    @ftlight2362 3 ปีที่แล้ว

    Do I understand correctly, that I can use authorization code + PKCE basically instead of any other flow? Even for simple authorization code flow (in order not deal with updating the expiring client secret)?

    • @devaru.karthik
      @devaru.karthik ปีที่แล้ว

      Authorisation code +PKCE can be used for any/all code flows. However, it was intended for Mobile or Single Page App's where the token is extracted in browsers.

  • @Fodi_be
    @Fodi_be 3 ปีที่แล้ว

    Very informative, thanks guys.

  • @TheDiveO
    @TheDiveO 5 ปีที่แล้ว +1

    Eh, at the end of the video I'm still here ;) This video takes some time to get over the warm-up chatter, but in the end it's worth the time spend due to the good background and reasoning information. Just to nitpick: I would have like a few simple sketchy illustrations thrown in to underline the spoken explanations.

    • @nbarbettini
      @nbarbettini 5 ปีที่แล้ว +1

      Longer video, but I have some detailed illustrations on these flows in this talk: th-cam.com/video/996OiexHze0/w-d-xo.html

    • @TheDiveO
      @TheDiveO 5 ปีที่แล้ว +1

      @@nbarbettini thanks for the pointer, very well done explanations.

  • @AMIT103254
    @AMIT103254 ปีที่แล้ว

    Two legends in iam.😊

  • @GuillermoArellano
    @GuillermoArellano 5 ปีที่แล้ว +2

    This was great. Thank you!

  • @MrRomiko
    @MrRomiko 5 ปีที่แล้ว

    Any solutions when service workers have queues up requests (offline mode) and a access token expired. How to get Service Worker to get a refresh token with Implicit Grant? The other issue is Microsoft AAD does not support Code Auth Flow with SPA clients :(

  • @olivierboel3666
    @olivierboel3666 4 ปีที่แล้ว

    Question: at 2:50, Aaron says that the very last step of OAuth is a POST request over the token endpoint; however, according to another presentation by Nate (th-cam.com/video/996OiexHze0/w-d-xo.html at 52:25), the POST request is made by the client application (RP), not the end-user.
    Could you please clarify ?

  • @AlbertCloete
    @AlbertCloete 4 ปีที่แล้ว

    From a UX perspective, I don't like all the redirects, and extra steps like having to click a 'grant access' button that comes with PKCE. I like the flow of the password grant. Is it really a bad idea to use password grant for SPAs?

    • @OktaDev
      @OktaDev  4 ปีที่แล้ว +1

      the "grant access" button isn't unique to PKCE, you could have that with the implicit flow too. That's called the "consent" feature and you can choose to enable or disable it per application regardless of the flow. As for the password grant, that's also being deprecated in the OAuth group for many reasons, so we may need to do a video about that too! oauth.net/2/grant-types/password/

  • @shabarishc
    @shabarishc 4 ปีที่แล้ว

    I have a simple login form in a web portal. Once the user successfully logged in, they are redirected to home page of the web portal. Now here I need to authenticate across Okta and need to have an access token so that I can use the access token to retrieve user details from a system of records at the backend through an API Gateway. The API Gateway would be responsible for authorizing the access tokens. Here in this case, which flow should I use?

  • @starbuck3980
    @starbuck3980 10 หลายเดือนก่อน

    So if understood well, if i just want to make a web without need that web to access other servers requesting data like could be a login with google. I could just make the app more secure using oauth2 cause i wouldnt just receive a jwt token that anyone could use to get access with my credentials but also a client server would have set a secret or a dynamic secret with PKCE and request an authorization token to a authorization server that would be in the same server as the client, everything together in the same server.

  • @101appsCoZa
    @101appsCoZa 4 ปีที่แล้ว +1

    Great video. very informative. thanks!

  • @RushCode
    @RushCode 4 ปีที่แล้ว

    So in implicit flow, if the redirect is intercepted, it's game over because the Access Token is in the URL. Explicit flow is better because instead of the Access Token, you get an Authorization Token, which needs to be sent back to the Auth Provider to get the real Access Token. Question: if an attacker still does the same attack with the implicit flow and obtains the Authorization Token, what stops them from just sending that to the Auth Provider to get an access token? what makes the authorization code "less sensitive" than the final access token?

    • @aaronpk
      @aaronpk 4 ปีที่แล้ว +3

      You're exactly right, except it's called an "authorization code" not "authorization token". The reason it's "less sensitive" is because the authorization code is: short-lived (usually 60 seconds), one-time use, and requires a client secret and/or PKCE code verifier in order to be used to get an access token.

    • @RushCode
      @RushCode 4 ปีที่แล้ว +1

      Thanks for your quick reply (and correcting my terminology) Aaron. What a legend! I was missing the secret/PKCE bit. Makes perfect sense.

  • @debabhishek
    @debabhishek 4 ปีที่แล้ว +2

    this is more interesting than netflix web series..

    • @nbarbettini
      @nbarbettini 4 ปีที่แล้ว

      Next step: Hollywood?!

  • @yuyokk
    @yuyokk 2 ปีที่แล้ว

    good one! Thanks

  • @SoeaOu
    @SoeaOu 4 ปีที่แล้ว

    Great explanation, thanks.

  • @phyolim5064
    @phyolim5064 4 ปีที่แล้ว

    Is there any example project for using session cookie with react app?

    • @mraible
      @mraible 4 ปีที่แล้ว

      Here's a blog post that I wrote a couple years ago that combines a React app with Spring Boot and uses session cookies between them. developer.okta.com/blog/2018/07/19/simple-crud-react-and-spring-boot

  • @grantfleming5250
    @grantfleming5250 4 ปีที่แล้ว

    Fantastic video thanks!

  • @ffridiejr
    @ffridiejr 5 ปีที่แล้ว +1

    Great info. Thanks.

  • @YasserSinjab
    @YasserSinjab 4 ปีที่แล้ว

    This is a great video thank you !!

  • @svichkar_tech
    @svichkar_tech 5 ปีที่แล้ว

    hey guys! do you have any videos/articles about PKCE itslef? is it OKTA specific?

    • @mathiasconradt
      @mathiasconradt 5 ปีที่แล้ว +1

      It's not Okta specific, it applies in general. Okta docs on this are on developer.okta.com/authentication-guide/implementing-authentication/auth-code-pkce/#_1-setting-up-your-application but you can find general info on PKCE elsewhere as well.

    • @aaronpk
      @aaronpk 5 ปีที่แล้ว +2

      PKCE is an extension to OAuth, and many providers support it! Here's some more info and links to some additional resources about it! oauth.net/2/pkce/

    • @tawnyamarriedtojoshuahartl3391
      @tawnyamarriedtojoshuahartl3391 5 ปีที่แล้ว

      @@mathiasconradt Joshua Hartley is a liar and l he still lives with me and never divorced me either

  • @KDOERAK
    @KDOERAK 4 ปีที่แล้ว

    I learned from this great vid - thx!

  • @traact4550
    @traact4550 2 ปีที่แล้ว

    superb

  • @drewfleming1
    @drewfleming1 4 ปีที่แล้ว

    Great video!

  • @LeeXiangWei
    @LeeXiangWei 3 ปีที่แล้ว

    Nice

  • @acontinuacionenla270
    @acontinuacionenla270 15 วันที่ผ่านมา

    20 mins to explain that nerds ?

  • @samanthaferguson6018
    @samanthaferguson6018 4 ปีที่แล้ว

    Great video. Serving up our SPA from .Net Core so we can keep oauth on the server.

  • @anderltz
    @anderltz 5 ปีที่แล้ว

    Great video, thanks