<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://178.140.10.58:8080/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://178.140.10.58:8080/feed.php">
        <title>Библиотека знаний - software:sso</title>
        <description>Заметки IT программиста</description>
        <link>http://178.140.10.58:8080/</link>
        <image rdf:resource="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-16T23:31:15+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:sso:goauthentik"/>
                <rdf:li rdf:resource="http://178.140.10.58:8080/doku.php?id=software:sso:keycloak"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Библиотека знаний</title>
        <link>http://178.140.10.58:8080/</link>
        <url>http://178.140.10.58:8080/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:sso:goauthentik">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-05T17:12:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Authentik</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:sso:goauthentik</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:sso&amp;amp;do=showtag&amp;amp;tag=%5Bsso&quot; class=&quot;wikilink1&quot; title=&quot;tag:sso&quot; rel=&quot;tag&quot;&gt;[sso&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:keycloak&amp;amp;do=showtag&amp;amp;tag=keycloak%5D&quot; class=&quot;wikilink1&quot; title=&quot;tag:keycloak&quot; rel=&quot;tag&quot;&gt;keycloak]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;authentik&quot;&gt;Authentik&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Authentik - это провайдер аутентификации с открытым исходным кодом, который отличается гибкостью и универсальностью, поддерживая широкий набор протоколов.
&lt;/p&gt;

&lt;p&gt;
При развертывании приложений в домашней лаборатории вы можете столкнуться с тем, что некоторые из них вовсе не поддерживают аутентификацию либо поддерживают базовую в которой могут иметься уязвимости. Так же малое количество сервисов из коробки поддерживает 2FA (двухфакторная аутентификация). Помимо этого для каждого сервиса вам приходится придумывать отдельно логин и пароль, что может запутать когда этих сервисов у вас много. Выход из всего этого есть и это - Authentik.
&lt;/p&gt;

&lt;p&gt;
Технология единого входа (Single sign-on SSO) — метод аутентификации, который позволяет пользователям безопасно аутентифицироваться сразу в нескольких приложениях и сайтах, используя один набор учетных данных.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Authentik&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;authentik&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;25-1570&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;docker-composeyml&quot;&gt;docker-compose.yml&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code yaml&quot;&gt;&lt;span class=&quot;co4&quot;&gt;services&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
  postgres&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;## аусентик использует PG как основную БД&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;postgres:16-alpine&lt;span class=&quot;co3&quot;&gt;
    container_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;postgres&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;5432:5432&amp;quot;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      POSTGRES_USER&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik&lt;span class=&quot;co3&quot;&gt;
      POSTGRES_PASSWORD&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;password&lt;span class=&quot;co3&quot;&gt;
      POSTGRES_DB&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik_demo
&lt;span class=&quot;co4&quot;&gt;
  redis&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;redis:alpine&lt;span class=&quot;co3&quot;&gt;
    container_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;redis&lt;span class=&quot;co3&quot;&gt;
    restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;always&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;6379:6379&amp;quot;&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
    command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;--requirepass authentik&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;
  server&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;ghcr.io/goauthentik/server:2024.6.3&lt;span class=&quot;co3&quot;&gt;
    restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unless-stopped&lt;span class=&quot;co3&quot;&gt;
    command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;server&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__HOST&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;mailhog&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__PORT&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1025&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__USE_TLS&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;false&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__USE_SSL&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;false&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__FROM&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik@localhost&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_REDIS__HOST&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;redis&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_REDIS__PASSWORD&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__HOST&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;postgres&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__USER&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__NAME&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik_demo&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__PASSWORD&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;password&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_SECRET_KEY&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;auth &lt;span class=&quot;co1&quot;&gt;# super secret key&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_LOG_LEVEL&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;trace&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;9005:9000&amp;quot;&lt;/span&gt;
      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;9443:9443&amp;quot;&lt;/span&gt;&lt;span class=&quot;co4&quot;&gt;
    depends_on&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - postgres
      - redis
&lt;span class=&quot;co4&quot;&gt;
  worker&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;ghcr.io/goauthentik/server:2024.6.3&lt;span class=&quot;co3&quot;&gt;
    restart&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;unless-stopped&lt;span class=&quot;co3&quot;&gt;
    command&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;worker&lt;span class=&quot;co4&quot;&gt;
    environment&lt;/span&gt;:&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__HOST&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;mailhog&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__PORT&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;1025&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__USE_TLS&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;false&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__USE_SSL&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;false&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_EMAIL__FROM&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik@localhost&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_REDIS__HOST&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;redis&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_REDIS__PASSWORD&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__HOST&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;postgres&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__USER&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__NAME&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;authentik_demo&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_POSTGRESQL__PASSWORD&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;password&lt;span class=&quot;co3&quot;&gt;
      AUTHENTIK_SECRET_KEY&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;auth &lt;span class=&quot;co1&quot;&gt;# super secret key&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
    user&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;root&lt;span class=&quot;co4&quot;&gt;
    depends_on&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - postgres
      - redis
      - mailhog
&lt;span class=&quot;co3&quot;&gt;
  mailhog&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;# мок smtp сервер, UI доступен на порту 8025 (можно посмотреть все отправленные письма)&lt;/span&gt;&lt;span class=&quot;co3&quot;&gt;
    image&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;mailhog/mailhog&lt;span class=&quot;co3&quot;&gt;
    container_name&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;: &lt;/span&gt;mailhog&lt;span class=&quot;co4&quot;&gt;
    ports&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;:
&lt;/span&gt;      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;1025:1025&amp;quot;&lt;/span&gt;
      - &lt;span class=&quot;st0&quot;&gt;&amp;quot;8025:8025&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;docker-compose.yml&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;docker-composeyml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1571-&amp;quot;} --&gt;</description>
    </item>
    <item rdf:about="http://178.140.10.58:8080/doku.php?id=software:sso:keycloak">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-07T03:05:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>keycloak</title>
        <link>http://178.140.10.58:8080/doku.php?id=software:sso:keycloak</link>
        <description>&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:sso&amp;amp;do=showtag&amp;amp;tag=%5Bsso&quot; class=&quot;wikilink1&quot; title=&quot;tag:sso&quot; rel=&quot;tag&quot;&gt;[sso&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:oauth2-proxy&amp;amp;do=showtag&amp;amp;tag=oAuth2-proxy&quot; class=&quot;wikilink1&quot; title=&quot;tag:oauth2-proxy&quot; rel=&quot;tag&quot;&gt;oAuth2-proxy&lt;/a&gt;,
	&lt;a href=&quot;http://178.140.10.58:8080/doku.php?id=tag:keycloak&amp;amp;do=showtag&amp;amp;tag=keycloak%5D&quot; class=&quot;wikilink1&quot; title=&quot;tag:keycloak&quot; rel=&quot;tag&quot;&gt;keycloak]&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;keycloak&quot;&gt;keycloak&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Единая точка входа (SSO) – пользователи входят один раз и получают доступ ко всем связанным приложениям
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Централизованное управление – все пользователи, роли и группы управляются через единую административную панель
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Готовые страницы авторизации – формы входа, регистрации, восстановления пароля уже реализованы и настраиваются визуально
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Поддержка стандартов – полная совместимость с OpenID Connect, OAuth 2.0 и SAML 2.0
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Реалмы (Realms) – возможность создания изолированных областей для разных групп пользователей или проектов
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Гибкость интеграции – официальные адаптеры для популярных фреймворков и возможность создания собственных
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Низкий порог входа – простое внедрение даже для разработчиков без глубоких знаний в области безопасности
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Кастомизация внешнего вида – возможность полностью настроить дизайн страниц аутентификации под ваш бренд (сегодня рассматривать не будем)
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;keycloak&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;keycloak&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;38-1688&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;gogatekeeper_keycloak&quot;&gt;goGatekeeper + keycloak&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;goGatekeeper + keycloak&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gogatekeeper_keycloak&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1689-1723&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;oauth2-proxy_keycloak&quot;&gt;OAuth2-Proxy + keycloak&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://178.140.10.58:8080/lib/exe/detail.php?id=software%3Asso%3Akeycloak&amp;amp;media=software:sso:1_unn3rhctmbztwt6dliczwg.webp&quot; class=&quot;media&quot; title=&quot;software:sso:1_unn3rhctmbztwt6dliczwg.webp&quot;&gt;&lt;img src=&quot;http://178.140.10.58:8080/lib/exe/fetch.php?media=software:sso:1_unn3rhctmbztwt6dliczwg.webp&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Обратный прокси-сервер, который обеспечивает аутентификацию с помощью Google, Azure, OpenID Connect и многих других поставщиков удостоверений личности.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OAuth2-Proxy + keycloak&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;oauth2-proxy_keycloak&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1724-&amp;quot;} --&gt;</description>
    </item>
</rdf:RDF>
