OAuth 2.0 - Token Exchange

Поделиться
HTML-код
  • Опубликовано: 1 дек 2024

Комментарии • 30

  • @efaruk
    @efaruk 3 месяца назад

    Thank you Sacscha for explaining this rarely used topic in such details, which hard to find a good content....

  • @kseniiamelnykova1884
    @kseniiamelnykova1884 2 года назад +1

    That's great explanation! No much information about this feature yet. This video is golden

  • @kirankumar7603
    @kirankumar7603 Год назад

    Thanks for explaining it in simple and clear terms!

  • @nisanthantony2597
    @nisanthantony2597 2 года назад +1

    Wonderfully explained. Thanks 🙂

  • @rodneydias9586
    @rodneydias9586 3 года назад +1

    You are so great to share this

  • @evgeniapshenichnova4289
    @evgeniapshenichnova4289 3 года назад

    Keep making great tutorials! bought you coffee!

    • @saschazegerman
      @saschazegerman  3 года назад

      Thank you very much, Evgenia! I really appreciate it!

  • @bluesky_bluesea
    @bluesky_bluesea 11 месяцев назад

    13:54 a sight of relieve? 😊. Nice explaination

  • @mit9191
    @mit9191 2 года назад +1

    Great explanation !
    Are there any existing libraries which supports token exchange flow ?

    • @saschazegerman
      @saschazegerman  2 года назад +1

      Hello Mit! No, not really. My assumption is that, because Token Exchange is an add-on to OAuth flows, most implementers simply add this feature themselves.

  • @Feather-Frame
    @Feather-Frame Год назад

    Thank you for the great video. With the example that you used of an administrator needing to replicate an issue, couldn't you use the "on behalf of" method? I'm trying to avoid using the impersonate method because logging of activities becomes more difficult. My scenario is the exact same as your example. Any thoughts?

  • @abhishek7969
    @abhishek7969 3 года назад +1

    Very nice

  • @billypre1199
    @billypre1199 3 года назад

    Wow this really helped out, thanks man

  • @rafal_bo
    @rafal_bo 2 года назад +1

    Hi Sascha! Great video. Are there any API Gateways that come with token exchange mechanisms out of the box?

    • @saschazegerman
      @saschazegerman  2 года назад

      Hi Rafal! Unfortunately, I cannot really tell. You may have to check for the API GW of choice yourself. Thanks for watching the video!

  • @GC-jm9bt
    @GC-jm9bt Год назад +1

    Is it OK for a public client to do the token exchange? (3:59 so in case of the example having the client do the token exchange instead of the API gateway).
    I have a use-case where I might want to implement this flow, but I'm not sure if I'm understanding it fully.
    The use case: I have a game and normally I allow my users to login using Authorization Code with PKCE. However this game is also on Steam, and when a user launches the game though Steam they get an unique token. Instead of showing the default login flow I want to exchange this Steam token for a token that my resource server understands. So what I have in mind is the following: the game client performs the token_exchange with the auth server, it puts the Steam token in the subject_token field, and use a custom URI in the subject_token_type field (so the auth server can determine that it's a Steam token). Is this the correct approach?
    TLDR: Can I do the token exchange from the client? Can I use a custom URI in the subject_token_type field?

    • @saschazegerman
      @saschazegerman  Год назад +1

      Hi there! Please have a look at this example of the token exchange spec: datatracker.ietf.org/doc/html/rfc8693#section-2.3. To me it sounds very similar to what you are trying to do. The main idea is what you ask for, receive a token of an accepted issuer (Stream) and issue a token for your resource server.
      Alternatively, you could also look into using id_token_hint. Since you re already supporting authcode with PKCE, you could accept an id_token (basically a JWT) issued by Steam which would be just a small extension to the protocol you already support. I hope this helps!

  • @mohamadyousef2129
    @mohamadyousef2129 2 года назад +1

    thanks

  • @jonasg4611
    @jonasg4611 Год назад

    Hey, the Token Exchange Flow can also be used at one IdP to exchange a Token from one Client to another?

    • @saschazegerman
      @saschazegerman  Год назад

      Hi Jonas! To be honest, your question completely confused me. Until this moment is was cleat to me that token exchange is meant for one client exchanging token for another, different token. If clients change, and they are internal clients that work within an infrastructure, I would say yes. Otherwise, I have to say it depends on the use case and has to be documented well. Sorry that I do not have a better answer for you.

  • @swedishdiamonds
    @swedishdiamonds 2 года назад

    All my token expiering i dont understand how do to find all tokens? Could u just enter Gmail and it find all your ernings?

    • @saschazegerman
      @saschazegerman  2 года назад

      Hi Swedish Diamonds. Please provide more details, otherwise I cannot really help. Thanks

  • @olofs3107
    @olofs3107 Год назад +1

    If Issuer_A generates an Access Token using secret_A and sends Access_Token_A to the client.
    Then client sends Access_Token_A to API_Gate_Way_B, how is API_Gate_Way_B supposed to validate Access_Token_A it doesn't have secret_A?
    If you let API_Gate_Way_B know secret_A you could create your own Access_Token_As.

    • @saschazegerman
      @saschazegerman  Год назад +1

      Hi there! Thanks for watching my video and asking a question. Well, in most cases access_token are issued as JWT these days. That means, the signature can be verified and therefore the authenticity of the token. In addition introspection endpoints are usually available.
      Wherever Token Exchange is supported authorization servers usually are configured to only accept certain token issuers. It is usually not a blind "let's exchange any token for ours" scenario. Please let me know if this helps.

    • @bluesky_bluesea
      @bluesky_bluesea 11 месяцев назад

      ​@@saschazegermannice answer. Thx