<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>ustawienia - Inero Software - Rozwiązania IT i Konsulting</title>
	<atom:link href="https://inero-software.com/pl/tag/ustawienia/feed/" rel="self" type="application/rss+xml" />
	<link>https://inero-software.com/pl/tag/ustawienia/</link>
	<description>Tworzymy cyfrowe innowacje</description>
	<lastBuildDate>Wed, 06 Nov 2024 07:27:37 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://inero-software.com/wp-content/uploads/2018/11/inero-logo-favicon.png</url>
	<title>ustawienia - Inero Software - Rozwiązania IT i Konsulting</title>
	<link>https://inero-software.com/pl/tag/ustawienia/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">153509928</site>	<item>
		<title>Jak tworzyć i stosować własne motywy w Keycloak?</title>
		<link>https://inero-software.com/pl/jak-tworzyc-i-stosowac-wlasne-motywy-w-keycloak/</link>
		
		<dc:creator><![CDATA[Marceli Formela]]></dc:creator>
		<pubDate>Mon, 02 Sep 2024 12:59:16 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[keycloak]]></category>
		<category><![CDATA[motyw]]></category>
		<category><![CDATA[ustawienia]]></category>
		<category><![CDATA[wygląd]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=6079</guid>

					<description><![CDATA[<p>&#160;</p>
<p>Artykuł <a href="https://inero-software.com/pl/jak-tworzyc-i-stosowac-wlasne-motywy-w-keycloak/">Jak tworzyć i stosować własne motywy w Keycloak?</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>&nbsp;</p>
<div class="row"><div class="col-sm-1"></div><div class="col-sm-10">
<h4>W naszym ostatnim poście (<a href="https://inero-software.com/pl/integracja-keycloak-i-lightweight-directory-access-protocol/">Integracja Keycloak i Lightweight Directory Access Protocol</a>) omówiliśmy to, jak łatwo importować użytkowników do naszego serwera Keycloak z innego systemu za pomocą protokołu LDAP. Tym razem przyjrzymy się bliżej wizualnemu aspektowi tego rozwiązania, dostosowując arkusz stylów naszej aplikacji.</h4>
<h3></h3>
<h3>Wbudowane motywy</h3>
<p>Keycloak oferuje wiele możliwości dostosowywania interfejsu użytkownika i wyglądu za pomocą tzw. „motywów”. Ich dostosowywanie  pozwala nam dopasować wygląd i &#8222;user experience&#8221; aplikacji do określonych potrzeb, wzmacniając przy tym wizualną tożsamość marki.</p>
<p>Keycloak zawiera kilka wbudowanych motywów dołączonych do swojej dystrybucji. Dostępne motywy obejmują motyw bazowy, który dostarcza szablony HTML i zestawy komunikatów, z których korzystają wszystkie inne motywy, w tym również te niestandardowe. Motyw keycloak zawiera obrazy i arkusze stylów do ulepszania CSS stron i jest używany domyślnie, jeśli nie dostarczono niestandardowego motywu. Dodatkowo, motyw keycloak.v2 to motyw oparty na React, zaprojektowany dla nowego Admin Console, podczas gdy starsza wersja konsoli zostanie wycofana. Modyfikowanie istniejących motywów nie jest zalecane; zamiast tego preferowane jest utworzenie nowego motywu, który rozszerza jeden z istniejących.</p>
<p>Dla pełnej personalizacji, idealnym rozwiązaniem jest skopiowanie zawartości z folderu <em>base</em>, ale w przypadku częściowej modyfikacji bardziej praktyczne jest rozpoczęcie od zawartości z katalogu <em>keycloak</em>. Jak już wspomnieliśmy, do nowego niestandardowego folderu powinny zostać dodane tylko te części motywu, które wymagają nadpisania.</p>
<p>&nbsp;</p>
<h3>Szablony FreeMarker</h3>
<p><em>Motywy FTL</em> w Keycloak odnoszą się do szablonów napisanych w języku <em>Freemarker Template Language</em>, które definiują wygląd i wrażenia z różnych stron i wiadomości e-mail w Keycloak. Te motywy pozwalają na dostosowanie wszystkiego, od stron logowania, przez komunikaty o błędach, po interfejsy zarządzania kontem.</p>
<p>Motywy w Keycloak są zazwyczaj zorganizowane w cztery główne kategorie:</p>
<p style="padding-left: 40px;">&#8211; <strong>Login</strong>: Dostosowuje wygląd stron logowania, rejestracji i resetowania hasła.<br />
&#8211; <strong>Account</strong>: Modyfikuje interfejs zarządzania kontem użytkownika.<br />
&#8211; <strong>Email</strong>: Dostosowuje treść i wygląd wiadomości e-mail wysyłanych przez Keycloak (np. e-maile weryfikacyjne, e-maile resetowania hasła).<br />
&#8211; <strong>Admin</strong>: Pozwala na dostosowanie konsoli administracyjnej Keycloak.</p>
<p><strong>Przyjrzyjmy się kilku istotnym szablonom:</strong></p>
<p style="padding-left: 40px;">&#8211; <strong>login.ftl</strong> &#8211; najczęściej dostosowywany szablon w Keycloak. Odpowiada za renderowanie strony logowania, na której użytkownicy wprowadzają swoje dane uwierzytelniające (nazwa użytkownika/adres e-mail i hasło), aby uzyskać dostęp do Twojej aplikacji.<br />
&#8211; <strong>register.ftl</strong> &#8211; używany na stronie rejestracji, gdzie nowi użytkownicy mogą utworzyć konto.<br />
&#8211; <strong>login-reset-password.ftl</strong> &#8211; używany, gdy użytkownik inicjuje proces resetowania hasła.<br />
&#8211; <strong>login-update-password.ftl</strong> &#8211; używany, gdy użytkownik musi zaktualizować swoje hasło, albo po udanym resetowaniu hasła, albo ze względu na wymóg polityki (np. okresowe zmiany hasła).</p>
<h3></h3>
<h3>Właściwości motywu</h3>
<p>Oprócz szablonów HTML, zestawów komunikatów, obrazów i arkuszy stylów, motyw Keycloak zawiera jeszcze kilka innych elementów, takich jak właściwości motywu. Każdy typ motywu posiada własny plik konfiguracyjny. Na przykład, rozważmy plik <strong>theme.properties</strong> z motywu logowania:</p>
<pre><i><span style="font-weight: 400;">parent=keycloak</span></i>
<i><span style="font-weight: 400;">import=common/keycloak</span></i>

<i><span style="font-weight: 400;">styles=css/login.css css/tile.css</span></i>
<i><span style="font-weight: 400;">stylesCommon=web_modules/@fortawesome/fontawesome-free/css/icons/all.css 
web_modules/@patternfly/react-core/dist/styles/base.css 
web_modules/@patternfly/react-core/dist/styles/app.css 
node_modules/patternfly/dist/css/patternfly.min.css 
node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css</span></i></pre>
<p>Ten plik pokazuje, że motyw dziedziczy po motywie bazowym, aby korzystać z jego szablonów HTML i zestawów komunikatów. Importuje również motyw <em>common</em>, aby włączyć dodatkowe style. Ponadto, motyw określa własny arkusz stylów, <strong>css/login.css</strong>.</p>
<p>&nbsp;</p>
<h3><strong>Wiadomości i i18n</strong></h3>
<p>Keycloak wspiera internacjonalizację w motywach, pozwalając na tworzenie plików właściwości specyficznych dla danego języka, które przechowują tłumaczenia tekstów używanych w szablonach. Te pliki, nazwane<strong> messages_&lt;locale&gt;.properties</strong>, zawierają pary klucz-wartość, gdzie klucz reprezentuje element tekstowy, a wartość to jego tłumaczenie na docelowy język. W naszych szablonach FTL odwołujemy się do tych kluczy za pomocą dyrektywy <strong>${msg()}</strong>, co pozwala naszej aplikacji automatycznie wyświetlać odpowiednie tłumaczenie.</p>
<p>Powinno to odnosić się do języka aktualnie wybranego przez użytkownika. Keycloak określa język na podstawie ustawień przeglądarki, pod warunkiem że język ten jest skonfigurowany w systemie.</p>
<p>Na przykład na stronie logowania można dostarczyć tłumaczenie nagłówka „<em>Zaloguj się na swoje konto</em>,” który domyślnie może nie być przetłumaczony na języki takie jak niderlandzki czy hiszpański. Aby to zrobić, można edytować pole <strong>loginAccountTitle</strong> w pliku <em>messages</em>, dodając odpowiednie tłumaczenie dla każdego języka. Dzięki temu, gdy użytkownicy wybiorą swój język, zobaczą przetłumaczoną wersję w interfejsie logowania.</p>
<pre><i><span style="font-weight: 400;">messages.nl</span></i>
<i><span style="font-weight: 400;">loginAccountTitle=Inloggen</span></i>

<i><span style="font-weight: 400;">messages.es</span></i>
<i><span style="font-weight: 400;">loginAccountTitle=Iniciar sesi\u00F3n</span></i>

<i><span style="font-weight: 400;">messages.en</span></i>
<i><span style="font-weight: 400;">loginAccountTitle=Sign In</span></i></pre>
<p>Ostatnim krokiem jest skonfigurowanie ustawień internacjonalizacji dla Twojej domeny zgodnie z dostarczonym zrzutem ekranu. To zapewni, że dodane tłumaczenia, takie jak dla pola l<strong>oginAccountTitle</strong>, będą prawidłowo stosowane w zależności od wybranego przez użytkownika języka.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-6061 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/08/1-300x169.png" alt="" width="604" height="340" srcset="https://inero-software.com/wp-content/uploads/2024/08/1-300x169.png 300w, https://inero-software.com/wp-content/uploads/2024/08/1-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/1-768x432.png 768w, https://inero-software.com/wp-content/uploads/2024/08/1-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2024/08/1-533x300.png 533w, https://inero-software.com/wp-content/uploads/2024/08/1.png 1920w" sizes="(max-width: 604px) 100vw, 604px" /></p>
<p>Oryginalna wersja angielska oraz ostateczny wynik dla wersji hiszpańskiej i niderlandzkiej są pokazane poniżej.</p>
<p><img decoding="async" class="alignnone wp-image-6068 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/08/8-300x165.png" alt="" width="478" height="263" srcset="https://inero-software.com/wp-content/uploads/2024/08/8-300x165.png 300w, https://inero-software.com/wp-content/uploads/2024/08/8-1030x565.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/8-768x421.png 768w, https://inero-software.com/wp-content/uploads/2024/08/8-547x300.png 547w, https://inero-software.com/wp-content/uploads/2024/08/8.png 1037w" sizes="(max-width: 478px) 100vw, 478px" /></p>
<p><img decoding="async" class=" wp-image-6069 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/08/9-300x159.png" alt="" width="525" height="278" srcset="https://inero-software.com/wp-content/uploads/2024/08/9-300x159.png 300w, https://inero-software.com/wp-content/uploads/2024/08/9-1030x546.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/9-768x407.png 768w, https://inero-software.com/wp-content/uploads/2024/08/9-566x300.png 566w, https://inero-software.com/wp-content/uploads/2024/08/9.png 1053w" sizes="(max-width: 525px) 100vw, 525px" /></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6070 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/09/5-300x285.png" alt="" width="524" height="497" srcset="https://inero-software.com/wp-content/uploads/2024/09/5-300x285.png 300w, https://inero-software.com/wp-content/uploads/2024/09/5-768x730.png 768w, https://inero-software.com/wp-content/uploads/2024/09/5-316x300.png 316w, https://inero-software.com/wp-content/uploads/2024/09/5.png 997w" sizes="(max-width: 524px) 100vw, 524px" /></p>
<h3><strong>Dostosowywanie naszego motywu</strong></h3>
<p>Przed rozpoczęciem dostosowywania motywu upewnij się, że masz działającą instancję Keycloak. Będziesz potrzebować dostępu do plików serwera Keycloak oraz uprawnień administracyjnych, aby zastosować motyw. Jeśli uruchamiasz Keycloak w kontenerze Docker, możesz użyć montowania woluminu, aby uzyskać dostęp do plików motywu na swoim lokalnym komputerze.</p>
<p>Utwórz strukturę katalogów dla swojego niestandardowego motywu, postępując zgodnie z poniższym przykładem. Domyślne pliki motywu znajdują się w dystrybucji serwera Keycloak w katalogu <strong>themes/keycloak/login</strong>. Aby rozpocząć, skopiuj te domyślne pliki motywu z dystrybucji Keycloak do swojego niestandardowego katalogu motywu.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6066 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/08/6-268x300.png" alt="" width="375" height="420" srcset="https://inero-software.com/wp-content/uploads/2024/08/6-268x300.png 268w, https://inero-software.com/wp-content/uploads/2024/08/6-921x1030.png 921w, https://inero-software.com/wp-content/uploads/2024/08/6-768x859.png 768w, https://inero-software.com/wp-content/uploads/2024/08/6.png 966w" sizes="(max-width: 375px) 100vw, 375px" /></p>
<p>Zaczniemy od podstawowej strony logowania, jak pokazano poniżej:</p>
<p><img loading="lazy" decoding="async" class="wp-image-6063 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/08/3-300x169.png" alt="" width="737" height="415" srcset="https://inero-software.com/wp-content/uploads/2024/08/3-300x169.png 300w, https://inero-software.com/wp-content/uploads/2024/08/3-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/3-768x432.png 768w, https://inero-software.com/wp-content/uploads/2024/08/3-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2024/08/3-533x300.png 533w, https://inero-software.com/wp-content/uploads/2024/08/3.png 1920w" sizes="(max-width: 737px) 100vw, 737px" /></p>
<p>&nbsp;</p>
<p>Zlokalizuj i edytuj plik CSS, który kontroluje stylizację strony logowania. Zazwyczaj nosi on nazwę <strong>login.css</strong> i znajduje się w katalogu <strong>resources/css</strong> w Twoim niestandardowym motywie. Teraz możemy zmienić właściwość <strong>background</strong> i dodać własny plik <strong>.png</strong>.</p>
<pre><i><span style="font-weight: 400;">.login-pf-page::before {</span></i>
<i><span style="font-weight: 400;">content: "";</span></i>
<i><span style="font-weight: 400;">position: absolute;</span></i>
<i><span style="font-weight: 400;">top: 0;</span></i>
<i><span style="font-weight: 400;">left: 0;</span></i>
<i><span style="font-weight: 400;">width: 100%;</span></i>
<i><span style="font-weight: 400;">height: 100%;  </span></i>
<i><span style="font-weight: 400;">opacity: 1;</span></i>
<b><i>background: rgba(255, 255, 255, 0.4) url("../img/fb-background.png") no-repeat;</i></b>
<i><span style="font-weight: 400;">background-size: cover;</span></i>
<i><span style="font-weight: 400;">    </span></i> <i><span style="font-weight: 400;">z-index: -1;</span></i>
<i><span style="font-weight: 400;">}</span></i></pre>
<p>Oprócz zmiany tła, możemy również zmodyfikować kolor górnej krawędzi ekranu logowania oraz kolor przycisku logowania. Następnie możemy dodać niestandardowe logo. Można to zrobić, modyfikując następujące klasy:</p>
<pre><i><span style="font-weight: 400;">pf-m-primary {</span></i>
<i><span style="font-weight: 400;">color: black !important;</span></i>
<b><i>background-color: #B646AE !important;</i></b>
<i><span style="font-weight: 400;">}
</span></i>
<i><span style="font-weight: 400;">.card-pf {</span></i>
<i><span style="font-weight: 400;">margin: 0 auto;</span></i>
<i><span style="font-weight: 400;">box-shadow: var(--pf-global--BoxShadow--lg);</span></i>
<i><span style="font-weight: 400;">padding: 0 20px;</span></i>
<i><span style="font-weight: 400;">max-width: 500px;</span></i>
<i><span style="font-weight: 400;">border-top: 4px solid;</span></i>
<b><i>border-color: #B646AE;</i></b>
<i><span style="font-weight: 400;">background-color: #fff;</span></i>
<i><span style="font-weight: 400;">}</span></i>

<i><span style="font-weight: 400;">#kc-header-wrapper::before {</span></i>
<i><span style="font-weight: 400;">content: "";</span></i>
<i><span style="font-weight: 400;">position: relative;</span></i>
<i><span style="font-weight: 400;">margin: auto;</span></i>
<i><span style="font-weight: 400;">display: block;</span></i>
<i><span style="font-weight: 400;">width: 200px;</span></i>
<b><i>background: url("../img/fb-logo.png") no-repeat;</i></b>
<i><span style="font-weight: 400;">background-size: auto;</span></i>
<i><span style="font-weight: 400;">}</span></i></pre>
<p>Ostatnim krokiem będzie aktywacja niestandardowego motywu w konsoli administratora dla konkretnej domeny.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6062 aligncenter" src="https://inero-software.com/wp-content/uploads/2024/08/2-300x149.png" alt="" width="587" height="292" srcset="https://inero-software.com/wp-content/uploads/2024/08/2-300x149.png 300w, https://inero-software.com/wp-content/uploads/2024/08/2-1030x512.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/2-768x382.png 768w, https://inero-software.com/wp-content/uploads/2024/08/2-1536x764.png 1536w, https://inero-software.com/wp-content/uploads/2024/08/2-603x300.png 603w, https://inero-software.com/wp-content/uploads/2024/08/2.png 1920w" sizes="(max-width: 587px) 100vw, 587px" /></p>
<p>Po wprowadzeniu powyższych zmian, ostateczny efekt powinien wyglądać następująco:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-6067 size-full" src="https://inero-software.com/wp-content/uploads/2024/08/7.png" alt="" width="1920" height="1080" srcset="https://inero-software.com/wp-content/uploads/2024/08/7.png 1920w, https://inero-software.com/wp-content/uploads/2024/08/7-300x169.png 300w, https://inero-software.com/wp-content/uploads/2024/08/7-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/7-768x432.png 768w, https://inero-software.com/wp-content/uploads/2024/08/7-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2024/08/7-533x300.png 533w" sizes="(max-width: 1920px) 100vw, 1920px" /></p>
<p>Ostateczny rezultat może się jednak różnić w zależności od użycia różnych plików graficznych i definicji kolorów. Dostosowując te elementy, możesz łatwo osiągnąć unikalny wygląd, który będzie zgodny z Twoją marką i preferencjami w zakresie designu. Przy użyciu różnych zasobów może to wyglądać tak:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-6064 size-full" src="https://inero-software.com/wp-content/uploads/2024/08/4.png" alt="" width="1920" height="1080" srcset="https://inero-software.com/wp-content/uploads/2024/08/4.png 1920w, https://inero-software.com/wp-content/uploads/2024/08/4-300x169.png 300w, https://inero-software.com/wp-content/uploads/2024/08/4-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2024/08/4-768x432.png 768w, https://inero-software.com/wp-content/uploads/2024/08/4-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2024/08/4-533x300.png 533w" sizes="(max-width: 1920px) 100vw, 1920px" /></p>
<p>Jak widać, dostosowywanie motywu Keycloak jest dość proste.</p>
<p>Do tej pory omówiliśmy, jak dostosować motywy Keycloak poprzez modyfikację elementów wizualnych. Przedstawiliśmy podstawy wbudowanych motywów Keycloak, które obejmują opcje dostosowywania strony logowania. W większości przypadków proces ten polega na skopiowaniu domyślnych plików motywu, modyfikacji CSS w celu wprowadzenia zmian w stylizacji, takich jak obrazy tła i kolory przycisków, oraz edycji szablonów FreeMarker w celu dostosowania układu. Dodatkowo, omówiliśmy, jak używać pliku <strong>theme.properties</strong> do konfiguracji niestandardowego motywu. Teraz mamy kilka podstawowych narzędzi, aby zmodyfikować wygląd Keycloak i lepiej dostosować go do potrzeb marki oraz użytkowników.</p>
<p>&nbsp;</p>
<h3>Podsumowanie</h3>
<p>Możesz w pełni dostosować stronę logowania, aby upewnić się, że nie przypomina ona domyślnego motywu Keycloak. To nie tylko poprawia doświadczenie użytkownika, ale także pomaga użytkownikom łatwiej odróżnić autentyczną stronę logowania od potencjalnych prób <em>phishingu</em>.</p>
<p>Keycloak umożliwia również dostosowanie treści i układu wiadomości e-mail (np. szablonów resetowania hasła). Tworząc unikalne, markowe treści, możesz pomóc użytkownikom rozpoznawać autentyczne prośby o resetowanie hasła, zmniejszając ryzyko stania się ofiarą ataków phishingowych, które naśladują takie wiadomości.</p>
<p>Poza wizualną personalizacją, motywy wspierają internacjonalizację, co pozwala na zapewnienie użytkownikom spójnych wrażeń w ich rodzimym języku. Może to obejmować tłumaczenie wszystkich tekstów na stronach logowania oraz w wiadomościach e-mail na odpowiedni język, co zwiększa użyteczność dla globalnych użytkowników.</p>
<p>Ogólnie rzecz biorąc, dostosowywanie motywów oferuje szerokie możliwości poprawy doświadczenia użytkownika i bezpieczeństwa Twojego systemu IAM.</p>
<h3>Czy potrzebujesz pomocy we wdrożeniu, aktualizacji lub szkolenia z Keycloak? Skontaktuj się ze mną.</h3>
<p><span style="font-size: 8.0pt; font-family: 'Calibri',sans-serif; color: black;">             <img loading="lazy" decoding="async" class="size-medium wp-image-5903 alignleft" src="https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-300x300.png" alt="" width="300" height="300" srcset="https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-300x300.png 300w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-1030x1030.png 1030w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-768x768.png 768w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-50x50.png 50w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-512x512.png 512w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1-1024x1024.png 1024w, https://inero-software.com/wp-content/uploads/2024/06/Andrzej-Chybicki-PhD-Eng.-1.png 1200w" sizes="(max-width: 300px) 100vw, 300px" /></span></p>
<p><strong>Andrzej Chybicki </strong></p>
<p>CEO, Inero Software Sp. z o. o.<br />
@ andy@inero-software.com<br />
Tel: +48 695 875 588</p>
<p><a href="https://www.linkedin.com/in/andrzej-chybicki/"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-5897" src="https://inero-software.com/wp-content/uploads/2024/06/logo-linkedin.png" alt="" width="100" height="100" srcset="https://inero-software.com/wp-content/uploads/2024/06/logo-linkedin.png 100w, https://inero-software.com/wp-content/uploads/2024/06/logo-linkedin-80x80.png 80w, https://inero-software.com/wp-content/uploads/2024/06/logo-linkedin-75x75.png 75w, https://inero-software.com/wp-content/uploads/2024/06/logo-linkedin-50x50.png 50w" sizes="(max-width: 100px) 100vw, 100px" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p></p></div><div class="col-sm-1"></div></div>
<p>Artykuł <a href="https://inero-software.com/pl/jak-tworzyc-i-stosowac-wlasne-motywy-w-keycloak/">Jak tworzyć i stosować własne motywy w Keycloak?</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6079</post-id>	</item>
	</channel>
</rss>
