{"id":19615,"date":"2025-04-10T16:11:11","date_gmt":"2025-04-10T14:11:11","guid":{"rendered":"https:\/\/inteca.com\/blog\/blog\/integracja-keycloak-z-aplikacjami-spring-boot\/"},"modified":"2025-04-10T16:11:11","modified_gmt":"2025-04-10T14:11:11","slug":"integracja-keycloak-z-aplikacjami-spring-boot","status":"publish","type":"technical-blog","link":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/","title":{"rendered":"Integracja Keycloak z aplikacjami Spring Boot"},"content":{"rendered":"<p>W dzisiejszym \u015bwiecie zapewnienie bezpiecze\u0144stwa i w\u0142a\u015bciwego uwierzytelniania u\u017cytkownik\u00f3w jest kluczowym aspektem ka\u017cdej aplikacji internetowej. Integracja solidnego systemu uwierzytelniania i autoryzacji mo\u017ce by\u0107 czasoch\u0142onna i podatna na b\u0142\u0119dy. W tym miejscu przydaje si\u0119 Keycloak, rozwi\u0105zanie do zarz\u0105dzania to\u017csamo\u015bci\u0105 i dost\u0119pem (IAM) o otwartym kodzie \u017ar\u00f3d\u0142owym. W tym po\u015bcie na blogu przyjrzymy si\u0119, jak zintegrowa\u0107 Keycloak z aplikacjami Spring Boot, aby bezproblemowo obs\u0142ugiwa\u0107 uwierzytelnianie i autoryzacj\u0119.   <\/p>\n<h2>Wprowadzenie do Keycloak i Spring Boot<\/h2>\n<h3>Co to jest Keycloak?<\/h3>\n<p><a href=\"https:\/\/inteca.com\/keycloak-managed-service\/\">Keycloak<\/a> to rozwi\u0105zanie IAM typu open source opracowane przez firm\u0119 Red Hat. Zapewnia gotow\u0105 obs\u0142ug\u0119 r\u00f3\u017cnych protoko\u0142\u00f3w uwierzytelniania, takich jak OAuth 2.0, OpenID Connect i SAML 2.0, u\u0142atwiaj\u0105c programistom zabezpieczanie aplikacji. Keycloak oferuje r\u00f3wnie\u017c szeroki zakres funkcji, w tym jednokrotne logowanie (SSO), logowanie spo\u0142eczno\u015bciowe, federacj\u0119 u\u017cytkownik\u00f3w i szczeg\u00f3\u0142ow\u0105 autoryzacj\u0119. Co wi\u0119cej, zapewnia przyjazn\u0105 dla u\u017cytkownika konsol\u0119 administracyjn\u0105, kt\u00f3ra upraszcza zarz\u0105dzanie u\u017cytkownikami, rolami i uprawnieniami.   <\/p>\n<h3>Co to jest Spring Boot?<\/h3>\n<p><a href=\"https:\/\/inteca.com\/devops-consulting-services\/\">Spring Boot<\/a> to framework oparty na Javie typu open source opracowany przez firm\u0119 Pivotal Software (obecnie cz\u0119\u015b\u0107 VMware). Ma ona na celu uproszczenie programowania, wdra\u017cania i konserwacji aplikacji Spring poprzez zapewnienie ustawie\u0144 domy\u015blnych gotowych do produkcji i zminimalizowanie kodu standardowego. Spring Boot oferuje szeroki wachlarz funkcji, takich jak automatyczna konfiguracja, obs\u0142uga wbudowanego serwera WWW i uparte podej\u015bcie do tworzenia aplikacji. Pomaga to programistom w szybkim i wydajnym tworzeniu autonomicznych aplikacji klasy produkcyjnej.   <\/p>\n<h2>Konfigurowanie programu Keycloak dla aplikacji Spring Boot<\/h2>\n<p>Zanim zag\u0142\u0119bimy si\u0119 w proces integracji, najpierw skonfigurujmy Keycloak dla naszej aplikacji Spring Boot.<\/p>\n<h3>Instalowanie i konfigurowanie programu Keycloak<\/h3>\n<ol>\n<li>Pobierz najnowsz\u0105 wersj\u0119 Keycloak z oficjalnej strony internetowej (<a href=\"https:\/\/www.keycloak.org\/downloads\" target=\"_new\" rel=\"noopener\">https:\/\/www.keycloak.org\/downloads<\/a>).<\/li>\n<li>Rozpakuj pobrane archiwum i przejd\u017a do katalogu <code>bin<\/code> .<\/li>\n<li>Uruchom serwer Keycloak, uruchamiaj\u0105c <code>.\/kc.sh<\/code> go (Linux\/Mac) lub <code>kc.bat<\/code> (Windows).<\/li>\n<li>Otw\u00f3rz przegl\u0105dark\u0119 internetow\u0105 i uzyskaj dost\u0119p do konsoli administracyjnej Keycloak pod adresem <code>http:\/\/localhost:8080\/auth\/admin<\/code>.<\/li>\n<li>Post\u0119puj zgodnie z instrukcjami wy\u015bwietlanymi na ekranie, aby utworzy\u0107 pocz\u0105tkowego administratora.<\/li>\n<\/ol>\n<h3>Tworzenie obszaru, klienta i u\u017cytkownika<\/h3>\n<p>Po skonfigurowaniu Keycloak musimy utworzy\u0107 realm, klienta i u\u017cytkownika dla naszej aplikacji Spring Boot.<\/p>\n<ol>\n<li>Zaloguj si\u0119 do konsoli administracyjnej Keycloak przy u\u017cyciu po\u015bwiadcze\u0144 administratora.<\/li>\n<li>Kliknij przycisk &#8222;Dodaj serwer&#8221; i podaj nazw\u0119 nowego serwera (np. &#8222;SpringBootRealm&#8221;).<\/li>\n<li>Kliknij zak\u0142adk\u0119 &#8222;Klienci&#8221;, a nast\u0119pnie przycisk &#8222;Utw\u00f3rz&#8221;. Podaj identyfikator klienta (np. &#8222;spring-boot-app&#8221;) i wybierz &#8222;openid-connect&#8221; jako protok\u00f3\u0142 klienta. <\/li>\n<li>Skonfiguruj ustawienia klienta zgodnie z potrzebami. Na przyk\u0142ad ustaw warto\u015b\u0107 &#8222;Prawid\u0142owe identyfikatory URI przekierowania&#8221; na <code>http:\/\/localhost:8080\/*<\/code> , aby zezwoli\u0107 na przekierowanie do aplikacji Spring Boot. Aplikacja Spring Boot powinna zosta\u0107 wdro\u017cona na innym ho\u015bcie lub nale\u017cy zmieni\u0107 port 8080 dla aplikacji Keycloak lub Spring Boot.  <\/li>\n<li>Kliknij zak\u0142adk\u0119 &#8222;U\u017cytkownicy&#8221;, a nast\u0119pnie przycisk &#8222;Dodaj u\u017cytkownika&#8221;. Podaj nazw\u0119 u\u017cytkownika (np. &#8222;springuser&#8221;) i zako\u0144cz proces tworzenia u\u017cytkownika, ustawiaj\u0105c has\u0142o i wszelkie wymagane atrybuty. <\/li>\n<\/ol>\n<p>Teraz, gdy mamy ju\u017c skonfigurowany i skonfigurowany Keycloak, przejd\u017amy do integracji go z nasz\u0105 aplikacj\u0105 Spring Boot.<\/p>\n<h2>Integracja Keycloak z aplikacjami Spring Boot<\/h2>\n<h3>Konfigurowanie platformy Spring Boot do korzystania z maskowania<\/h3>\n<p>Aby zintegrowa\u0107 Keycloak z nasz\u0105 aplikacj\u0105 Spring Boot, musimy doda\u0107 wymagane zale\u017cno\u015bci i skonfigurowa\u0107 nasz\u0105 aplikacj\u0119 tak, aby u\u017cywa\u0142a Keycloak do uwierzytelniania i autoryzacji.<\/p>\n<p><strong>Dodawanie zale\u017cno\u015bci Keycloak<\/strong><\/p>\n<p>Dodaj zale\u017cno\u015b\u0107 Keycloak Spring Boot Starter do pliku kompilacji projektu. Je\u015bli na przyk\u0142ad u\u017cywasz narz\u0119dzia Maven, dodaj nast\u0119puj\u0105c\u0105 zale\u017cno\u015b\u0107 do <code>pom.xml<\/code> pliku: <\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">&lt;zale\u017cno\u015b\u0107&gt;<br \/>\n&lt;groupId&gt;org.keycloak&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;keycloak-spring-boot-starter&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${keycloak.version}&lt;\/wersja&gt;<br \/>\n&lt;\/dependency&gt;<\/div>\n<\/div>\n<p>Je\u015bli u\u017cywasz narz\u0119dzia Gradle, dodaj nast\u0119puj\u0105c\u0105 zale\u017cno\u015b\u0107 do <code>build.gradle<\/code> pliku:<\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">implementacja 'org.keycloak:keycloak-spring-boot-starter:${keycloak.version}&#8217;<\/div>\n<\/div>\n<p><strong>Konfigurowanie Keycloak w Spring Boot<\/strong><\/p>\n<p>Nast\u0119pnie zaktualizuj plik konfiguracyjny aplikacji Spring Boot (np. <code>application.yml<\/code> lub <code>application.properties<\/code>), aby uwzgl\u0119dni\u0107 niezb\u0119dne w\u0142a\u015bciwo\u015bci konfiguracyjne Keycloak. Oto przyk\u0142adowa konfiguracja przy u\u017cyciu <code>application.yml<\/code>: <\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">keycloak:<br \/>\nauth-server-url: http:\/\/localhost:8080\/auth<br \/>\nrealm: SpringBootRealm<br \/>\nresource: spring-boot-app<br \/>\npublic-client: true<br \/>\nprincipal-attribute: preferred_username<br \/>\nsecurity-constraints:<br \/>\n&#8211; authRoles:<br \/>\n&#8211; user<br \/>\nsecurityCollections:<br \/>\n&#8211; patterns:<br \/>\n&#8211; &#8222;\/*&#8221;<\/div>\n<\/div>\n<p>Ta konfiguracja okre\u015bla adres URL serwera Keycloak, utworzony wcze\u015bniej obszar i klienta oraz role i wzorce adres\u00f3w URL do zabezpieczenia. Pami\u0119taj, aby zaktualizowa\u0107 te warto\u015bci zgodnie z konkretn\u0105 konfiguracj\u0105 maskowania. <\/p>\n<h3>Zabezpieczanie aplikacji Spring Boot za pomoc\u0105 Keycloak<\/h3>\n<p>Po skonfigurowaniu Keycloak mo\u017cemy teraz zabezpieczy\u0107 nasz\u0105 aplikacj\u0119 Spring Boot za pomoc\u0105 funkcji uwierzytelniania i autoryzacji Keycloak.<\/p>\n<p><strong>Zabezpieczanie punkt\u00f3w ko\u0144cowych REST<\/strong><\/p>\n<p>Aby zabezpieczy\u0107 punkty ko\u0144cowe REST w aplikacji Spring Boot, dodaj adnotacje do metod lub klas kontrolera za <code>@PreAuthorize<\/code> pomoc\u0105 adnotacji. Ta adnotacja umo\u017cliwia okre\u015blenie wymaganych r\u00f3l lub uprawnie\u0144 do uzyskiwania dost\u0119pu do okre\u015blonego punktu ko\u0144cowego. Na przyk\u0142ad:  <\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">\n<p>@RestController<br \/>\n@RequestMapping(&#8222;\/api&#8221;)<br \/>\npublic class ApiController {<\/p>\n<p>@PreAuthorize(&#8222;hasRole(&#8217;user&#8217;)&#8221;)<br \/>\n@GetMapping(&#8222;\/secure&#8221;)<br \/>\npublic ResponseEntity&lt;String&gt; secureEndpoint() {<br \/>\nreturn ResponseEntity.ok(&#8222;Dost\u0119p przyznany do bezpiecznego punktu ko\u0144cowego.&#8221;);<br \/>\n}<\/p>\n<p>@GetMapping(&#8222;\/public&#8221;)<br \/>\npublic ResponseEntity&lt;String&gt; publicEndpoint() {<br \/>\nreturn ResponseEntity.ok(&#8222;Dost\u0119p przyznany do publicznego punktu ko\u0144cowego.&#8221;);<br \/>\n}<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<p>W tym przyk\u0142adzie <code>\/api\/secure<\/code> punkt ko\u0144cowy wymaga roli &#8222;u\u017cytkownik&#8221;, podczas gdy <code>\/api\/public<\/code> punkt ko\u0144cowy jest dost\u0119pny dla ka\u017cdego.<\/p>\n<p><strong>Dost\u0119p do informacji o u\u017cytkowniku<\/strong><\/p>\n<p>Keycloak udost\u0119pnia informacje o u\u017cytkowniku w ramach kontekstu zabezpiecze\u0144, do kt\u00f3rego mo\u017cna uzyska\u0107 dost\u0119p z aplikacji Spring Boot. Aby uzyska\u0107 dost\u0119p do informacji o u\u017cytkowniku, wstrzyknij <code>KeycloakPrincipal<\/code> metod\u0119 or <code>KeycloakAuthenticationToken<\/code> do kontrolera. Na przyk\u0142ad:  <\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">@GetMapping(&#8222;\/userinfo&#8221;)<br \/>\npublic ResponseEntity&lt;String&gt;  userInfo(Principal principal) {<br \/>\nKeycloakPrincipal&lt;KeycloakSecurityContext&gt;  keycloakPrincipal = (KeycloakPrincipal&lt;KeycloakSecurityContext&gt;) principal;<br \/>\nAccessToken accessToken = keycloakPrincipal.getKeycloakSecurityContext().getToken();<br \/>\nString username = accessToken.getPreferredUsername();<br \/>\nString email = accessToken.getEmail();<br \/>\n\/\/ &#8230; inne informacje o u\u017cytkowniku &#8230;.<br \/>\nreturn ResponseEntity.ok(&#8222;Informacje o u\u017cytkowniku: &#8221; + username + &#8222;, &#8221; + email);<br \/>\n}<\/div>\n<\/div>\n<p>W tym przyk\u0142adzie uzyskujemy dost\u0119p do nazwy u\u017cytkownika i adresu e-mail u\u017cytkownika z kontekstu zabezpiecze\u0144 Keycloak i zwracamy je jako odpowied\u017a.<\/p>\n<p>Dzi\u0119ki tym krokom Twoja aplikacja Spring Boot jest teraz zabezpieczona za pomoc\u0105 zaawansowanych funkcji uwierzytelniania i autoryzacji Keycloak. Mo\u017cesz dodatkowo dostosowa\u0107 <\/p>\n<h2>Logowanie jednokrotne (SSO) za pomoc\u0105 klawiatury Spring Boot<\/h2>\n<h3>Informacje o logowaniu jednokrotnym<\/h3>\n<p>Single Sign-On (SSO) to proces uwierzytelniania, kt\u00f3ry umo\u017cliwia u\u017cytkownikom dost\u0119p do wielu aplikacji za pomoc\u0105 jednego zestawu danych logowania. Dzi\u0119ki logowaniu jednokrotnemu u\u017cytkownicy musz\u0105 uwierzytelni\u0107 si\u0119 tylko raz, a nast\u0119pnie mog\u0105 uzyska\u0107 dost\u0119p do wielu aplikacji bez konieczno\u015bci ponownego uwierzytelniania. <\/p>\n<p><strong>Logowanie jednokrotne ukrywania<\/strong><\/p>\n<p>Keycloak to doskona\u0142y wyb\u00f3r do wdro\u017cenia SSO, poniewa\u017c obs\u0142uguje szerok\u0105 gam\u0119 protoko\u0142\u00f3w i \u0142atwo integruje si\u0119 z r\u00f3\u017cnymi aplikacjami. W przypadku korzystania z us\u0142ugi Keycloak jako dostawcy to\u017csamo\u015bci mo\u017cna w\u0142\u0105czy\u0107 logowanie jednokrotne dla aplikacji Spring Boot przy minimalnej konfiguracji. <\/p>\n<h3>W\u0142\u0105czanie logowania jednokrotnego w aplikacjach Spring Boot<\/h3>\n<p>Po skonfigurowaniu Keycloak jako dostawcy to\u017csamo\u015bci w\u0142\u0105czenie logowania jednokrotnego dla aplikacji Spring Boot jest prostym procesem.<\/p>\n<p><strong>Konfigurowanie ustawie\u0144 klienta Keycloak dla logowania jednokrotnego<\/strong><\/p>\n<p>Aby w\u0142\u0105czy\u0107 logowanie jednokrotne, musisz odpowiednio skonfigurowa\u0107 ustawienia klienta Keycloak. Upewnij si\u0119, \u017ce klienci Keycloak dla r\u00f3\u017cnych aplikacji nale\u017c\u0105 do tego samego obszaru i \u017ce korzystaj\u0105 z tej samej konfiguracji dostawcy to\u017csamo\u015bci. <\/p>\n<p><strong>Konfigurowanie platformy Spring Boot na potrzeby logowania jednokrotnego<\/strong><\/p>\n<p>W aplikacji Spring Boot upewnij si\u0119, \u017ce w\u0142a\u015bciwo\u015bci konfiguracyjne Keycloak w pliku konfiguracyjnym aplikacji (np <code>application.yml<\/code> . lub <code>application.properties<\/code>) s\u0105 poprawnie skonfigurowane. Upewnij si\u0119, \u017ce <code>auth-server-url<\/code> w\u0142a\u015bciwo\u015bci i <code>realm<\/code> wskazuj\u0105 ten sam serwer i obszar Keycloak, kt\u00f3ry jest u\u017cywany przez inne aplikacje uczestnicz\u0105ce w procesie logowania jednokrotnego. <\/p>\n<h3>Wylogowanie za pomoc\u0105 logowania jednokrotnego<\/h3>\n<p>Po w\u0142\u0105czeniu logowania jednokrotnego wa\u017cne jest r\u00f3wnie\u017c prawid\u0142owe wylogowanie, aby upewni\u0107 si\u0119, \u017ce u\u017cytkownicy s\u0105 wylogowani ze wszystkich aplikacji, gdy zdecyduj\u0105 si\u0119 wylogowa\u0107.<\/p>\n<p><strong>Konfiguracja adresu URL wylogowania Keycloak<\/strong><\/p>\n<p>W ustawieniach serwera Keycloak skonfiguruj opcj\u0119 &#8222;Wylogowanie z kana\u0142u frontowego&#8221;, aby w\u0142\u0105czy\u0107 propagacj\u0119 wylogowania do wszystkich aplikacji. To ustawienie gwarantuje, \u017ce gdy u\u017cytkownik wyloguje si\u0119 z jednej aplikacji, zostanie wylogowany ze wszystkich aplikacji przy u\u017cyciu tej samej sesji maskowania. <\/p>\n<p><strong>Implementowanie wylogowania w Spring Boot<\/strong><\/p>\n<p>Aby zaimplementowa\u0107 wylogowanie w aplikacji Spring Boot, utw\u00f3rz punkt ko\u0144cowy wylogowania, kt\u00f3ry przekierowuje u\u017cytkownik\u00f3w do adresu URL wylogowania Keycloak. Ten adres URL uruchomi proces wylogowania dla wszystkich aplikacji uczestnicz\u0105cych w procesie logowania jednokrotnego. Oto przyk\u0142ad punktu ko\u0144cowego wylogowania:  <\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">@GetMapping(&#8222;\/logout&#8221;)<br \/>\npublic String logout(HttpServletRequest request) throws ServletException {<br \/>\nrequest.logout();<br \/>\nreturn &#8222;redirect:&#8221; + keycloakLogoutUrl;<br \/>\n}<\/div>\n<\/div>\n<p>W tym przyk\u0142adzie <code>keycloakLogoutUrl<\/code> powinien to by\u0107 adres URL wylogowania Maskowania, kt\u00f3ry zazwyczaj ma nast\u0119puj\u0105cy format: <code>http:\/\/&lt;keycloak-server&gt;\/auth\/realms\/&lt;realm&gt;\/protocol\/openid-connect\/logout?redirect_uri=&lt;post-logout-redirect-url&gt;<\/code>. Upewnij si\u0119, \u017ce zamieni\u0142e\u015b <code>&lt;keycloak-server&gt;<\/code>, <code>&lt;realm&gt;<\/code>i <code>&lt;post-logout-redirect-url&gt;<\/code> na warto\u015bci odpowiednie dla konfiguracji Keycloak. <\/p>\n<p>Wykonuj\u0105c te kroki, aplikacje Spring Boot b\u0119d\u0105 teraz obs\u0142ugiwa\u0107 funkcj\u0119 logowania jednokrotnego i wylogowania za pomoc\u0105 funkcji Keycloak, umo\u017cliwiaj\u0105c u\u017cytkownikom bezproblemowy dost\u0119p do wielu aplikacji przy u\u017cyciu jednego zestawu danych logowania.<\/p>\n<h2>Zabezpieczanie interfejs\u00f3w API platformy Spring Boot za pomoc\u0105 programu Keycloak<\/h2>\n<h3>Maskowanie i OAuth2<\/h3>\n<p>OAuth2 to szeroko stosowana struktura autoryzacji, kt\u00f3ra umo\u017cliwia aplikacjom delegowanie dost\u0119pu do zasob\u00f3w bez udost\u0119pniania ich po\u015bwiadcze\u0144. Keycloak obs\u0142uguje OAuth2 od razu po wyj\u0119ciu z pude\u0142ka, umo\u017cliwiaj\u0105c zabezpieczanie interfejs\u00f3w API Spring Boot przy u\u017cyciu serwera Keycloak jako serwera autoryzacji OAuth2. <\/p>\n<p><strong>Przep\u0142ywy OAuth2 maskowania<\/strong><\/p>\n<p>Keycloak obs\u0142uguje r\u00f3\u017cne przep\u0142ywy OAuth2, takie jak przep\u0142yw kodu autoryzacji, przep\u0142yw niejawny i przep\u0142yw po\u015bwiadcze\u0144 klienta. W zale\u017cno\u015bci od wymaga\u0144 aplikacji mo\u017cesz wybra\u0107 najbardziej odpowiedni przep\u0142yw OAuth2, aby zabezpieczy\u0107 interfejs API Spring Boot. <\/p>\n<h3>Integracja Keycloak z Spring Security<\/h3>\n<p>Spring Security to pot\u0119\u017cna struktura, kt\u00f3ra upraszcza zabezpieczanie aplikacji Spring Boot. Integruj\u0105c <a href=\"https:\/\/inteca.com\/keycloak-managed-service\/\">Keycloak<\/a> z Spring Security, mo\u017cesz wykorzysta\u0107 mo\u017cliwo\u015bci obu rozwi\u0105za\u0144 do zabezpieczenia swoich interfejs\u00f3w API. <\/p>\n<p><strong>Dodawanie zale\u017cno\u015bci Keycloak<\/strong><\/p>\n<p>Aby zintegrowa\u0107 Keycloak z Spring Security, musisz doda\u0107 wymagane zale\u017cno\u015bci Keycloak do swojego projektu Spring Boot. Mo\u017cna to zrobi\u0107, <code>keycloak-spring-boot-starter<\/code> dodaj\u0105c zale\u017cno\u015bci i <code>keycloak-spring-security-adapter<\/code> do konfiguracji kompilacji projektu. <\/p>\n<p><strong>Konfigurowanie us\u0142ugi Spring Security<\/strong><\/p>\n<p>Po dodaniu zale\u017cno\u015bci Keycloak musisz skonfigurowa\u0107 Spring Security tak, aby u\u017cywa\u0142 Keycloak do uwierzytelniania i autoryzacji. Wi\u0105\u017ce si\u0119 to z utworzeniem <code>KeycloakConfig<\/code> klasy, kt\u00f3ra rozszerza <code>KeycloakWebSecurityConfigurerAdapter<\/code> i skonfigurowaniem Spring Security do korzystania z mechanizm\u00f3w uwierzytelniania i autoryzacji Keycloak. <\/p>\n<p>Oto przyk\u0142ad <code>KeycloakConfig<\/code> klasy:<\/p>\n<div class=\"bg-black rounded-md mb-4\">\n<div class=\"flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md\">j@Configuration<br \/>\n@EnableWebSecurity<br \/>\npublic class KeycloakConfig extends KeycloakWebSecurityConfigurerAdapter {<\/p>\n<p>\/\/ Konfiguracja Spring Security do korzystania z mechanizmu uwierzytelniania Keycloak<br \/>\n@Autowired<br \/>\npublic void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {<br \/>\nauth.authenticationProvider(keycloakAuthenticationProvider());<br \/>\n}<\/p>\n<p>\/\/ Konfiguracja ustawie\u0144 HttpSecurity Spring Security<br \/>\n@Override<br \/>\nprotected void configure(HttpSecurity http) throws Exception {<br \/>\nsuper.configure(http);<br \/>\nhttp<br \/>\n.authorizeRequests()<br \/>\n.antMatchers(&#8222;\/public\/**&#8221;).permitAll()<br \/>\n.anyRequest().authenticated()<br \/>\n.and()<br \/>\n.logout().logoutUrl(&#8222;\/logout&#8221;).permitAll();<br \/>\n}<\/p>\n<p>\/\/ Inne metody konfiguracji Keycloak<br \/>\n\/\/ &#8230;<br \/>\n}<\/p>\n<\/div>\n<\/div>\n<p>W tym przyk\u0142adzie publiczne punkty ko\u0144cowe interfejsu API s\u0105 dost\u0119pne dla wszystkich, podczas gdy wszystkie inne punkty ko\u0144cowe wymagaj\u0105 uwierzytelniania. Punkt <code>\/logout<\/code> ko\u0144cowy jest r\u00f3wnie\u017c skonfigurowany tak, aby zezwala\u0142 u\u017cytkownikom na wylogowanie. <\/p>\n<p>Integruj\u0105c Keycloak z Spring Security, mo\u017cesz skorzysta\u0107 z solidnych funkcji zabezpiecze\u0144 oferowanych przez oba rozwi\u0105zania, aby skutecznie chroni\u0107 interfejsy API Spring Boot. Dzi\u0119ki tej konfiguracji interfejsy API b\u0119d\u0105 zabezpieczone za pomoc\u0105 protoko\u0142u OAuth2, a u\u017cytkownicy b\u0119d\u0105 mogli uzyska\u0107 do nich dost\u0119p za pomoc\u0105 funkcji logowania jednokrotnego udost\u0119pnianych przez Keycloak. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>W dzisiejszym \u015bwiecie zapewnienie bezpiecze\u0144stwa i w\u0142a\u015bciwego uwierzytelniania u\u017cytkownik\u00f3w jest kluczowym aspektem ka\u017cdej aplikacji internetowej. Integracja solidnego systemu uwierzytelniania i autoryzacji mo\u017ce by\u0107 czasoch\u0142onna i podatna na b\u0142\u0119dy. W tym miejscu przydaje si\u0119 Keycloak, rozwi\u0105zanie do zarz\u0105dzania to\u017csamo\u015bci\u0105 i dost\u0119pem (IAM) o otwartym kodzie \u017ar\u00f3d\u0142owym. W tym po\u015bcie na blogu przyjrzymy si\u0119, jak zintegrowa\u0107 Keycloak&#8230;<\/p>\n","protected":false},"author":12,"featured_media":23061,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"_acf_changed":false,"qubely_global_settings":"","qubely_interactions":"","_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[336],"tags":[373,374],"class_list":["post-19615","technical-blog","type-technical-blog","status-publish","format-standard","has-post-thumbnail","hentry","category-zarzadzanie-dostepem-do-tozsamosci","tag-keycloak-pl","tag-kontrola-dostepu-pl"],"acf":[],"aioseo_notices":[],"qubely_featured_image_url":{"full":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"landscape":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"portraits":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot-540x320.png",540,320,true],"thumbnail":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot-150x150.png",150,150,true],"medium":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot-300x157.png",300,157,true],"medium_large":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot-768x402.png",768,402,true],"large":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"1536x1536":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"2048x2048":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"qubely_landscape":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"qubely_portrait":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot-540x320.png",540,320,true],"qubely_thumbnail":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot-140x100.png",140,100,true]},"qubely_author":{"display_name":"Julia Dudek","author_link":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/"},"qubely_comment":0,"qubely_category":" <a href=\"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/\" rel=\"tag\">Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci<\/a>","qubely_excerpt":"W dzisiejszym \u015bwiecie zapewnienie bezpiecze\u0144stwa i w\u0142a\u015bciwego uwierzytelniania u\u017cytkownik\u00f3w jest kluczowym aspektem ka\u017cdej aplikacji internetowej. Integracja solidnego systemu uwierzytelniania i autoryzacji mo\u017ce by\u0107 czasoch\u0142onna i podatna na b\u0142\u0119dy. W tym miejscu przydaje si\u0119 Keycloak, rozwi\u0105zanie do zarz\u0105dzania to\u017csamo\u015bci\u0105 i dost\u0119pem (IAM) o otwartym kodzie \u017ar\u00f3d\u0142owym. W tym po\u015bcie na blogu przyjrzymy si\u0119, jak zintegrowa\u0107 Keycloak...","taxonomy_info":{"category":[{"value":336,"label":"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci"}],"post_tag":[{"value":373,"label":"Keycloak"},{"value":374,"label":"Kontrola dost\u0119pu"}]},"featured_image_src_large":["https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png",1000,523,false],"author_info":{"display_name":"Julia Dudek","author_link":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/"},"comment_info":0,"aioseo_head":"\n\t\t<!-- All in One SEO Pro 4.9.5.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Julia Dudek\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO Pro (AIOSEO) 4.9.5.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Inteca \u00bb IT&#039;s about business\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca\" \/>\n\t\t<meta property=\"og:description\" content=\"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t\t<meta property=\"og:image:height\" content=\"523\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-04-10T14:11:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-04-10T14:11:11+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#blogposting\",\"name\":\"Integracja Keycloak z aplikacjami Spring Boot \\u00bb Inteca\",\"headline\":\"Integracja Keycloak z aplikacjami Spring Boot\",\"author\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/author\\\/julia-dudek\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/inteca.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Integrating-Keycloak-with-Spring-Boot.png\",\"width\":1000,\"height\":523},\"datePublished\":\"2025-04-10T16:11:11+02:00\",\"dateModified\":\"2025-04-10T16:11:11+02:00\",\"inLanguage\":\"pl-PL\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#webpage\"},\"articleSection\":\"Zarz\\u0105dzanie dost\\u0119pem do to\\u017csamo\\u015bci, Keycloak, Kontrola dost\\u0119pu\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/inteca.com\\\/pl\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/#listItem\",\"name\":\"Technical blog\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/#listItem\",\"position\":2,\"name\":\"Technical blog\",\"item\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/category\\\/zarzadzanie-dostepem-do-tozsamosci\\\/#listItem\",\"name\":\"Zarz\\u0105dzanie dost\\u0119pem do to\\u017csamo\\u015bci\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/category\\\/zarzadzanie-dostepem-do-tozsamosci\\\/#listItem\",\"position\":3,\"name\":\"Zarz\\u0105dzanie dost\\u0119pem do to\\u017csamo\\u015bci\",\"item\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/category\\\/zarzadzanie-dostepem-do-tozsamosci\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#listItem\",\"name\":\"Integracja Keycloak z aplikacjami Spring Boot\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/#listItem\",\"name\":\"Technical blog\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#listItem\",\"position\":4,\"name\":\"Integracja Keycloak z aplikacjami Spring Boot\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/category\\\/zarzadzanie-dostepem-do-tozsamosci\\\/#listItem\",\"name\":\"Zarz\\u0105dzanie dost\\u0119pem do to\\u017csamo\\u015bci\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#organization\",\"name\":\"Inteca Sp. z o.o.\",\"description\":\"Inteca is a specialized enterprise platform provider and Red Hat Advanced Partner. We design, implement, and operate mission-critical platforms based on Keycloak, Kafka, OpenShift, and Nuxeo enhanced with AI automation. We work in banking, insurance, and government sectors across the EU and the US.\",\"url\":\"https:\\\/\\\/inteca.com\\\/pl\\\/\",\"email\":\"contact@inteca.com\",\"telephone\":\"+48717156091\",\"foundingDate\":\"2011-04-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"value\":50},\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/inteca.com\\\/wp-content\\\/uploads\\\/2022\\\/01\\\/Inteca_logo_pion_tagline_JasneTlo.png\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#organizationLogo\",\"width\":288,\"height\":344},\"image\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/inteca\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/author\\\/julia-dudek\\\/#author\",\"url\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/author\\\/julia-dudek\\\/\",\"name\":\"Julia Dudek\",\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dec24dff8b31dadf67313727da143fea89c31773ad4bf9d8377ba98eb20fae29?s=96&d=blank&r=g\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#webpage\",\"url\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/\",\"name\":\"Integracja Keycloak z aplikacjami Spring Boot \\u00bb Inteca\",\"description\":\"Dowiedz si\\u0119, jak bezproblemowo zintegrowa\\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\\u0105zanie IAM typu open source, kt\\u00f3re upraszcza uwierzytelnianie i autoryzacj\\u0119 u\\u017cytkownik\\u00f3w.\",\"inLanguage\":\"pl-PL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/author\\\/julia-dudek\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog\\\/author\\\/julia-dudek\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/inteca.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/Integrating-Keycloak-with-Spring-Boot.png\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#mainImage\",\"width\":1000,\"height\":523},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/blog-technologiczny\\\/integracja-keycloak-z-aplikacjami-spring-boot\\\/#mainImage\"},\"datePublished\":\"2025-04-10T16:11:11+02:00\",\"dateModified\":\"2025-04-10T16:11:11+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#website\",\"url\":\"https:\\\/\\\/inteca.com\\\/pl\\\/\",\"name\":\"Inteca\",\"alternateName\":\"Inteca\",\"description\":\"IT's about business\",\"inLanguage\":\"pl-PL\",\"publisher\":{\"@id\":\"https:\\\/\\\/inteca.com\\\/pl\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO Pro -->\r\n\t\t<title>Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca<\/title>\n\n","aioseo_head_json":{"title":"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca","description":"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.","canonical_url":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#blogposting","name":"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca","headline":"Integracja Keycloak z aplikacjami Spring Boot","author":{"@id":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/#author"},"publisher":{"@id":"https:\/\/inteca.com\/pl\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png","width":1000,"height":523},"datePublished":"2025-04-10T16:11:11+02:00","dateModified":"2025-04-10T16:11:11+02:00","inLanguage":"pl-PL","mainEntityOfPage":{"@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#webpage"},"isPartOf":{"@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#webpage"},"articleSection":"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci, Keycloak, Kontrola dost\u0119pu"},{"@type":"BreadcrumbList","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/#listItem","position":1,"name":"Home","item":"https:\/\/inteca.com\/pl\/","nextItem":{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/#listItem","name":"Technical blog"}},{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/#listItem","position":2,"name":"Technical blog","item":"https:\/\/inteca.com\/pl\/blog-technologiczny\/","nextItem":{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/#listItem","name":"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci"},"previousItem":{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/#listItem","position":3,"name":"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci","item":"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/","nextItem":{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#listItem","name":"Integracja Keycloak z aplikacjami Spring Boot"},"previousItem":{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/#listItem","name":"Technical blog"}},{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#listItem","position":4,"name":"Integracja Keycloak z aplikacjami Spring Boot","previousItem":{"@type":"ListItem","@id":"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/#listItem","name":"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci"}}]},{"@type":"Organization","@id":"https:\/\/inteca.com\/pl\/#organization","name":"Inteca Sp. z o.o.","description":"Inteca is a specialized enterprise platform provider and Red Hat Advanced Partner. We design, implement, and operate mission-critical platforms based on Keycloak, Kafka, OpenShift, and Nuxeo enhanced with AI automation. We work in banking, insurance, and government sectors across the EU and the US.","url":"https:\/\/inteca.com\/pl\/","email":"contact@inteca.com","telephone":"+48717156091","foundingDate":"2011-04-01","numberOfEmployees":{"@type":"QuantitativeValue","value":50},"logo":{"@type":"ImageObject","url":"https:\/\/inteca.com\/wp-content\/uploads\/2022\/01\/Inteca_logo_pion_tagline_JasneTlo.png","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#organizationLogo","width":288,"height":344},"image":{"@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#organizationLogo"},"sameAs":["https:\/\/pl.linkedin.com\/company\/inteca"]},{"@type":"Person","@id":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/#author","url":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/","name":"Julia Dudek","image":{"@type":"ImageObject","url":"https:\/\/secure.gravatar.com\/avatar\/dec24dff8b31dadf67313727da143fea89c31773ad4bf9d8377ba98eb20fae29?s=96&d=blank&r=g"}},{"@type":"WebPage","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#webpage","url":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/","name":"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca","description":"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.","inLanguage":"pl-PL","isPartOf":{"@id":"https:\/\/inteca.com\/pl\/#website"},"breadcrumb":{"@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#breadcrumblist"},"author":{"@id":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/#author"},"creator":{"@id":"https:\/\/inteca.com\/pl\/blog\/author\/julia-dudek\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png","@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#mainImage","width":1000,"height":523},"primaryImageOfPage":{"@id":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/#mainImage"},"datePublished":"2025-04-10T16:11:11+02:00","dateModified":"2025-04-10T16:11:11+02:00"},{"@type":"WebSite","@id":"https:\/\/inteca.com\/pl\/#website","url":"https:\/\/inteca.com\/pl\/","name":"Inteca","alternateName":"Inteca","description":"IT's about business","inLanguage":"pl-PL","publisher":{"@id":"https:\/\/inteca.com\/pl\/#organization"}}]},"og:locale":"pl_PL","og:site_name":"Inteca \u00bb IT's about business","og:type":"article","og:title":"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca","og:description":"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.","og:url":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/","og:image":"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png","og:image:secure_url":"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png","og:image:width":1000,"og:image:height":523,"article:published_time":"2025-04-10T14:11:11+00:00","article:modified_time":"2025-04-10T14:11:11+00:00","twitter:card":"summary_large_image","twitter:title":"Integracja Keycloak z aplikacjami Spring Boot \u00bb Inteca","twitter:description":"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.","twitter:image":"https:\/\/inteca.com\/wp-content\/uploads\/2022\/11\/Integrating-Keycloak-with-Spring-Boot.png"},"aioseo_meta_data":{"post_id":"19615","title":null,"description":"Dowiedz si\u0119, jak bezproblemowo zintegrowa\u0107 Keycloak ze Spring Boot! Keycloak to rozwi\u0105zanie IAM typu open source, kt\u00f3re upraszcza uwierzytelnianie i autoryzacj\u0119 u\u017cytkownik\u00f3w.","keywords":null,"keyphrases":{"focus":{"keyphrase":"Keycloak","score":85,"analysis":{"keyphraseInTitle":{"score":9,"maxScore":9,"error":0},"keyphraseInDescription":{"score":9,"maxScore":9,"error":0},"keyphraseLength":{"score":9,"maxScore":9,"error":0,"length":1},"keyphraseInURL":{"score":5,"maxScore":5,"error":0},"keyphraseInIntroduction":{"score":9,"maxScore":9,"error":0},"keyphraseInSubHeadings":{"score":9,"maxScore":9,"error":0},"keyphraseInImageAlt":[],"keywordDensity":{"type":"high","score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":true,"reviewed_by":"0","open_ai":"{\"title\":{\"suggestions\":[],\"usage\":0},\"description\":{\"suggestions\":[\"Learn how to seamlessly integrate Keycloak, an open-source IAM solution, with Spring Boot applications to handle authentication and authorization. Keycloak offers out-of-the-box support for various authentication protocols and features, including SSO, user federation, and fine-grained authorization. With Keycloak configured, you can secure your Spring Boot application using Keycloak's authentication and authorization features and enable SSO for multiple applications with minimal configuration.\",\"Learn how to integrate Keycloak with Spring Boot applications seamlessly! Keycloak is an open-source IAM solution that simplifies user authentication and authorization. This blog post explores how to set up Keycloak and configure Spring Boot to secure REST endpoints and enable Single Sign-On (SSO).\",\"Learn how to integrate Keycloak, an open-source Identity and Access Management solution, with Spring Boot to handle authentication and authorization seamlessly. Keycloak provides out-of-the-box support for various authentication protocols, user-friendly administration console, and fine-grained authorization. With SSO enabled, it's easy to access multiple applications with a single set of login credentials.\",\"Learn how to integrate Keycloak with Spring Boot applications for seamless authentication and authorization. Keycloak is an open-source IAM solution that supports various authentication protocols such as OAuth2.0 and SAML 2.0. Spring Boot offers features like auto-configuration and embedded web server support for easy application development. Secure REST endpoints, access user information, and enable Single Sign-On (SSO) effortlessly with Keycloak.\",\"Learn how to seamlessly handle authentication and authorization in your Spring Boot applications by integrating Keycloak, an open-source IAM solution. Keycloak offers out-of-the-box support for various authentication protocols, Single Sign-On, user federation, and fine-grained authorization. Follow our step-by-step guide to secure your REST endpoints and access user information easily. Enable SSO for your Spring Boot applications with minimal configuration and ensure correct logout handling.\"],\"usage\":1457}}","ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2025-04-10 14:11:11","updated":"2025-10-26 13:59:22"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/inteca.com\/pl\/\" title=\"Home\">Home<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/inteca.com\/pl\/blog-technologiczny\/\" title=\"Technical blog\">Technical blog<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t<a href=\"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/\" title=\"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci\">Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci<\/a>\n<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\tIntegracja Keycloak z aplikacjami Spring Boot\n<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/inteca.com\/pl\/"},{"label":"Technical blog","link":"https:\/\/inteca.com\/pl\/blog-technologiczny\/"},{"label":"Zarz\u0105dzanie dost\u0119pem do to\u017csamo\u015bci","link":"https:\/\/inteca.com\/pl\/blog\/category\/zarzadzanie-dostepem-do-tozsamosci\/"},{"label":"Integracja Keycloak z aplikacjami Spring Boot","link":"https:\/\/inteca.com\/pl\/blog-technologiczny\/integracja-keycloak-z-aplikacjami-spring-boot\/"}],"_links":{"self":[{"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/technical-blog\/19615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/technical-blog"}],"about":[{"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/types\/technical-blog"}],"author":[{"embeddable":true,"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/comments?post=19615"}],"version-history":[{"count":0,"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/technical-blog\/19615\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/media\/23061"}],"wp:attachment":[{"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/media?parent=19615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/categories?post=19615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inteca.com\/pl\/wp-json\/wp\/v2\/tags?post=19615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}