LINUX.ORG.RU

Issuerd 0.1.17 — IAM-сервер, совместимый с Keycloak

 , ,


0

2

Issuerd — Keycloak-совместимый IAM-сервер, написанный на Rust и распространяемый по лицензии Apache-2.0. Распространяется как один самодостаточный бинарник.

IAM-сервер (Identity and Access Management) — сервис, позволяющий реализовать централизованную аутентификацию и авторизацию (Single Sign-On, SSO) для веб-приложений.

Проект проходит тестирование по полной сертификационной матрице OpenID Foundation Conformance Suite (11 OP-профилей, 43 тест-плана, 612 модулей, более 31 000 условий) в CI на каждом релизе без ошибок и предупреждений. Результаты хранятся в репозитории.

Реализованы:

  • DPoP (RFC 9449);
  • token exchange (RFC 8693);
  • CIBA (Client-Initiated Back-channel Authentication);
  • федерация LDAP/Kerberos (импорт 100 тысяч пользователей AD за ~30 секунд).

Поставляются бинарники для шести платформ с SBOM, Docker Hub, crates.io.

>>> Документация

>>> Репозиторий (GitHub)



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

Что про сам Keycloak новость была написана на инопланетном, что про это.

Могу попробовать перевести на русский. Только можно расшифровать, что за «немодифицированный сьют»?

hobbit ★★★★★
()

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

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

Лучше дыр, могут быть только дыры, о которых ещё не слыхал

Так же у классика было? Ребята молодцы, переписали на расте известный продукт, возможно с помощью ИИ. Не факт что получилось плохо, но и не факт что более безопасно что в изначальном продукте, который пилят годами.

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

переписали на расте

не факт что более безопасно

Факт: Rust закрывает целые классы дыр просто by design.

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

И добавляет другие, новые классы дыр.

Врёшь как обычно - Rust не добавляет ошибок, которых не было бы в других языках.

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

У тебя реально непонятно где ты просто тупишь, а где пытаешься троллить. Ты до такой степени не понимаешь что такое unsafe в Rust?

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

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

Судя по энтузиазму, нашелся человек, готовый испробовать и поделиться своим опытом использования!

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

Факт: Rust закрывает целые классы дыр просто by design.

Рекомендую: незаменимая в хозяйстве вещь. Замочил в нем носки haute couture, так на утро не одной дырки не осталось. Правда теперь непонятно куда ногу совать.

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

не факт что и не воспользовались, кто-то кто понимает должен код смотреть

Зачем «кто-то» - поискать unsafe в проекте ты и сам можешь ;)

zabbal ★★★★☆
()

Очередное поделие Rust разрабов, которые не умеют дистрибьютить

$objdump -T issuerd

GLIBC_2.34

Призываю всех Rust разработчиков ознакомиться с https://doc.rust-lang.org/rustc/platform-support.html

x86_64-unknown-linux-gnu 64-bit Linux (kernel 3.2+, glibc 2.17+)

Ваши релизы ОБЯЗАНЫ запускаться на системах с glibc 2.17+ в соответствии с ОФФИЦИАЛЬНЫМ Tier 1 Policy

А если вы снежинки и боитесь разбираться со сборкой, то может и не надо оно вам?

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

Да, бинарник собран на современном бейзлайне — требование glibc ≥ 2.35 указано прямо в релизных заметках (фактический floor 2.34). А обязанности «2.17+» нет: строка на странице platform-support это минимум, который умеет сама цель при сборке на такой системе (так собираются официальные сборки Rust), а не норма для чужих релизов.

Откуда боль, понимаю: Astra Linux 1.7 который glibc 2.28, туда текущий бинарник не встанет. Рабочие пути сегодня: multi-arch Docker-образ (distroless, всё нужное внутри) и сборка из исходников — crate на crates.io для этого и публикуется, собранный на вашей системе бинарник потребует ровно её glibc. Если спрос на старый бзлайн (manylinux_2_28 → RHEL 8, Astra 1.7) окажется реальным — welcome в issues.

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

Только мне показалось, что этот комментарий написан нейронкой? Я не против софта писанного нейронкой, но не комментарии же.

PS: Я для своей сборки стараюсь с минимально возможным GLIBC собирать, ибо если ничего из новых возможностей не нужно, то зачем его требовать?

Loki13 ★★★★★
()
Ответ на: удаленный комментарий

Как же вас покорежило от правды.

Tier Policy относится только и исключительно к самому Rust

Если не используются специфичные функции из самого glibc конкретной версии, то зачем намеренно ограничивать версию, если тулчейн тебе дает возможность сделать билд на более широкий спектр систем. Учитывая еще и тот факт, что сборка софта на расте требует больше памяти, не у всех есть возможность собирать под свою систему софт, особенно когда она соответствует требованиям платформы, но вот парадокс, софтописатели ей не следуют. Это глупо и нелогично. Причина может быть только одна: неумение/незнание.

совершенно не обязаны спрашивать мнение случайных кретинов в интернете

Как вы ловко обвинили создателей appImage что они идиоты https://docs.appimage.org/reference/best-practices.html#binaries-compiled-on-old-enough-base-system

your AppImage should not be built on a more recent base system than the oldest base system your AppImage is intended to run on

Да и Шипилева например назвали кретином https://t.me/jvmchat/537171

Это нужно быть очень смелым чтобы сказать что все вокруг идиоты, а вы Д’Артаньян, снимаю шляпу.

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

Только мне показалось, что этот комментарий написан нейронкой?

Мне показалось, что комментарий просто написан с перекосом в технический жаргон. Я не то, чтобы одобрял такую манеру выражаться, но в своё время на ЛОРе таких комментариев было довольно много, и было это ещё в те времена, когда вершиной бесед с ИИ был AIML (кто-нибудь помнит такой проект?). Вот @wandrien, возможно, с тобой согласится.

Я для своей сборки стараюсь с минимально возможным GLIBC собирать

Я тоже. Но у меня рабочая лошадка не Rust, а C++, я могу позволить себе роскошь взять и собрать всё на Debian oldoldstable. То, что у меня там не будет фич из C++20, я как-нибудь переживу (хотя среди них есть весьма вкусные). Rust же, как я подозреваю, слишком быстро развивается, чтобы с проектом на нём проворачивать такие фокусы, особенно если привлекать ИИшницу для генерации кода… :(

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

фактический floor

Это однозначно нейронка, люди так не говорят никогда. Ну по крайней мере пока у нас ещё не выросли люди «воспитанные нейросетью».

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

обвинили создателей appImage

Как у тебя пригорело-то что ты сразу побежал примазываться к хоть кому-нибудь. Так спешил что аж policy c best practice перепутал. Хотя может ты просто тупо читать не умеешь?

Да и Шипилева

Кто это вообще?

все вокруг идиоты

C чего ты взял что все вокруг разделяют твоё идиотское стремление указывать случайным разработчикам что и как они должны делать?

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

У нас есть (по крайней мере, были) люди, привыкшие вращаться в англоязычной программистской среде, и вот их зачастую пробивало на «помесь французского с нижегородским». Может, сейчас это уже забылось, но на ЛОРе середины нулевых у некоторых это было в порядке вещей.

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

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

Не нужно оправдываться, все и так поняли, что вы не понимаете даже о чем идет речь и любите попускать слюни. У tier policy и best practice абсолютно нет никакого противоречия и ортогональности, дальнейшая дискуссия с вами бессмысленна, если вы обладаете такой скудной компетенцией по данному конкретному вопросу.

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

Так и есть. А модераторам пофиг.

Удивительно, конечно.

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

Что-то ты быстро сдулся, неужели перехотелось командовать разработчиками? :-D

И чего ты так трясёшься и вечно прячешься за «все» и каких-то левых блогеров из телеги? Неужели настолько бздливо озвучить своё мнение от своего же имени?

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

Мысль о том, что существует настоящий человек, который станет дважды переключать раскладку ради написать «welcome в issues», пугает меня намного больше любой нейросети.

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

Ну вот тебе комментарий всего-то 5-летней давности от весьма известного в ядерной разработке человека. Как минимум трижды он раскладку переключил :)

Но там, конечно, было чувство меры. Которым здесь не особо пахнет (но это ещё не значит, что писала нейросеть).

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

А вот чтоб ради одной буквы переключаться, есть примеры? Исключая, разумеется, всякого рода ерничанье и паясничанье.

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

Факт: Rust закрывает целые классы дыр просто by design.

Java закрывала эти классы дыр, когда Rust ещё в зародыше не было.

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

Я уже писал – я не спорю, что комментарий написан ненормально. Я спорю только с тем, чтобы считать его «нейрокомментарием». Претензия по пункту «дискуссии не на русском языке» здесь бы больше подошла.

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

Только мне показалось, что этот комментарий написан нейронкой?

Welcome в мёртвый Internet.

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

Она их слишком зубодробительно закрывала, через JVM, отрывом от платформы. У Java нативная компиляция была, скорее, исключением, чем правилом. У Rust это правило.

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

Что такое отрыв от платформы? JVM это такой же отрыв от платформы, как Perl или Bash. Зачем для серверной программы нативная компиляция? В этом чаще всего нет никакой нужды, это не интерактивная команда, которая должна отработать за миллисекунды.

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

Вот, уже пошли ограничения задним числом. Rust не декларирует себя как язык для исключительно серверной разработки (Java, кстати, поначалу тоже не декларировала, достаточно апплеты вспомнить).

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

JVM это такой же отрыв от платформы, как Perl или Bash.

Вот только ни перл, ни баш никто не позиционирует как ЯП общего назначения. А на Java большие проекты пишут.

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

Вот, уже пошли ограничения задним числом.

Почему задним-то? Сравнительно долгий старт JVM это ни для кого не секрет. Если программа сама по себе работает долго, сотни миллисекунд, это незаметно. А если это программа вроде ls, тут, конечно, лишние миллисекунды начинают напрягать.

Ещё у Java потребление памяти весьма специфичное. Для некоторых случаев это может быть критично.

Rust не декларирует себя как язык для исключительно серверной разработки (Java, кстати, поначалу тоже не декларировала, достаточно апплеты вспомнить).

Java и сейчас не декларирует.

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

Не надо путать время старта и производительность. Скорость работы прогретой программы на Java легко может опережать и Rust и C, потому, что JVM динамически измеряет разные параметры на реально поступающих данных и применяет оптимальные для конкретного профиля нагрузки оптимизации прямо на лету.

Вот только ни перл, ни баш никто не позиционирует как ЯП общего назначения.

Перл это ЯП общего назначения. Да и на баше чего только не пишут.

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

Java закрывала эти классы дыр

Особенно при работе с указателями, ага. Null pointer exception и всё такое :)

Жаба никогда даже не пыталась давать гарантий безопасности Rust.

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

Да, весьма неплохо - тоже активно используем.

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

В Java нет никаких проблем при работе с указателями. Null Pointer Exception это не проблема, это штатный механизм. Как говорят англичане: «Defined Behaviour».

Что там, кстати, в Rust происходит, при попытке разыменования нулевого указателя? А? Undefined behaviour? Вот и я про это.

Жаба никогда даже не пыталась давать гарантий безопасности Rust.

Зачем ей пытаться, если она даёт куда большие гарантии безопасности.

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

Null Pointer Exception это не проблема

даёт куда большие гарантии безопасности

Б-ха-ха-ха… ещё что-нибудь смешное скажи - памяти меньше потребляет поди? :-D :-D :-D

zabbal ★★★★☆
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.