<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Использование OpenID Connect с Cozystack on Cozystack</title><link>https://cozystack.ru/docs/v1.5/operations/oidc/</link><description>Recent content in Использование OpenID Connect с Cozystack on Cozystack</description><generator>Hugo</generator><language>en</language><atom:link href="https://cozystack.ru/docs/v1.5/operations/oidc/index.xml" rel="self" type="application/rss+xml"/><item><title>Включение OIDC Server</title><link>https://cozystack.ru/docs/v1.5/operations/oidc/enable_oidc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/operations/oidc/enable_oidc/</guid><description>&lt;h2 id="предварительные-требования"&gt;Предварительные требования&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Конфигурация OIDC&lt;/strong&gt;
API server должен быть настроен на использование OIDC. Если используется Talos Linux, machine configuration должна включать следующие параметры:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;cluster&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;apiServer&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;extraArgs&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;oidc-issuer-url&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#4070a0"&gt;&amp;#34;https://keycloak.example.org/realms/cozy&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;oidc-client-id&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#4070a0"&gt;&amp;#34;kubernetes&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;oidc-username-claim&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#4070a0"&gt;&amp;#34;preferred_username&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;oidc-groups-claim&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#4070a0"&gt;&amp;#34;groups&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Для Talm&lt;/strong&gt;
Добавьте в &lt;code&gt;values.yaml&lt;/code&gt; в репозитории talm:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;oidcIssuerUrl&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#4070a0"&gt;&amp;#34;https://keycloak.&amp;lt;YOUR_ROOT_DOMAIN&amp;gt;/realms/cozy&amp;#34;&lt;/span&gt;&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Доступность домена&lt;/strong&gt;
Убедитесь, что домен &lt;code&gt;keycloak.example.org&lt;/code&gt; доступен из кластера и резолвится в root ingress controller.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Конфигурация storage&lt;/strong&gt;
Storage должен быть корректно настроен.&lt;/p&gt;</description></item><item><title>Создание пользователей и назначение ролей</title><link>https://cozystack.ru/docs/v1.5/operations/oidc/users_and_roles/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/operations/oidc/users_and_roles/</guid><description>&lt;p&gt;Создание пользователей и назначение им ролей.&lt;/p&gt;
&lt;h3 id="обзор"&gt;Обзор&lt;/h3&gt;
&lt;p&gt;При создании tenant в Cozy (начиная с версии 1.6.0) roles, RoleBindings и группы Keycloak автоматически создаются в Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;Создание пользователя описано в документации:

&lt;a href="https://www.keycloak.org/docs/latest/server_admin/#using-the-admin-console" target="_blank"&gt;Keycloak Admin Console Documentation&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="назначение-роли-пользователю-для-tenant"&gt;Назначение роли пользователю для tenant&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Откройте Keycloak&lt;/strong&gt;:
Чтобы получить login credentials, проверьте secret следующей командой:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;kubectl get secret keycloak-credentials -n cozy-keycloak -o yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Адрес Keycloak&lt;/strong&gt;:
Адрес Keycloak будет соответствовать значению &lt;code&gt;publishing.host&lt;/code&gt;, указанному в Platform Package. Например, если Package содержит:&lt;/p&gt;</description></item><item><title>Self-Signed Certificates</title><link>https://cozystack.ru/docs/v1.5/operations/oidc/self-signed-certificates/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cozystack.ru/docs/v1.5/operations/oidc/self-signed-certificates/</guid><description>&lt;p&gt;В этом руководстве описано, как настроить Kubernetes API server для OIDC authentication с Keycloak при использовании self-signed certificates. По умолчанию Cozystack выпускает certificates через LetsEncrypt, но в некоторых окружениях, например air-gapped или private enterprise networks, может использоваться custom CA.&lt;/p&gt;
&lt;h2 id="предварительные-требования"&gt;Предварительные требования&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Cozystack cluster с включенным OIDC (см. 
&lt;a href="https://cozystack.ru/docs/v1.5/operations/oidc/enable_oidc/" target="_blank"&gt;Enable OIDC Server&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Control plane nodes на Talos Linux&lt;/li&gt;
&lt;li&gt;&lt;code&gt;talosctl&lt;/code&gt;, настроенный для вашего кластера&lt;/li&gt;
&lt;li&gt;Установленный &lt;code&gt;kubelogin&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="шаг-1-получите-сертификат-keycloak"&gt;Шаг 1: получите сертификат Keycloak&lt;/h2&gt;
&lt;p&gt;Получите certificate из ingress controller:&lt;/p&gt;</description></item></channel></rss>