API Key Authentication Best Practices

Поділитися
Вставка
  • Опубліковано 3 жов 2024

КОМЕНТАРІ • 43

  • @yiannis_p
    @yiannis_p 5 місяців тому +5

    The value of this video doesn’t match the views! Thank you so much for this!

    • @chieeyeoh6204
      @chieeyeoh6204 4 місяці тому

      Totally!

    • @Zuplo
      @Zuplo  3 місяці тому

      Thank you - tell your friends :)

  • @mkorsukov
    @mkorsukov Рік тому +7

    Good practical ideas regarding the API keys! I appreciate an API key check schema at the end of presentation! Very informative!

  • @diegomarino442
    @diegomarino442 Місяць тому +1

    Just...wow! Thank you so much for this video. It clarifies everything I had a question for.

  • @willmcdonnell287
    @willmcdonnell287 3 місяці тому +1

    this is a very, very good video. I would watch a whole series on diff dev topics if they were presented this way. Many thanks!

  • @prasanthpremzon1111
    @prasanthpremzon1111 2 місяці тому

    The insights are so informative and useful. Thanks ☺

  • @christhornham
    @christhornham 9 місяців тому +2

    Excellent video. Thank you!

    • @Zuplo
      @Zuplo  9 місяців тому

      You are welcome!

  • @tushar98
    @tushar98 11 місяців тому +1

    Interesting insights! Thanks for making this video ❤

    • @Zuplo
      @Zuplo  11 місяців тому

      My pleasure!

  • @Fikusiklol
    @Fikusiklol 10 місяців тому +1

    Great talk. Thanks!

    • @Zuplo
      @Zuplo  10 місяців тому

      Thank you for watching!

  • @grumpydeveloper69
    @grumpydeveloper69 Рік тому +1

    @20:40 you can actually triple click in most input fields to select the entire value, or set a select on entry on a field so the entire contents is selected. Also adding a copy button makes this a moot point as well.

    • @joshtwist4875
      @joshtwist4875 Рік тому +4

      Can’t guarantee that other input boxes that the key may be in will have an copy button. Most people don’t know about triple click and so will struggle. It’s zero cost to solve these with a bit of thoughtful design. You do you though.

  • @karbee0
    @karbee0 3 місяці тому

    I use bcrypt for one way encrypted key.
    {retrievable_part}.{irretrievable_part}
    Separated with dot. You can do a script to select in full with a single click.
    Brcrypt is not that fast but not that slow to be an issue.
    Caching in memory requires extra work to do.. if your database comnector supports query caching, use that instead.

    • @Zuplo
      @Zuplo  3 місяці тому

      Yes, this is something that would happen on every request so must developers prefer something a bit faster than bcrypt but probably not making a measurable difference in most cases. BCrypt is often used in password checks which aren't on every request, as a password is often exchanged for some temp token.

  • @dpklabs
    @dpklabs Рік тому +1

    Great insights - thanks for the video. Quick question, how would you recommend generating the checksum?

    • @Zuplo
      @Zuplo  Рік тому +1

      You can use an algorithm like CRC32 then convert to base16. Lots of suitable approaches.

    • @dpklabs
      @dpklabs Рік тому

      @@Zuplo Awesome - thanks! I'll start there and continue exploring other approaches

  • @Luccas.Furtado
    @Luccas.Furtado 6 місяців тому

    Excellent tips, thanks!

    • @Zuplo
      @Zuplo  3 місяці тому

      \o/

  • @dianlabuschagne2239
    @dianlabuschagne2239 Місяць тому

    Fanx was difficult to find info about this

    • @Zuplo
      @Zuplo  Місяць тому

      Glad you found it helpful!

  • @noah-4482
    @noah-4482 Рік тому

    As a person who uses the notes app to store api keys, how do you make a vault? Also great video, it helped a lot!

    • @Zuplo
      @Zuplo  Рік тому +1

      There are professional tools to do store your keys from multiple providers, and lots of folks use password managers (e.g. 1password) which has vaults and items designed for assets like this.

  • @XiaomiPad6-z8p
    @XiaomiPad6-z8p 11 місяців тому

    Good video, big thanks!

    • @Zuplo
      @Zuplo  11 місяців тому

      Glad you liked it!

  • @WantMore-mc8dx
    @WantMore-mc8dx 11 місяців тому

    Thanks for sharing! Sounds logic. In your experience, how about versioning of the API / End Points, any thoughts about it that you can share?

    • @Zuplo
      @Zuplo  11 місяців тому

      Yes, going to make a deep dive video on this - coming soon! Subscribe!

  • @RaphaelSousa-or1dl
    @RaphaelSousa-or1dl 3 місяці тому

    hey I'm having a hard time undertanding how to set up my api key store since I have an API gateway in front of my application.
    Do I need to register the API key in the gateway as well as in the application DB? (I'm using gcp api gateway for context, and they offer a api key validation in the gateway, but I aso want to fetch data from the entity linked to this key)

    • @Zuplo
      @Zuplo  3 місяці тому +1

      I don't think GCP API Gateway supports API Key authentication - in that case, you might want to look at an alternative - may I recommend Zuplo (zuplo.com) which has it built in.

  • @ashu9103
    @ashu9103 3 місяці тому

    How can I make use of api key for authorization

    • @Zuplo
      @Zuplo  3 місяці тому

      Follow this guide and setup a gateway, consider using Zuplo: zuplo.com

  • @alex444000
    @alex444000 8 місяців тому

    How a retrievable api key is not a glorified plaintext password?

    • @CC-tf1wq
      @CC-tf1wq 6 місяців тому

      It should be treated as a password. Meaning securely sent to customers if they are using them to access your application, or hashed if you are storing them in your own database.

    • @Zuplo
      @Zuplo  3 місяці тому

      Agree with @CC-tf1wq here. At some level, even mTLS certificates and clientID/clientSecrets are (encodable as) plaintext passwords. It's not necessarily a bad thing but there are something things you should do to reduce risk: support self serve rolling, support key revocation, support github secret scanning. Naturally we do all this for you at Zuplo.com if you use our solution too.

  • @watchchat
    @watchchat Рік тому

    I think your argument, if it is good enough for stripe then it should be good enough for you is greatly misleading. You have to account for the threat model. I’m sure the companies that use api keys have put that extra effort to secure the ecosystem. I always advocate for more security over ease of use…typically, things that have been made easier to use have hidden complexities so unless those hidden complexities are understood and accounted for the implementation could be at risk.
    But also, I’m not advocating for JWT, there are better solutions. But in this scenario, JWT vs API Key, JWT. :-)

    • @Zuplo
      @Zuplo  Рік тому +2

      We give some reasons why we think some elements of API keys are more secure than OAuth JWT and API Keys clearly simpler from both an implementation and adoption standard (given your point about complexity) - the main reason people might question the approach is that it's not standardized and so some of the best practices are not well documented. This video is an effort to change that. As always, you should do what you think is best for your scenario.

  • @rguere
    @rguere Рік тому

    and sample code?

    • @Zuplo
      @Zuplo  3 місяці тому

      This is a best practices guide vs how to code guide. But most people shouldn't build this themselves and should use a service or gateway (We'd recommend zuplo.com obviously)