keycloak.plugins: add new plugins from extensions page (#480442)

This commit is contained in:
Sandro
2026-01-27 19:23:02 +00:00
committed by GitHub
11 changed files with 217 additions and 7 deletions
+13
View File
@@ -12053,6 +12053,13 @@
githubId = 1198065;
name = "Jeffrey David Johnson";
};
jefferyoo = {
email = "oojefferywm@proton.me";
github = "jefferyoo";
githubId = 237098253;
name = "Jeffery Oo";
keys = [ { fingerprint = "7129 408E 3D97 47EB FCE1 A6D5 1999 2BEC E706 CC59"; } ];
};
jefflabonte = {
email = "jean-francois.labonte@brightonlabs.ai";
github = "JeffLabonte";
@@ -14207,6 +14214,12 @@
githubId = 160317;
name = "Kristoffer Søholm";
};
krit = {
email = "dasskrit@gmail.com";
github = "kritdass";
githubId = 68750861;
name = "Krit Dass";
};
kritnich = {
email = "kritnich@kritni.ch";
github = "Kritnich";
+8 -4
View File
@@ -4,15 +4,19 @@
junixsocket-common,
junixsocket-native-common,
}:
{
scim-for-keycloak = callPackage ./scim-for-keycloak { };
scim-keycloak-user-storage-spi = callPackage ./scim-keycloak-user-storage-spi { };
keycloak-2fa-sms-authenticator = callPackage ./keycloak-2fa-sms-authenticator { };
keycloak-config-cli = callPackage ./keycloak-config-cli { };
keycloak-discord = callPackage ./keycloak-discord { };
keycloak-enforce-mfa-authenticator = callPackage ./keycloak-enforce-mfa-authenticator { };
keycloak-magic-link = callPackage ./keycloak-magic-link { };
keycloak-metrics-spi = callPackage ./keycloak-metrics-spi { };
keycloak-restrict-client-auth = callPackage ./keycloak-restrict-client-auth { };
keycloak-orgs = callPackage ./keycloak-orgs { };
keycloak-remember-me-authenticator = callPackage ./keycloak-remember-me-authenticator { };
keycloak-restrict-client-auth = callPackage ./keycloak-restrict-client-auth { };
keycloak-secrets-vault-provider = callPackage ./keycloak-secrets-vault-provider { };
scim-for-keycloak = callPackage ./scim-for-keycloak { };
scim-keycloak-user-storage-spi = callPackage ./scim-keycloak-user-storage-spi { };
# junixsocket provides Unix domain socket support for JDBC connections,
# which is required for connecting to PostgreSQL via Unix socket.
@@ -0,0 +1,43 @@
{
stdenv,
maven,
lib,
fetchFromGitHub,
}:
maven.buildMavenPackage rec {
pname = "keycloak-2fa-sms-authenticator";
version = "26.4.10";
src = fetchFromGitHub {
owner = "netzbegruenung";
repo = "keycloak-mfa-plugins";
tag = "v${version}";
hash = "sha256-J7t/SRfK/LTcW7Y+D6bkHcXK+lKqUYLEqSpNWJUC3kQ=";
};
mvnHash =
let
mvnHashes = {
"aarch64-darwin" = "sha256-eRlu24SYe+PBOTKoAQPd5MoM7VUxHZx4/uiW6mV2PZI=";
"x86_64-darwin" = "sha256-p+XpCjXiEPMJnXIrbD2Qse/csZfv8YZ6h+sNZitCyro=";
"aarch64-linux" = "sha256-4P9qM3X99dEy3ssr1+vp65QUJikRfE4EoK6LOta9IFs=";
"x86_64-linux" = "sha256-wxgEHC1xJahyoizozvRfRZAWTjrYmYNM42yk+ZRke5A=";
};
in
mvnHashes.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
installPhase = ''
runHook preInstall
install -Dm644 sms-authenticator/target/netzbegruenung.sms-authenticator-v${version}.jar \
$out/keycloak-2fa-sms-authenticator.jar
runHook postInstall
'';
meta = {
homepage = "https://github.com/netzbegruenung/keycloak-mfa-plugins";
description = "Keycloak authentication provider for 2FA via SMS";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ anish ];
};
}
@@ -0,0 +1,37 @@
{
maven,
lib,
fetchFromGitHub,
}:
maven.buildMavenPackage rec {
pname = "keycloak-config-cli";
version = "6.4.0";
src = fetchFromGitHub {
owner = "adorsys";
repo = "keycloak-config-cli";
tag = "v${version}";
hash = "sha256-Vg56Dz9U0eAJw+7u90MSZWmMIZttWYGXAwsXZsEfTj8=";
};
mvnHash = "sha256-tdh8hRqGXI3zuwy55dC3La9dm2naqeCEZT4qcw37iDI=";
# Tests use MockServer which needs to bind to a local port
__darwinAllowLocalNetworking = true;
installPhase = ''
runHook preInstall
install -Dm444 -t "$out" target/keycloak-config-cli.jar
runHook postInstall
'';
meta = {
homepage = "https://github.com/adorsys/keycloak-config-cli/";
description = "Import YAML/JSON-formatted configuration files into Keycloak";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
jefferyoo
anish
];
};
}
@@ -29,7 +29,7 @@ maven.buildMavenPackage rec {
installPhase = ''
runHook preInstall
install -Dm444 target/keycloak-discord-${version}.jar "$out/keycloak-discord-${version}.jar"
install -Dm444 -t "$out" target/keycloak-discord-${version}.jar
runHook postInstall
'';
@@ -0,0 +1,43 @@
{
stdenv,
maven,
lib,
fetchFromGitHub,
}:
maven.buildMavenPackage rec {
pname = "keycloak-enforce-mfa-authenticator";
version = "26.4.10";
src = fetchFromGitHub {
owner = "netzbegruenung";
repo = "keycloak-mfa-plugins";
tag = "v${version}";
hash = "sha256-J7t/SRfK/LTcW7Y+D6bkHcXK+lKqUYLEqSpNWJUC3kQ=";
};
mvnHash =
let
mvnHashes = {
"aarch64-darwin" = "sha256-eRlu24SYe+PBOTKoAQPd5MoM7VUxHZx4/uiW6mV2PZI=";
"x86_64-darwin" = "sha256-p+XpCjXiEPMJnXIrbD2Qse/csZfv8YZ6h+sNZitCyro=";
"aarch64-linux" = "sha256-4P9qM3X99dEy3ssr1+vp65QUJikRfE4EoK6LOta9IFs=";
"x86_64-linux" = "sha256-wxgEHC1xJahyoizozvRfRZAWTjrYmYNM42yk+ZRke5A=";
};
in
mvnHashes.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
installPhase = ''
runHook preInstall
install -Dm644 enforce-mfa/target/netzbegruenung.enforce-mfa-v${version}.jar \
$out/keycloak-enforce-mfa-authenticator.jar
runHook postInstall
'';
meta = {
homepage = "https://github.com/netzbegruenung/keycloak-mfa-plugins";
description = "Keycloak authenticator that enforces MFA";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ anish ];
};
}
@@ -0,0 +1,34 @@
{
maven,
lib,
fetchFromGitHub,
}:
maven.buildMavenPackage rec {
pname = "keycloak-orgs";
version = "0.126";
src = fetchFromGitHub {
owner = "p2-inc";
repo = "keycloak-orgs";
tag = "v${version}";
hash = "sha256-AQvIkmm8YJoNMcN+85OEbBud7YDLAlk5NfC05js1k2Y=";
};
mvnHash = "sha256-lq3N0XBRyR9I6U0gvjsjJ9r6fZINSsTWAMvdDEIsT0g=";
# Tell buildnumber-maven-plugin to use a fallback value because git/.git aren't present
mvnParameters = "-Dmaven.buildNumber.revisionOnScmFailure=v${version} -DskipTests";
installPhase = ''
runHook preInstall
install -Dm644 -t "$out" target/keycloak-orgs-${version}.jar
runHook postInstall
'';
meta = {
homepage = "https://github.com/p2-inc/keycloak-orgs";
description = "Multi-tenancy on a single Keycloak realm via first-class organization objects";
license = lib.licenses.elastic20;
maintainers = with lib.maintainers; [ anish ];
};
}
@@ -11,7 +11,7 @@ maven.buildMavenPackage rec {
src = fetchFromGitHub {
owner = "sventorben";
repo = "keycloak-restrict-client-auth";
rev = "v${version}";
tag = "v${version}";
hash = "sha256-nQ2AwXhSUu5RY/BbxXE2OXgEb7Zf6FfrGP5tfbgAXk8=";
};
@@ -0,0 +1,34 @@
{
maven,
lib,
fetchFromGitHub,
}:
maven.buildMavenPackage rec {
pname = "keycloak-secrets-vault-provider";
version = "1.0.0";
src = fetchFromGitHub {
owner = "Nordix";
repo = "keycloak-secrets-vault-provider";
tag = "v${version}";
hash = "sha256-7ttjTm3D+dDiw+00pK4yvDFNCuXFmapPKnOY7vfa2Ac=";
};
mvnHash = "sha256-AJwt6JnNAffXzazWI2fIUMp5j/Fm5LRhO31bOUOl7g0=";
installPhase = ''
runHook preInstall
install -Dm644 -t "$out/keycloak-secrets-vault-provider.jar" target/secrets-provider-${version}.jar
runHook postInstall
'';
meta = {
homepage = "https://github.com/Nordix/keycloak-secrets-vault-provider";
description = "Keycloak Vault SPI provider for OpenBao and HashiCorp Vault";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
krit
anish
];
};
}
+2
View File
@@ -102,6 +102,8 @@ stdenv.mkDerivation (finalAttrs: {
nickcao
leona
anish
krit
jefferyoo
];
};
})
@@ -11,7 +11,7 @@ maven.buildMavenPackage rec {
src = fetchFromGitHub {
owner = "Captain-P-Goldfish";
repo = "scim-for-keycloak";
rev = version;
tag = version;
hash = "sha256-kHjCVkcD8C0tIaMExDlyQmcWMhypisR1nyG93laB8WU=";
};