LINUX.ORG.RU

KeyCloak 26.8.0

 , , oidc


1

1

1 октября вышла новая версия системы для управления идентификацией и доступом KeyCloak. В этой версии уменьшен расход оперативной памяти («reduced memory usage»).

Программа реализует:

Keycloak берет на себя хранение пользователей, проверку паролей, выдачу токенов, сессии и даже двухфакторную аутентификацию. Компания OpenTalk подсчитала, что использование Keycloak сэкономило им 6 месяцев разработки, 30% времени на развертывание и 20% времени на написание документации. Проект развивается под эгидой CNCF (Cloud Native Computing Foundation), как Kubernetes.

Самый простой способ запустить Keycloak – использование Docker:

docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:latest start-dev

Эта команда поднимет сервер на localhost:8080. Логин и пароль — admin/admin.

Когда Keycloak аутентифицирует пользователя, фронтенд получает токен доступа.
Нужно добавить этот токен в заголовок Authorization: Bearer для всех запросов к бэкенду.

Bearer-токен в OIDC — это JWT (JSON Web Token). Внутри него лежит подписанный JSON с данными о пользователе.

{
  "sub": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "preferred_username": "alice",
  "email": "alice@example.com",
  "iss": "http://localhost:8080/realms/my-app",
  "aud": "web-app",
  "exp": 1730000000,
  "iat": 1729996400
}

Ключевое поле — sub (subject). Это стабильный уникальный ID пользователя внутри Keycloak. У Алисы он один и тот же во всех её сессиях, у Боба — другой. Именно по этому полю приложение и понимает, «кто пришёл».

KeyCloak написан на Java и распространяется на условиях лицензии Apache-2.0.

>>> Подробности на keycloak.org

★

Проверено: cetjs2 ()
Последнее исправление: hobbit (всего исправлений: 22)

Количество редфлагов перекрывает любой митинг коммунистов.

James_Holden ★★★★★
()

Новость из под пера ии :(

stave ★★★★★
()

SAML (это что-то древнее и никому не нужное, как кобол)

Расскажи это Энтерпрайзу, ага.

По существу - рад, что импрувят скорость и перформанс. Ибо реально тяжеловат продукт сей.

skyman ★★★★★
()
Ответ на: комментарий от firkax

Тебе надо по быстрому сляпать сайт (многопользовательский). Начнёшь ты с того, что сделаешь вход для админа, веб админку для управления пользователями, вход для пользователей. Вот эта штука всё это уже сделала и цепляется одним готовым куском сразу.
JWT токены дополнительно позволяют использовать что-то типа cloudflare, но это ты потом разберешься, когда нагрузку нужно будет масштабировать.

Saakx ★
() автор топика
Последнее исправление: Saakx (всего исправлений: 1)

Зачем кастовать тех, кто не логинился уже 3-4 года?

dataman ★★★★★
()
Ответ на: комментарий от splinter

OAuth2.1 поддерживается или еще только OAuth2.0?

есть встроенные глобальные профили политик клиентов (Client Policies) для OAuth 2.1. Они называются oauth-2-1-for-confidential-client и oauth-2-1-for-public-client
Если вы применяете эти профили к клиенту, Keycloak начинает проверять его конфигурацию на соответствие требованиям OAuth 2.1 (например, обязательное использование PKCE для публичных клиентов)

Saakx ★
() автор топика
Ответ на: комментарий от Saakx

Постой, в OAuth2.0 присутствует сценарий Password Flow, в OAuth2.1 этот сценарий удалён. То что пишешь ты, я так понимаю нейрослоп, ничего не проясняет, этот сценарий поддерживается или нет, или они сделали солянку?

splinter ★★★★★
()
Ответ на: комментарий от splinter

в OAuth2.0 присутствует сценарий Password Flow, в OAuth2.1 этот сценарий удалён.

И что?

тот сценарий поддерживается или нет, или они сделали солянку?

Они сделали конфигурируемость. Одним клиентам по-старому, другим по-новому (с запрещённым Password Flow).

Saakx ★
() автор топика
Ответ на: комментарий от splinter

Java-у можно потенциально собрать из исходников, а C# нельзя, обязательно нужно доверять бинарнику от Microsoft. И он огромен - хрен верифицируешь.

Saakx ★
() автор топика

По заявлениям экспертов нет и не может быть ничего лучше этой программы. Её обязательно надо установить. Таков путь.

Давай вот без этого, и без кастов. Мы всё же не в толксах.

Согласно тексту новости уменьшен расход оперативной памяти («reduced memory usage»).

Не обращая внимания на пропущенную запятую — согласно какому тексту новости? Рекурсия на самое себя? Мы вроде как читаем текст новости. Перефразируй.

Программа реализовывает:

Реализует… Ну и список оформить надо.

берет на себя хранение пользователей

Пока не помрут? Или прям до захоронения? Друг интересуется. Может выгодная сделка.

Он экономит недели работы.

Убери эту рекламную чушь собачью. Что значит «экономит недели работы»? Вместо недели за день смогли что-то сделать? Или вместо месяца за полтора? Или вместо 380 дней за 360? Или через несколько поколений в 2126-м юбилейном году проект вышел не в октябре, а аж в августе, после без малого 100 лет разработки? Это не имеет смысла без контекста.

Использует стандартные протоколы, с которыми ИИ знаком лучше всего.

Кто?

Кто сказал, что хорошая идея здесь пропускать сказуемое?..

Ты не пишешь его, ты его конфигурируешь и подключаешь.

Давай ты не будешь говорить мне, что я делаю? Это грубовато, в конце концов :)


Для подтверждения просьба исправить текст новости так, чтобы он был новостью, а не вбросом и вызовом, ну и просто соответствовал критериям хоть каким-то. Заранее спасибо.

CrX ★★★★★
()
Ответ на: комментарий от CrX

просьба исправить текст новости

Верю, что сообщество поможет.

В следующий раз буду писать другую новость учитывая эти замечания.

Заранее спасибо

Не за что.

Мы всё же не в толксах

@maxcom: У сайта LOR нехватает функции «переделать новость в топик в толксах».

Saakx ★
() автор топика
Последнее исправление: Saakx (всего исправлений: 3)
Ответ на: комментарий от Saakx

У сайта LOR нехватает функции «переделать новость в топик в толксах».

Модератор может это сделать. Надо?

CrX ★★★★★
()
Ответ на: комментарий от CrX

Надо?

это было бы лучше, чем просто сделать всё недоступным.

Saakx ★
() автор топика
Ответ на: комментарий от CrX

Я думаю, не надо. Надо довести до нормального уровня, раз уж ТС изначально назвался груздем. (Но я только начал, если что.)

hobbit ★★★★★
()
Ответ на: комментарий от wandrien

Кто-нибудь разобрался, что это? :)

Давно уже :)

На одном из проектов храним в нем пользователей, группы, роли, и используем как SSO в связке с apache.

В планах заинтегрировать туда и AD.

Продукт непростой, не для всех нужен. Но у кого особые запросы со сложной аутентификацией - грызут его :)

skyman ★★★★★
()
Последнее исправление: skyman (всего исправлений: 1)
Ответ на: комментарий от imul

Выглядит кране ненужным.

Для вордпресса он и вправду не нужен.

А для сложной инфраструктуры, где надо SSO для десятков систем, интеграцию с социальными сетями или 3rd-party и AD, ролями, аудитом, комплаенсом и прочим - очень даже.

skyman ★★★★★
()
Ответ на: комментарий от wandrien

Кто-нибудь разобрался, что это? :)

Когда/если тебе понадобится - альтернатив тупо нет вменяемых. Я его ненавижу, но тем не менее это вот так. У тебя просто нет задач таких.

lonelywoolf
()
Ответ на: комментарий от lonelywoolf

альтернатив тупо нет вменяемых

Я так и написал:
«По заявлениям экспертов нет и не может быть ничего лучше этой программы. Её обязательно надо установить. Таков путь.»
Но почему-то модераторы эту строку стёрли.

Я его ненавижу

Рассказ, за что именно, был бы интересен.

Saakx ★
() автор топика
Последнее исправление: Saakx (всего исправлений: 1)
Ответ на: комментарий от Saakx

Но почему-то модераторы эту строку стёрли.

Потому, что это субъективщина, вполне допустимая в комментариях (особенно основанных на личном опыте комментатора), но крайне нежелательная в самой новости.

Я вот если доживу до публичного релиза своего следующего опенсорсного проекта, хочу написать новость с перечислением функций и тут же в отдельном комментарии – субъективщину, почему на мой взгляд эта программа нужна даже при наличии некоторых известных аналогов. Именно потому, что не надо валить в одну кучку факты и мнения (точнее, даже одно мнение).

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

KeyCloak написан на Java

Ужас!

Я начал было прикидывать, а не нужно ли это мне. Но дочитав до этой строки понял, что точно не нужно…

shaplov ★★★
()

все никак не дойдут руки внедрить keycloak у себя в домашней лабе чтобы пользователей k8s, maas, ssh и т.д. заводить централизованно

gagarin0 ★
()
Ответ на: комментарий от shaplov

От языка не зависит -можно и на Яве писать очень компактные программы.Я помню кроссплатформенная читалку -вин,андроид,linux.Так байт код занимал 16-18 мгб при том что она понимала pdf,rtf,epub,html,fb2,mobi ,а также открывала zip и 7zip архивы .К сожалению забросили :-(

maximnik0 ★★
()

У Алисы он один и тот же во всех её сессиях

В свете последних событий не сразу понял, что это стандартный пример.

А есть примеры «историй успеха», где сабж используется?

Radjah ★★★★★
()

протухла новость же уже

splinter ★★★★★
()
Ответ на: комментарий от Radjah

А есть примеры «историй успеха», где сабж используется?

Его очень любит «кровавый энтерпрайз», когда у тебя много внутренних сервисов, удобно сделать SSO на нем. Поэтому, снаружи его редко видно, а внутрянка крупного бизнеса часто использует.

hippi90 ★★★★★
()
Ответ на: комментарий от hippi90

Ясно, а то я по сайту полазил и никого списка публичных ресурсов, где это внедрено, не увидел.

Radjah ★★★★★
()
Ответ на: комментарий от shaplov

Зря, а так бы взял китайскую
https://gitee.com/dromara/ujcms
проинтегрировал бы её с KeyCloak Authorization Serives и имел бы годное решение.

Saakx ★
() автор топика
Последнее исправление: Saakx (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.