Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8391479
README.md
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
README.md
View Options
#
puppet
-
module
-
keycloak
[](https://forge.puppetlabs.com/treydock/keycloak)
[](https://travis-ci.org/treydock/puppet-module-keycloak)
####
Table
of
Contents
1
.
[
Overview
](#
overview
)
2
.
[
Usage
-
Configuration
options
](#
usage
)
3
.
[
Reference
-
Parameter
and
detailed
reference
to
all
options
](#
reference
)
4
.
[
Limitations
-
OS
compatibility
,
etc
.](#
limitations
)
5
.
[
Development
-
Guide
for
contributing
to
the
module
](#
development
)
##
Overview
The
keycloak
module
allows
easy
installation
and
management
of
Keycloak
.
##
Usage
###
keycloak
Install
Keycloak
using
default
database
storage
.
class
{
'
keycloak
'
:
}
Install
keycloak
and
use
a
local
MySQL
server
for
database
storage
include
mysql
::
server
class
{
'
keycloak
'
:
datasource_driver
=>
'
mysql
'
,
datasource_host
=>
'
localhost
'
,
datasource_port
=>
3306
,
datasource_dbname
=>
'
keycloak
'
,
datasource_username
=>
'
keycloak
'
,
datasource_password
=>
'
foobar
'
,
}
Configure
a
SSL
certificate
truststore
and
add
a
LDAP
server
'
s
certificate
to
the
truststore
.
class
{
'
keycloak
'
:
truststore
=>
true
,
truststore_password
=>
'
supersecret
'
,
truststore_hostname_verification_policy
=>
'
STRICT
'
,
}
keycloak
::
truststore
::
host
{
'
ldap1
.
example
.
com
'
:
certificate
=>
'
/
etc
/
openldap
/
certs
/
0
a00000
.
0
'
,
}
Setup
Keycloak
to
proxy
through
Apache
HTTPS
.
class
{
'
keycloak
'
:
proxy_https
=>
true
}
apache
::
vhost
{
'
idp
.
example
.
com
'
:
servername
=>
'
idp
.
example
.
com
'
,
port
=>
'
443
'
,
ssl
=>
true
,
manage_docroot
=>
false
,
docroot
=>
'
/
var
/
www
/
html
'
,
proxy_preserve_host
=>
true
,
proxy_pass
=>
[
{
'
path
'
=>
'/'
,
'
url
'
=>
'
http
:
//localhost:8080/'}
],
request_headers
=>
[
'
set
X
-
Forwarded
-
Proto
"https"
'
,
'
set
X
-
Forwarded
-
Port
"443"
'
],
ssl_cert
=>
'
/
etc
/
pki
/
tls
/
certs
/
idp
.
example
.
com
/
crt
'
,
ssl_key
=>
'
/
etc
/
pki
/
tls
/
private
/
idp
.
example
.
com
.
key
'
,
}
Setup
a
host
for
theme
development
so
that
theme
changes
don
'
t
require
a
service
restart
,
not
recommended
for
production
.
class
{
'
keycloak
'
:
theme_static_max_age
=>
-
1
,
theme_cache_themes
=>
false
,
theme_cache_templates
=>
false
,
}
###
keycloak_realm
Define
a
Keycloak
realm
that
uses
username
and
not
email
for
login
and
to
use
a
local
branded
theme
.
keycloak_realm
{
'
test
'
:
ensure
=>
'
present
'
,
remember_me
=>
true
,
login_with_email_allowed
=>
false
,
login_theme
=>
'
my_theme
'
,
}
###
keycloak
\
_ldap
\
_user_provider
Define
a
LDAP
user
provider
so
that
authentication
can
be
performed
against
LDAP
.
The
example
below
uses
two
LDAP
servers
,
disables
importing
of
users
and
assumes
the
SSL
certificates
are
trusted
and
do
not
require
being
in
the
truststore
.
keycloak_ldap_user_provider
{
'
LDAP
on
test
'
:
ensure
=>
'
present
'
,
users_dn
=>
'
ou
=
People
,
dc
=
example
,
dc
=
com
'
,
connection_url
=>
'
ldaps
:
//ldap1.example.com:636 ldaps://ldap2.example.com:636',
import_enabled
=>
false
,
use_truststore_spi
=>
'
never
'
,
}
###
keycloak
\
_ldap_mapper
Use
the
LDAP
attribute
'
gecos
'
as
the
full
name
attribute
.
keycloak_ldap_mapper
{
'
full
name
for
LDAP
on
test
:
ensure
=>
'
present
'
,
resource_name
=>
'
full
name
'
,
type
=>
'
full
-
name
-
ldap
-
mapper
'
,
ldap_attribute
=>
'
gecos
'
,
}
###
keycloak_client
Register
a
client
.
keycloak_client
{
'
www
.
example
.
com
'
:
ensure
=>
'
present
'
,
realm
=>
'
test
'
,
redirect_uris
=>
[
"https://www.example.com/oidc"
,
"https://www.example.com"
,
],
client_template
=>
'
oidc
-
clients
'
,
secret
=>
'
supersecret
'
,
}
###
keycloak
::
client_template
Defined
type
that
can
be
used
to
define
both
`
keycloak_client_template
`
and
`
keycloak_protocol_mapper
`
resources
.
The
example
below
will
define
a
client
template
and
several
protocol
mappers
that
are
built
into
keycloak
.
keycloak
::
client_template
{
'
oidc
-
clients
'
:
realm
=>
'
test
'
,
}
###
keycloak
\
_client_template
See
keycloak
::
client_template
defined
type
###
keycloak
\
_protocol_mapper
See
keycloak
::
client_template
defined
type
##
Reference
###
Classes
####
Public
classes
*
`
keycloak
`
:
Installs
and
configures
keycloak
.
####
Private
classes
*
`
keycloak
::
install
`
:
Installs
keycloak
packages
.
*
`
keycloak
::
config
`
:
Configures
keycloak
.
*
`
keycloak
::
datasource
::
h2
`
:
Empty
placeholder
class
.
*
`
keycloak
::
datasource
::
mysql
`
:
Configures
MySQL
datastore
.
*
`
keycloak
::
service
`
:
Manages
the
keycloak
service
.
*
`
keycloak
::
params
`
:
Sets
parameter
defaults
based
on
fact
values
.
###
Parameters
####
keycloak
#####
version
Version
of
Keycloak
to
install
and
manage
.
Default
is
`
3.4
.
1
.
Final
`
#####
package_url
URL
of
the
Keycloak
download
.
Default
is
based
on
version
.
#####
install_dir
Parent
directory
of
where
to
install
Keycloak
.
Default
is
`
/
opt
`
#####
service_name
Keycloak
service
name
.
Default
is
`
keycloak
`
#####
service_ensure
Keycloak
service
ensure
property
.
Default
is
`
running
`
#####
service_enable
Keycloak
service
enable
property
.
Default
is
`
true
`
#####
service_hasstatus
Keycloak
service
hasstatus
parameter
.
Default
is
`
true
`
#####
service_hasrestart
Keycloak
service
hasrestart
parameter
.
Default
is
`
true
`
#####
user
Keycloak
user
name
.
Default
is
`
keycloak
`
#####
group
Keycloak
user
group
name
.
Default
is
`
keycloak
`
#####
user_uid
Keycloak
user
UID
.
Default
is
`
undef
`
#####
group_gid
Keycloak
user
group
GID
.
Default
is
`
undef
`
#####
admin_user
Keycloak
administrative
username
.
Default
is
`
admin
`
#####
admin
\
_user
\
_password
Keycloak
administrative
user
password
.
Default
is
`
changeme
`
#####
manage_datasource
Boolean
that
determines
if
configured
datasource
will
be
managed
.
Only
applies
when
`
datasource_driver
`
is
`
mysql
`
.
Default
is
`
true
`
.
#####
datasource_driver
Datasource
driver
to
use
for
Keycloak
.
Valid
values
are
`
h2
`
and
`
mysql
`
.
Default
is
`
h2
`
#####
datasource_host
Datasource
host
.
Only
used
when
datasource_driver
is
`
mysql
`
.
Default
is
`
localhost
`
for
MySQL
.
#####
datasource_port
Datasource
port
.
Only
used
when
datasource_driver
is
`
mysql
`
.
Default
is
`
3306
`
for
MySQL
.
#####
datasource_dbname
Datasource
database
name
.
Default
is
`
keycloak
`
#####
datasource_username
Datasource
user
name
.
Default
is
`
sa
`
#####
datasource_password
Datasource
user
password
.
Default
is
`
sa
`
#####
proxy_https
Boolean
that
sets
if
HTTPS
proxy
should
be
enabled
.
Set
to
`
true
`
if
proxying
traffic
through
Apache
.
Default
is
`
false
`
#####
truststore
Boolean
that
sets
if
truststore
should
be
used
.
Default
is
`
false
`
#####
truststore_hosts
Hash
that
is
used
to
define
keycloak
::
turststore
::
host
resources
.
Default
is
`
{}
`
#####
truststore_password
Truststore
password
.
Default
is
`
keycloak
`
#####
truststore
\
_hostname
\
_verification
\
_policy
Valid
values
are
`
WILDCARD
`
,
`
STRICT
`
,
and
`
ANY
`
.
Default
is
`
WILDCARD
`
#####
http_port
HTTP
port
used
by
Keycloak
.
Default
is
`
8080
`
#####
theme
\
_static
\
_max
\
_age
Max
cache
age
in
seconds
of
static
content
.
Default
is
`
2592000
`
#####
theme
\
_cache
\
_themes
Boolean
that
sets
if
themes
should
be
cached
.
Default
is
`
true
`
#####
theme
\
_cache
\
_templates
Boolean
that
sets
if
templates
should
be
cached
.
Default
is
`
true
`
#####
realms
Hash
that
is
used
to
define
keycloak_realm
resources
.
Default
is
`
{}
`
#####
client_templates
Hash
that
is
used
to
define
keycloak
::
client_template
resources
.
Default
is
`
{}
`
##
Limitations
This
module
has
been
tested
on
:
*
CentOS
7
x86_64
*
Debian
9
x86_64
*
RedHat
7
x86_64
##
Development
###
Testing
Testing
requires
the
following
dependencies
:
*
rake
*
bundler
Install
gem
dependencies
bundle
install
Run
unit
tests
bundle
exec
rake
test
If
you
have
Vagrant
>=
1.2
.
0
installed
you
can
run
system
tests
bundle
exec
rake
beaker
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Jun 4 2025, 6:44 PM (14 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3290493
Attached To
R212 puppet-treydock-keycloak
Event Timeline
Log In to Comment