Secure Your .NET Application With Keycloak: Step-by-Step Guide

  Рет қаралды 20,494

Milan Jovanović

Milan Jovanović

Күн бұрын

Пікірлер: 113
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Do you want to simplify your development process? Grab my free Clean Architecture template here: bit.ly/3Andaly Want to master Clean Architecture? Go here: bit.ly/3PupkOJ Want to unlock Modular Monoliths? Go here: bit.ly/3SXlzSt
@d3vil5oldier
@d3vil5oldier 2 ай бұрын
Please more series on keyclock. In the past i tried to implement this but I was defeated. Thank you for sharing your knowledge.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Will do! I have a few more ideas for topics to cover
@d3vil5oldier
@d3vil5oldier 2 ай бұрын
@@MilanJovanovicTech Awsome. Please show how to connect to a postgres database and manage user roles/permissions
@AndresValencia1985
@AndresValencia1985 2 ай бұрын
I'm writing to you from Colombia. You solved a problem I had been dealing with for several days while trying to integrate a small .NET project using Net Aspire Components
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Ha! I'm glad this was helpful to unblock you 😁
@alexlo2621
@alexlo2621 2 ай бұрын
Great explanation of Keycloak for authentication and authorization! The setup and configuration steps were clear, and your examples made complex concepts easy to grasp. Looking forward to more in this series-super excited to dive deeper!
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Great to hear!
@Comphonia
@Comphonia 2 ай бұрын
More of Keycloak please. I'm excited for the series! 😊
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
More to come!
@19balazs86
@19balazs86 2 ай бұрын
This is a great video series! I remember in the past searching for content about Keycloak, but nothing compares to this.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Glad it was helpful! And I'm glad some results are coming up for Keycloak now 😁
@anatolia23
@anatolia23 2 ай бұрын
Better to use cookie (http only) authentication for enhanced security, particularly when your client is a SPA. Utilise cookies for communication between the client and the API Gateway, and JWTs for interactions between the API Gateway and downstream services. Good content btw!
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
That could be something I cover in a future video
@JollyGiant19
@JollyGiant19 2 ай бұрын
@@MilanJovanovicTech cookie based jwt authentication, if you could. It gives us all the security of cookie auth with the statelessness of JWTs
@lpsoldier357
@lpsoldier357 2 ай бұрын
Awesome video as always. Please do a video using microsoft entra as identity provider. There are few examples about it online.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Great suggestion!
@matejskerjanc7703
@matejskerjanc7703 2 ай бұрын
Awesome as usual, I'd love to refresh auth code flow and claims transformations knowledge. It's been a while, you're best for this:))
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
I think I covered refresh token in previous Keycloak video, and I have a separate one on claims transformation
@rzaip
@rzaip Ай бұрын
Would love to see how you set this up for production and deploy to Azure (or any other cloud provider).
@MilanJovanovicTech
@MilanJovanovicTech Ай бұрын
Azure Container Apps?
@alibabapour7418
@alibabapour7418 5 күн бұрын
excited for keycloack series 🔥
@MilanJovanovicTech
@MilanJovanovicTech 5 күн бұрын
What do you think about it?
@alibabapour7418
@alibabapour7418 5 күн бұрын
@MilanJovanovicTech it's offering so many benefits and suitable for microservices imo while everyone struggling with clouds alternative, it's free and could be run as a isolated containter can't ask more
@alibabapour7418
@alibabapour7418 5 күн бұрын
@MilanJovanovicTech well it's offering so many benefits and suitable for microservices imo while everyone struggling with clouds alternative, it's free and could be run as a isolated containter, can't ask for more.
@alibabapour7418
@alibabapour7418 5 күн бұрын
well it's offering so many benefits and suitable for microservices imo while everyone struggling with clouds alternative, it's free and could be run as a isolated containter, can't ask for more.
@alibabapour7418
@alibabapour7418 5 күн бұрын
@MilanJovanovicTech well it's offering so many benefits and suitable for microservices imo while everyone struggling with clouds alternative, it's free and could be run as a isolated containter, can't ask for more. I'm considering for applying authorization using keyclock Do you think it's worth it?
@manliomarchica4911
@manliomarchica4911 2 ай бұрын
Great video as usual! Do you use Implicit flow for the sake of simplicity ? I know that it is not recommended to use the implicit flow for security reason
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Yes, could've also used auth code flow just the same
@nagibatorbatcka86
@nagibatorbatcka86 2 ай бұрын
Hello Milan, What do you think about making video where you implement your own IdentityServer ? For example with Duende IdentityServer.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Perhaps, we'll see
@ydswd2003
@ydswd2003 2 ай бұрын
Great video! Could you implement an extra field in the user record?, gender, for example. Another interesting topic, although outside the C# scope, could be "Custom Themes". I would like to see more Keyclok videos. Thank you so much!
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
That's a good idea for a future video
@JoseMuinos
@JoseMuinos 19 күн бұрын
Super usefulll! Any plans on creating a guide for Azure AD B2C authentication? I've seen lots of companies migrating to 2FA auth these last months so im curious: is it Azure AD B2C the best option? Thank's for the content!
@MilanJovanovicTech
@MilanJovanovicTech 18 күн бұрын
It's probably the best option if you're on Azure
@SaifKhan-s5i
@SaifKhan-s5i 2 ай бұрын
Thank you for the amazing video. Will you prefer to use Keycloak or Microsoft Identity Server where you use user manager, role manager etc. Thank you.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
I mostly use Keycloak. I always had to "fight" with Identity to get it to do what I want.
@rickjarr
@rickjarr 2 ай бұрын
Awesome series!
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Glad you think so!
@edandersen
@edandersen 2 ай бұрын
This was fantastic. Thanks!
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Sure thing!
@ryankruger7401
@ryankruger7401 Ай бұрын
Love the series, I am trying to setup according to your video but I have fought for hours with this issue, after getting the bearer token and requesting from the /me endpoint. Bearer error="invalid_token", error_description="The signature key was not found"
@MilanJovanovicTech
@MilanJovanovicTech Ай бұрын
Looks like Metadata endpoint is unreachable
@akashkarve1991
@akashkarve1991 2 ай бұрын
Nice video. Waiting for more microservice scenario on Keycloak. Cheers :)
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Working on it
@fahimahmedali
@fahimahmedali 2 ай бұрын
Another nice video on Keyclock, keep em coming
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Much appreciated!
@thiembaotrinh4309
@thiembaotrinh4309 2 ай бұрын
I'm curious if Keycloak can point to an external IDP (AAD, PingId,...) for authentication and automatically sync the users from the external IDP to Keycloak. It would help a lot for enterprise applications.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Not sure, let's me check
@heikenem
@heikenem 2 ай бұрын
Great video, congrats!
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Thanks!
@aloussase
@aloussase 2 ай бұрын
12:56 you said let's navigate to the SwaggerUI when navigating to the JaegerUI 14:16 you said let's open up swagger when opening postman You see Swagger everywhere 🤣
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Ok ok get out of here 😂
@vinp2007
@vinp2007 2 ай бұрын
just wanted clarification on authentication, so if i had multiple microservices each offering different api calls how would i use the authentication to make sure that all the api calls have a valid authentication/ authorization? Would i use the proxy approach just a little confused.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Typically yes, you'd have a proxy/gateway in front all your services
@imranaliikram462
@imranaliikram462 2 ай бұрын
Nice 👍.. Can you make videos on Keycloak 2 factor authentication via email and sms ? I was working on it and its required custom providers in java for this functionality and i was jot able to complete that ..
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
As soon as possible!
@bjarnenilsson80
@bjarnenilsson80 Ай бұрын
Ok this might be slightly ot, but I've noriced something,in every toturuazl where and postgresql is involved it spins up it's own posrgres container, which is fine if you have only one application running on a host, but what happens if you have 10, now all of a sudden you are runing 10 instances of postgresql, I might be stubid, but doeasn't this chew up a significant amount of ram ? Wouuldn't ir be better to gave a common postgresql container for all apps, where each app has their own db and postgresql user?
@MilanJovanovicTech
@MilanJovanovicTech Ай бұрын
This is much simpler for demos
@dimzinnatov7242
@dimzinnatov7242 2 ай бұрын
Do part 2, where you will create an SPA that will send a request to the API please
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Sure, sure
@smnb6652
@smnb6652 2 ай бұрын
Could you add the requests as http files next time? I'm neither using Swashbuckler nor Postman and getting the basic request was not clear for me.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Yeah, good suggestion. Thanks!
@esrefcagataydogan8308
@esrefcagataydogan8308 2 ай бұрын
Hi Milan, I am developing an application using Keycloak and Spring Boot. I have implemented OTP login and Google Sign-In, but there is an issue. If a user has previously logged in with OTP and then tries to log in with Google using the same email, I get a "user already exists" error (federated identity account exists). In this case, I want the accounts to be merged. In other words, the user should be able to log in using both OTP and Google Sign-In with the same email. Could you help me with this?
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Damn, that is a great question. I don't have an answer right now, but let's see if I can dig up some docs.
@yuravertsimaga6012
@yuravertsimaga6012 2 ай бұрын
Great! Thanks! What about passwordless approach, could we implement some sms code verification with Keyclock?
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Yes we can, adding that to the list
@marko5734
@marko5734 2 ай бұрын
Can you create video how would auth work in microservices architecture?
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Yes. It'll be very similar to this, with just copying the auth config in a few services.
@marko5734
@marko5734 2 ай бұрын
@@MilanJovanovicTechThat would be great
@sunzhang-d9v
@sunzhang-d9v 2 ай бұрын
What should I do if the repository needs to be associated with a user table, and I don't need to create a user table locally?
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
I'm not sure what you're asking here
@HeitorGiacomini
@HeitorGiacomini Ай бұрын
posting before finishig to see the video, i have been stuck on it for 3 months.
@MilanJovanovicTech
@MilanJovanovicTech Ай бұрын
Do you have it figured out now?
@HeitorGiacomini
@HeitorGiacomini Ай бұрын
@@MilanJovanovicTech not yet. i'm trying to configure .net core back end and angular front but errors is confusing.
@aymenbachiri-yh2hd
@aymenbachiri-yh2hd Ай бұрын
Thank you so much
@MilanJovanovicTech
@MilanJovanovicTech Ай бұрын
Any time
@piotrc966
@piotrc966 2 ай бұрын
why in "MetadataAddress" localhost:18080 not working? And must be docker address?
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Because these containers are in a docker network
@MixuD
@MixuD 2 ай бұрын
Both the API and Keycloak are running inside Docker Compose, which automatically sets up an internal Docker network. Within this network, each container (in this case, the API and Keycloak) has its own isolated "localhost" that refers only to itself. To enable communication between containers, you need to use the service names defined in the Docker Compose file. These service names act as hostnames, allowing the containers to find and communicate with each other. So instead of using "localhost" to connect to Keycloak, we need to use the Keycloak service name from the Docker Compose file. This is because "localhost" within the API container refers only to the API itself, not to other containers like Keycloak. Enjoy this visual representation: Host Machine → [ Docker Network { API Container Keycloak Container } ]
@piotrc966
@piotrc966 2 ай бұрын
OK. Thanks. I also guess that 'iss' address (localhost:18080) in token keycloak takes automatically from client request, because it has no access to this adress itself.
@Santalucesguy
@Santalucesguy 2 ай бұрын
How can I connect keycloack to a sql sever db? I’m still stuck with this Identity provider. Thanx
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
Check here: www.keycloak.org/server/db
@Santalucesguy
@Santalucesguy 2 ай бұрын
@@MilanJovanovicTech thanks! btw do you know if there is a way to custumize the view screen where keycloak asks for credentials?
@FabianoNalin
@FabianoNalin Ай бұрын
Is it possible to integrate Swagger into YARP?
@MilanJovanovicTech
@MilanJovanovicTech Ай бұрын
Yes, but it's a bit tricky. You should be able to configure Swagger UI to fetch the Open API descriptions from the downstream APIs.
@myschool1361
@myschool1361 2 ай бұрын
requesting for the RBAC using keycloak
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
On my list
@okanyurt345
@okanyurt345 2 ай бұрын
Thank you 🙏
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
You bet
@DonLiang-n7w
@DonLiang-n7w 12 күн бұрын
It's very nice tutorial! Thank you! Can you please share your code also?
@MilanJovanovicTech
@MilanJovanovicTech 10 күн бұрын
Code is here: www.patreon.com/milanjovanovic
@MkYentertainment
@MkYentertainment 19 күн бұрын
Why no confidential client?
@MilanJovanovicTech
@MilanJovanovicTech 18 күн бұрын
We could use it, but we're still exposing the secret on the UI
@АнтонМешков-ф8х
@АнтонМешков-ф8х 2 ай бұрын
I'm sorry but it doesn't work error when trying to login Bearer error="invalid_token", error_description="The signature key was not found"
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
You must've done something different
@goodgod17
@goodgod17 Ай бұрын
Антон, как починил?)
@goodgod17
@goodgod17 Ай бұрын
а то я с этой штукой уже устал. Буду рад, если подскажешь)
@ryankruger7401
@ryankruger7401 Ай бұрын
Yeah I got the same
@ryankruger7401
@ryankruger7401 Ай бұрын
@goodgod17 have you managed to fix the issue
@guilhermelinosp
@guilhermelinosp 2 ай бұрын
repo?
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
This code is Patreon-only
@edwincarlsson9014
@edwincarlsson9014 2 ай бұрын
Had an issue where the JWT did not get returned correctly to the dotnet authentication system. Something about a mismatch in models in the Token / JsonWebToken namespaces. I had to assign SignatureValidator in the TokenValidationParameters to return a new Microsoft.IdentityModel.JsonWebTokens.JsonWebToken from the encoded JWT parameter to that SignatureValidator delegate. Don't know why this happened, I followed your solution step by step.
@MilanJovanovicTech
@MilanJovanovicTech 2 ай бұрын
That's quite unique 🤔
Secure Your .NET API in 15 Minutes: JWT Authentication Tutorial
15:05
Milan Jovanović
Рет қаралды 20 М.
快乐总是短暂的!😂 #搞笑夫妻 #爱美食爱生活 #搞笑达人
00:14
朱大帅and依美姐
Рет қаралды 12 МЛН
БУ, ИСПУГАЛСЯ?? #shorts
00:22
Паша Осадчий
Рет қаралды 2,9 МЛН
За кого болели?😂
00:18
МЯТНАЯ ФАНТА
Рет қаралды 3,1 МЛН
Ice Cream or Surprise Trip Around the World?
00:31
Hungry FAM
Рет қаралды 21 МЛН
Building an AI Voice Agent for Lead Generation
13:36
Hugo Pod
Рет қаралды 10
Front-end web development is changing, quickly
3:43
Fireship
Рет қаралды 1,3 МЛН
Making A WebSocket Server With .NET 8🧑‍💻  [FULLSTACK 2024 VIDEO 1]
18:43
Alex's Dev Den 👨‍💻
Рет қаралды 14 М.
#KEYCLOAK #Organizations - Multi Tenancy in 1 Realm | Niko Köbler (@dasniko)
18:33
Niko Köbler - Expert for Keycloak IAM & SSO
Рет қаралды 2,8 М.
Output Caching in .NET: The Ultimate Guide to Lightning-Fast APIs
22:35
Milan Jovanović
Рет қаралды 11 М.
Best 10 Items I Tested in 2024!
20:12
Project Farm
Рет қаралды 133 М.
快乐总是短暂的!😂 #搞笑夫妻 #爱美食爱生活 #搞笑达人
00:14
朱大帅and依美姐
Рет қаралды 12 МЛН