middleware_automation.keycloak/main/plugins/keycloak_client.html
github-actions 669dc31c39 Update docs for main
Signed-off-by: github-actions <ggraziol@redhat.com>
2023-08-24 11:22:09 +00:00

1189 lines
No EOL
123 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>keycloak_client Allows administration of Keycloak clients via Keycloak API &mdash; Keycloak Ansible Collection documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/antsibull-minimal.css" type="text/css" />
<link rel="stylesheet" href="../_static/ansible-basic-sphinx-ext.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="keycloak_role Allows administration of Keycloak roles via Keycloak API" href="keycloak_role.html" />
<link rel="prev" title="Plugin Index" href="index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home">
Keycloak Ansible Collection
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">User documentation</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../README.html">Ansible Collection - middleware_automation.keycloak</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Plugin Index</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">keycloak_client Allows administration of Keycloak clients via Keycloak API</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#synopsis">Synopsis</a></li>
<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="#attributes">Attributes</a></li>
<li class="toctree-l3"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="#return-values">Return Values</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#authors">Authors</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="keycloak_role.html">keycloak_role Allows administration of Keycloak roles via Keycloak API</a></li>
<li class="toctree-l2"><a class="reference internal" href="keycloak_user_federation.html">keycloak_user_federation Allows administration of Keycloak user federations via Keycloak API</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../roles/index.html">Role Index</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Developer documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../testing.html">Testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../developing.html">Contributors Guidelines</a></li>
<li class="toctree-l1"><a class="reference internal" href="../releasing.html">Collection Versioning Strategy</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">General</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../CHANGELOG.html">Changelog</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Middleware collections</span></p>
<ul>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/infinispan/">Infinispan / Red Hat Data Grid</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/keycloak/">Keycloak / Red Hat Single Sign-On</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/wildfly/">Wildfly / Red Hat JBoss EAP</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/jws/">Tomcat / Red Hat JWS</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/amq/">ActiveMQ / Red Hat AMQ Broker</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/amq_streams/">Kafka / Red Hat AMQ Streams</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/redhat-csp-download/">Red Hat CSP Download</a></li>
<li class="toctree-l1"><a class="reference external" href="https://ansible-middleware.github.io/ansible_collections_jcliff/">JCliff</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Keycloak Ansible Collection</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Plugin Index</a></li>
<li class="breadcrumb-item active">keycloak_client Allows administration of Keycloak clients via Keycloak API</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/plugins/keycloak_client.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<span class="target" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module"></span><section id="keycloak-client-allows-administration-of-keycloak-clients-via-keycloak-api">
<h1>keycloak_client Allows administration of Keycloak clients via Keycloak API<a class="headerlink" href="#keycloak-client-allows-administration-of-keycloak-clients-via-keycloak-api" title="Link to this heading"></a></h1>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>This module is part of the <a class="reference external" href="https://galaxy.ansible.com/middleware_automation/keycloak">middleware_automation.keycloak collection</a>.</p>
<p>To install it, use: <code class="code docutils literal notranslate"><span class="pre">ansible-galaxy</span> <span class="pre">collection</span> <span class="pre">install</span> <span class="pre">middleware_automation.keycloak</span></code>.</p>
<p>To use it in a playbook, specify: <code class="code docutils literal notranslate"><span class="pre">middleware_automation.keycloak.keycloak_client</span></code>.</p>
</div>
<nav class="contents local" id="contents">
<ul class="simple">
<li><p><a class="reference internal" href="#synopsis" id="id1">Synopsis</a></p></li>
<li><p><a class="reference internal" href="#parameters" id="id2">Parameters</a></p></li>
<li><p><a class="reference internal" href="#attributes" id="id3">Attributes</a></p></li>
<li><p><a class="reference internal" href="#examples" id="id4">Examples</a></p></li>
<li><p><a class="reference internal" href="#return-values" id="id5">Return Values</a></p></li>
</ul>
</nav>
<section id="synopsis">
<h2><a class="toc-backref" href="#id1" role="doc-backlink">Synopsis</a><a class="headerlink" href="#synopsis" title="Link to this heading"></a></h2>
<ul class="simple">
<li><p>This module allows the administration of Keycloak clients via the Keycloak REST API. It requires access to the REST API via OpenID Connect; the user connecting and the client being used must have the requisite access rights. In a default Keycloak installation, admin-cli and an admin user would work, as would a separate client definition with the scope tailored to your needs and a user having the expected roles.</p></li>
<li><p>The names of module options are snake_cased versions of the camelCase ones found in the Keycloak API and its documentation at <a class="reference external" href="https://www.keycloak.org/docs-api/8.0/rest-api/index.html">https://www.keycloak.org/docs-api/8.0/rest-api/index.html</a>. Aliases are provided so camelCased versions can be used as well.</p></li>
<li><p>The Keycloak API does not always sanity check inputs e.g. you can set SAML-specific settings on an OpenID Connect client for instance and vice versa. Be careful. If you do not specify a setting, usually a sensible default is chosen.</p></li>
</ul>
</section>
<section id="parameters">
<h2><a class="toc-backref" href="#id2" role="doc-backlink">Parameters</a><a class="headerlink" href="#parameters" title="Link to this heading"></a></h2>
<table class="ansible-option-table docutils align-default" style="width: 100%">
<thead>
<tr class="row-odd"><th class="head"><p>Parameter</p></th>
<th class="head"><p>Comments</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-admin_url"></div>
<div class="ansibleOptionAnchor" id="parameter-adminUrl"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-adminurl"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-admin-url"></span><strong>admin_url</strong></p>
<a class="ansibleOptionLink" href="#parameter-admin_url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: adminUrl</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>URL to the admin interface of the client. This is adminUrl in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-always_display_in_console"></div>
<div class="ansibleOptionAnchor" id="parameter-alwaysDisplayInConsole"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-alwaysdisplayinconsole"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-always-display-in-console"></span><strong>always_display_in_console</strong></p>
<a class="ansibleOptionLink" href="#parameter-always_display_in_console" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: alwaysDisplayInConsole</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 4.7.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Whether or not to display this client in account console, even if the user does not have an active session.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes"><strong>attributes</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>A dict of further attributes for this client. This can contain various configuration settings; an example is given in the examples section. While an exhaustive list of permissible options is not available; possible options as of Keycloak 3.4 are listed below. The Keycloak API does not validate whether a given option is appropriate for the protocol used; if specified anyway, Keycloak will simply not use it.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/jwks.url"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-jwks-url"><strong>jwks.url</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/jwks.url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For OpenID-Connect clients, URL where client keys in JWK are stored.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/jwt.credential.certificate"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-jwt-credential-certificate"><strong>jwt.credential.certificate</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/jwt.credential.certificate" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For OpenID-Connect clients, client certificate for validating JWT issued by client and signed by its key, base64-encoded.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/request.object.signature.alg"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-request-object-signature-alg"><strong>request.object.signature.alg</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/request.object.signature.alg" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For OpenID-Connect clients, JWA algorithm which the client needs to use when sending OIDC request object. One of <code class="docutils literal notranslate"><span class="pre">any</span></code>, <code class="docutils literal notranslate"><span class="pre">none</span></code>, <code class="docutils literal notranslate"><span class="pre">RS256</span></code>.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.authnstatement"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-authnstatement"><strong>saml.authnstatement</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.authnstatement" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, boolean specifying whether or not a statement containing method and timestamp should be included in the login response.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.client.signature"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-client-signature"><strong>saml.client.signature</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.client.signature" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, boolean specifying whether a client signature is required and validated.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.encrypt"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-encrypt"><strong>saml.encrypt</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.encrypt" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Boolean specifying whether SAML assertions should be encrypted with the clients public key.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.force.post.binding"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-force-post-binding"><strong>saml.force.post.binding</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.force.post.binding" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, boolean specifying whether always to use POST binding for responses.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.onetimeuse.condition"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-onetimeuse-condition"><strong>saml.onetimeuse.condition</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.onetimeuse.condition" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, boolean specifying whether a OneTimeUse condition should be included in login responses.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.server.signature"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-server-signature"><strong>saml.server.signature</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.server.signature" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Boolean specifying whether SAML documents should be signed by the realm.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.server.signature.keyinfo.ext"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-server-signature-keyinfo-ext"><strong>saml.server.signature.keyinfo.ext</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.server.signature.keyinfo.ext" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, boolean specifying whether REDIRECT signing key lookup should be optimized through inclusion of the signing key id in the SAML Extensions element.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.signature.algorithm"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-signature-algorithm"><strong>saml.signature.algorithm</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.signature.algorithm" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Signature algorithm used to sign SAML documents. One of <code class="docutils literal notranslate"><span class="pre">RSA_SHA256</span></code>, <code class="docutils literal notranslate"><span class="pre">RSA_SHA1</span></code>, <code class="docutils literal notranslate"><span class="pre">RSA_SHA512</span></code>, or <code class="docutils literal notranslate"><span class="pre">DSA_SHA1</span></code>.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.signing.certificate"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-signing-certificate"><strong>saml.signing.certificate</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.signing.certificate" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML signing key certificate, base64-encoded.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml.signing.private.key"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-signing-private-key"><strong>saml.signing.private.key</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml.signing.private.key" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML signing key private key, base64-encoded.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_assertion_consumer_url_post"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-assertion-consumer-url-post"><strong>saml_assertion_consumer_url_post</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_assertion_consumer_url_post" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML POST Binding URL for the clients assertion consumer service (login responses).</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_assertion_consumer_url_redirect"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-assertion-consumer-url-redirect"><strong>saml_assertion_consumer_url_redirect</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_assertion_consumer_url_redirect" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML Redirect Binding URL for the clients assertion consumer service (login responses).</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_force_name_id_format"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-force-name-id-format"><strong>saml_force_name_id_format</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_force_name_id_format" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, Boolean specifying whether to ignore requested NameID subject format and using the configured one instead.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_name_id_format"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-name-id-format"><strong>saml_name_id_format</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_name_id_format" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For SAML clients, the NameID format to use (one of <code class="docutils literal notranslate"><span class="pre">username</span></code>, <code class="docutils literal notranslate"><span class="pre">email</span></code>, <code class="docutils literal notranslate"><span class="pre">transient</span></code>, or <code class="docutils literal notranslate"><span class="pre">persistent</span></code>)</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_signature_canonicalization_method"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-signature-canonicalization-method"><strong>saml_signature_canonicalization_method</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_signature_canonicalization_method" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML signature canonicalization method. This is one of four values, namely <code class="docutils literal notranslate"><span class="pre">http://www.w3.org/2001/10/xml-exc-c14n#</span></code> for EXCLUSIVE, <code class="docutils literal notranslate"><span class="pre">http://www.w3.org/2001/10/xml-exc-c14n#WithComments</span></code> for EXCLUSIVE_WITH_COMMENTS, <code class="docutils literal notranslate"><span class="pre">http://www.w3.org/TR/2001/REC-xml-c14n-20010315</span></code> for INCLUSIVE, and <code class="docutils literal notranslate"><span class="pre">http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments</span></code> for INCLUSIVE_WITH_COMMENTS.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_single_logout_service_url_post"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-single-logout-service-url-post"><strong>saml_single_logout_service_url_post</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_single_logout_service_url_post" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML POST binding url for the clients single logout service.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/saml_single_logout_service_url_redirect"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-saml-single-logout-service-url-redirect"><strong>saml_single_logout_service_url_redirect</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/saml_single_logout_service_url_redirect" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>SAML redirect binding url for the clients single logout service.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/use.jwks.url"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-use-jwks-url"><strong>use.jwks.url</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/use.jwks.url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For OpenID-Connect clients, boolean specifying whether to use a JWKS URL to obtain client public keys.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-attributes/user.info.response.signature.alg"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-attributes-user-info-response-signature-alg"><strong>user.info.response.signature.alg</strong></p>
<a class="ansibleOptionLink" href="#parameter-attributes/user.info.response.signature.alg" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>For OpenID-Connect clients, JWA algorithm for signed UserInfo-endpoint responses. One of <code class="docutils literal notranslate"><span class="pre">RS256</span></code> or <code class="docutils literal notranslate"><span class="pre">unsigned</span></code>.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-auth_client_id"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-auth-client-id"><strong>auth_client_id</strong></p>
<a class="ansibleOptionLink" href="#parameter-auth_client_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>OpenID Connect <em>client_id</em> to authenticate to the API with.</p>
<p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;admin-cli&quot;</span></code></p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-auth_client_secret"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-auth-client-secret"><strong>auth_client_secret</strong></p>
<a class="ansibleOptionLink" href="#parameter-auth_client_secret" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Client Secret to use in conjunction with <em>auth_client_id</em> (if required).</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-auth_keycloak_url"></div>
<div class="ansibleOptionAnchor" id="parameter-url"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-url"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-auth-keycloak-url"></span><strong>auth_keycloak_url</strong></p>
<a class="ansibleOptionLink" href="#parameter-auth_keycloak_url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: url</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span> / <span class="ansible-option-required">required</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>URL to the Keycloak instance.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-auth_password"></div>
<div class="ansibleOptionAnchor" id="parameter-password"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-password"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-auth-password"></span><strong>auth_password</strong></p>
<a class="ansibleOptionLink" href="#parameter-auth_password" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: password</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Password to authenticate for API access with.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-auth_realm"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-auth-realm"><strong>auth_realm</strong></p>
<a class="ansibleOptionLink" href="#parameter-auth_realm" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Keycloak realm name to authenticate to for API access.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-auth_username"></div>
<div class="ansibleOptionAnchor" id="parameter-username"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-username"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-auth-username"></span><strong>auth_username</strong></p>
<a class="ansibleOptionLink" href="#parameter-auth_username" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: username</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Username to authenticate for API access with.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-authentication_flow_binding_overrides"></div>
<div class="ansibleOptionAnchor" id="parameter-authenticationFlowBindingOverrides"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-authenticationflowbindingoverrides"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-authentication-flow-binding-overrides"></span><strong>authentication_flow_binding_overrides</strong></p>
<a class="ansibleOptionLink" href="#parameter-authentication_flow_binding_overrides" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: authenticationFlowBindingOverrides</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 3.4.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Override realm authentication flow bindings.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-authorization_services_enabled"></div>
<div class="ansibleOptionAnchor" id="parameter-authorizationServicesEnabled"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-authorizationservicesenabled"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-authorization-services-enabled"></span><strong>authorization_services_enabled</strong></p>
<a class="ansibleOptionLink" href="#parameter-authorization_services_enabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: authorizationServicesEnabled</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Are authorization services enabled for this client or not (OpenID connect). This is authorizationServicesEnabled in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-authorization_settings"></div>
<div class="ansibleOptionAnchor" id="parameter-authorizationSettings"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-authorizationsettings"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-authorization-settings"></span><strong>authorization_settings</strong></p>
<a class="ansibleOptionLink" href="#parameter-authorization_settings" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: authorizationSettings</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>a data structure defining the authorization settings for this client. For reference, please see the Keycloak API docs at <a class="reference external" href="https://www.keycloak.org/docs-api/8.0/rest-api/index.html#_resourceserverrepresentation">https://www.keycloak.org/docs-api/8.0/rest-api/index.html#_resourceserverrepresentation</a>. This is authorizationSettings in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-base_url"></div>
<div class="ansibleOptionAnchor" id="parameter-baseUrl"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-baseurl"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-base-url"></span><strong>base_url</strong></p>
<a class="ansibleOptionLink" href="#parameter-base_url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: baseUrl</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Default URL to use when the auth server needs to redirect or link back to the client This is baseUrl in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-bearer_only"></div>
<div class="ansibleOptionAnchor" id="parameter-bearerOnly"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-beareronly"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-bearer-only"></span><strong>bearer_only</strong></p>
<a class="ansibleOptionLink" href="#parameter-bearer_only" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: bearerOnly</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>The access type of this client is bearer-only. This is bearerOnly in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-client_authenticator_type"></div>
<div class="ansibleOptionAnchor" id="parameter-clientAuthenticatorType"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-clientauthenticatortype"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-client-authenticator-type"></span><strong>client_authenticator_type</strong></p>
<a class="ansibleOptionLink" href="#parameter-client_authenticator_type" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: clientAuthenticatorType</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>How do clients authenticate with the auth server? Either <code class="docutils literal notranslate"><span class="pre">client-secret</span></code> or <code class="docutils literal notranslate"><span class="pre">client-jwt</span></code> can be chosen. When using <code class="docutils literal notranslate"><span class="pre">client-secret</span></code>, the module parameter <em>secret</em> can set it, while for <code class="docutils literal notranslate"><span class="pre">client-jwt</span></code>, you can use the keys <code class="docutils literal notranslate"><span class="pre">use.jwks.url</span></code>, <code class="docutils literal notranslate"><span class="pre">jwks.url</span></code>, and <code class="docutils literal notranslate"><span class="pre">jwt.credential.certificate</span></code> in the <em>attributes</em> module parameter to configure its behavior. This is clientAuthenticatorType in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;client-secret&quot;</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;client-jwt&quot;</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-client_id"></div>
<div class="ansibleOptionAnchor" id="parameter-clientId"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-clientid"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-client-id"></span><strong>client_id</strong></p>
<a class="ansibleOptionLink" href="#parameter-client_id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: clientId</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Client id of client to be worked on. This is usually an alphanumeric name chosen by you. Either this or <em>id</em> is required. If you specify both, <em>id</em> takes precedence. This is clientId in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-client_template"></div>
<div class="ansibleOptionAnchor" id="parameter-clientTemplate"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-clienttemplate"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-client-template"></span><strong>client_template</strong></p>
<a class="ansibleOptionLink" href="#parameter-client_template" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: clientTemplate</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Client template to use for this client. If it does not exist this field will silently be dropped. This is clientTemplate in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-connection_timeout"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-connection-timeout"><strong>connection_timeout</strong></p>
<a class="ansibleOptionLink" href="#parameter-connection_timeout" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 4.5.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Controls the HTTP connections timeout period (in seconds) to Keycloak API.</p>
<p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">10</span></code></p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-consent_required"></div>
<div class="ansibleOptionAnchor" id="parameter-consentRequired"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-consentrequired"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-consent-required"></span><strong>consent_required</strong></p>
<a class="ansibleOptionLink" href="#parameter-consent_required" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: consentRequired</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>If enabled, users have to consent to client access. This is consentRequired in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-default_client_scopes"></div>
<div class="ansibleOptionAnchor" id="parameter-defaultClientScopes"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-defaultclientscopes"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-default-client-scopes"></span><strong>default_client_scopes</strong></p>
<a class="ansibleOptionLink" href="#parameter-default_client_scopes" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: defaultClientScopes</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 4.7.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>List of default client scopes.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-default_roles"></div>
<div class="ansibleOptionAnchor" id="parameter-defaultRoles"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-defaultroles"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-default-roles"></span><strong>default_roles</strong></p>
<a class="ansibleOptionLink" href="#parameter-default_roles" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: defaultRoles</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>list of default roles for this client. If the client roles referenced do not exist yet, they will be created. This is defaultRoles in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-description"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-description"><strong>description</strong></p>
<a class="ansibleOptionLink" href="#parameter-description" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Description of the client in Keycloak.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-direct_access_grants_enabled"></div>
<div class="ansibleOptionAnchor" id="parameter-directAccessGrantsEnabled"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-directaccessgrantsenabled"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-direct-access-grants-enabled"></span><strong>direct_access_grants_enabled</strong></p>
<a class="ansibleOptionLink" href="#parameter-direct_access_grants_enabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: directAccessGrantsEnabled</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Are direct access grants enabled for this client or not (OpenID connect). This is directAccessGrantsEnabled in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-enabled"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-enabled"><strong>enabled</strong></p>
<a class="ansibleOptionLink" href="#parameter-enabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Is this client enabled or not?</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-frontchannel_logout"></div>
<div class="ansibleOptionAnchor" id="parameter-frontchannelLogout"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-frontchannellogout"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-frontchannel-logout"></span><strong>frontchannel_logout</strong></p>
<a class="ansibleOptionLink" href="#parameter-frontchannel_logout" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: frontchannelLogout</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Is frontchannel logout enabled for this client or not. This is frontchannelLogout in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-full_scope_allowed"></div>
<div class="ansibleOptionAnchor" id="parameter-fullScopeAllowed"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-fullscopeallowed"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-full-scope-allowed"></span><strong>full_scope_allowed</strong></p>
<a class="ansibleOptionLink" href="#parameter-full_scope_allowed" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: fullScopeAllowed</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Is the “Full Scope Allowed” feature set for this client or not. This is fullScopeAllowed in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-http_agent"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-http-agent"><strong>http_agent</strong></p>
<a class="ansibleOptionLink" href="#parameter-http_agent" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 5.4.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Configures the HTTP User-Agent header.</p>
<p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;Ansible&quot;</span></code></p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-id"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-id"><strong>id</strong></p>
<a class="ansibleOptionLink" href="#parameter-id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Id of client to be worked on. This is usually an UUID. Either this or <em>client_id</em> is required. If you specify both, this takes precedence.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-implicit_flow_enabled"></div>
<div class="ansibleOptionAnchor" id="parameter-implicitFlowEnabled"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-implicitflowenabled"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-implicit-flow-enabled"></span><strong>implicit_flow_enabled</strong></p>
<a class="ansibleOptionLink" href="#parameter-implicit_flow_enabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: implicitFlowEnabled</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Enable implicit flow for this client or not (OpenID connect). This is implicitFlowEnabled in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-name"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-name"><strong>name</strong></p>
<a class="ansibleOptionLink" href="#parameter-name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Name of the client (this is not the same as <em>client_id</em>).</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-node_re_registration_timeout"></div>
<div class="ansibleOptionAnchor" id="parameter-nodeReRegistrationTimeout"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-nodereregistrationtimeout"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-node-re-registration-timeout"></span><strong>node_re_registration_timeout</strong></p>
<a class="ansibleOptionLink" href="#parameter-node_re_registration_timeout" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: nodeReRegistrationTimeout</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Cluster node re-registration timeout for this client. This is nodeReRegistrationTimeout in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-not_before"></div>
<div class="ansibleOptionAnchor" id="parameter-notBefore"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-notbefore"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-not-before"></span><strong>not_before</strong></p>
<a class="ansibleOptionLink" href="#parameter-not_before" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: notBefore</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">integer</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Revoke any tokens issued before this date for this client (this is a UNIX timestamp). This is notBefore in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-optional_client_scopes"></div>
<div class="ansibleOptionAnchor" id="parameter-optionalClientScopes"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-optionalclientscopes"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-optional-client-scopes"></span><strong>optional_client_scopes</strong></p>
<a class="ansibleOptionLink" href="#parameter-optional_client_scopes" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: optionalClientScopes</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 4.7.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>List of optional client scopes.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol"><strong>protocol</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Type of client (either <code class="docutils literal notranslate"><span class="pre">openid-connect</span></code> or <code class="docutils literal notranslate"><span class="pre">saml</span></code>.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;openid-connect&quot;</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;saml&quot;</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers"></span><strong>protocol_mappers</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: protocolMappers</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>a list of dicts defining protocol mappers for this client. This is protocolMappers in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/config"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/config"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-config"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-config"></span><strong>config</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/config" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Dict specifying the configuration options for the protocol mapper; the contents differ depending on the value of <em>protocolMapper</em> and are not documented other than by the source of the mappers and its parent class(es). An example is given below. It is easiest to obtain valid config values by dumping an already-existing protocol mapper configuration through check-mode in the <em>existing</em> field.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/consentRequired"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/consentRequired"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-consentrequired"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-consentrequired"></span><strong>consentRequired</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/consentRequired" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Specifies whether a user needs to provide consent to a client for this mapper to be active.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/consentText"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/consentText"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-consenttext"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-consenttext"></span><strong>consentText</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/consentText" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The human-readable name of the consent the user is presented to accept.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/id"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/id"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-id"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-id"></span><strong>id</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/id" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>Usually a UUID specifying the internal ID of this protocol mapper instance.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/name"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/name"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-name"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-name"></span><strong>name</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/name" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The name of this protocol mapper.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/protocol"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/protocol"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-protocol"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-protocol"></span><strong>protocol</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/protocol" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>This is either <code class="docutils literal notranslate"><span class="pre">openid-connect</span></code> or <code class="docutils literal notranslate"><span class="pre">saml</span></code>, this specifies for which protocol this protocol mapper. is active.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;openid-connect&quot;</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;saml&quot;</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-indent"></div><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-protocol_mappers/protocolMapper"></div>
<div class="ansibleOptionAnchor" id="parameter-protocolMappers/protocolMapper"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocolmappers-protocolmapper"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-protocol-mappers-protocolmapper"></span><strong>protocolMapper</strong></p>
<a class="ansibleOptionLink" href="#parameter-protocol_mappers/protocolMapper" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-indent-desc"></div><div class="ansible-option-cell"><p>The Keycloak-internal name of the type of this protocol-mapper. While an exhaustive list is impossible to provide since this may be extended through SPIs by the user of Keycloak, by default Keycloak as of 3.4 ships with at least</p>
<p><code class="docutils literal notranslate"><span class="pre">docker-v2-allow-all-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-address-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-full-name-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-group-membership-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-hardcoded-claim-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-hardcoded-role-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-role-name-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-script-based-protocol-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-sha256-pairwise-sub-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-usermodel-attribute-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-usermodel-client-role-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-usermodel-property-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-usermodel-realm-role-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">oidc-usersessionmodel-note-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-group-membership-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-hardcode-attribute-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-hardcode-role-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-role-list-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-role-name-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-user-attribute-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-user-property-mapper</span></code></p>
<p><code class="docutils literal notranslate"><span class="pre">saml-user-session-note-mapper</span></code></p>
<p>An exhaustive list of available mappers on your installation can be obtained on the admin console by going to Server Info -&gt; Providers and looking under protocol-mapper.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-public_client"></div>
<div class="ansibleOptionAnchor" id="parameter-publicClient"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-publicclient"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-public-client"></span><strong>public_client</strong></p>
<a class="ansibleOptionLink" href="#parameter-public_client" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: publicClient</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Is the access type for this client public or not. This is publicClient in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-realm"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-realm"><strong>realm</strong></p>
<a class="ansibleOptionLink" href="#parameter-realm" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>The realm to create the client in.</p>
<p class="ansible-option-line"><span class="ansible-option-default-bold">Default:</span> <code class="ansible-option-default docutils literal notranslate"><span class="pre">&quot;master&quot;</span></code></p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-redirect_uris"></div>
<div class="ansibleOptionAnchor" id="parameter-redirectUris"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-redirecturis"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-redirect-uris"></span><strong>redirect_uris</strong></p>
<a class="ansibleOptionLink" href="#parameter-redirect_uris" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: redirectUris</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Acceptable redirect URIs for this client. This is redirectUris in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-registered_nodes"></div>
<div class="ansibleOptionAnchor" id="parameter-registeredNodes"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-registerednodes"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-registered-nodes"></span><strong>registered_nodes</strong></p>
<a class="ansibleOptionLink" href="#parameter-registered_nodes" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: registeredNodes</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>dict of registered cluster nodes (with <code class="docutils literal notranslate"><span class="pre">nodename</span></code> as the key and last registration time as the value). This is registeredNodes in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-registration_access_token"></div>
<div class="ansibleOptionAnchor" id="parameter-registrationAccessToken"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-registrationaccesstoken"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-registration-access-token"></span><strong>registration_access_token</strong></p>
<a class="ansibleOptionLink" href="#parameter-registration_access_token" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: registrationAccessToken</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>The registration access token provides access for clients to the client registration service. This is registrationAccessToken in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-root_url"></div>
<div class="ansibleOptionAnchor" id="parameter-rootUrl"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-rooturl"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-root-url"></span><strong>root_url</strong></p>
<a class="ansibleOptionLink" href="#parameter-root_url" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: rootUrl</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Root URL appended to relative URLs for this client. This is rootUrl in the Keycloak REST API.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-secret"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-secret"><strong>secret</strong></p>
<a class="ansibleOptionLink" href="#parameter-secret" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>When using <em>client_authenticator_type</em> <code class="docutils literal notranslate"><span class="pre">client-secret</span></code> (the default), you can specify a secret here (otherwise one will be generated if it does not exit). If changing this secret, the module will not register a change currently (but the changed secret will be saved).</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-service_accounts_enabled"></div>
<div class="ansibleOptionAnchor" id="parameter-serviceAccountsEnabled"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-serviceaccountsenabled"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-service-accounts-enabled"></span><strong>service_accounts_enabled</strong></p>
<a class="ansibleOptionLink" href="#parameter-service_accounts_enabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: serviceAccountsEnabled</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Are service accounts enabled for this client or not (OpenID connect). This is serviceAccountsEnabled in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-standard_flow_enabled"></div>
<div class="ansibleOptionAnchor" id="parameter-standardFlowEnabled"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-standardflowenabled"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-standard-flow-enabled"></span><strong>standard_flow_enabled</strong></p>
<a class="ansibleOptionLink" href="#parameter-standard_flow_enabled" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: standardFlowEnabled</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Enable standard flow for this client or not (OpenID connect). This is standardFlowEnabled in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-state"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-state"><strong>state</strong></p>
<a class="ansibleOptionLink" href="#parameter-state" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>State of the client</p>
<p>On <code class="docutils literal notranslate"><span class="pre">present</span></code>, the client will be created (or updated if it exists already).</p>
<p>On <code class="docutils literal notranslate"><span class="pre">absent</span></code>, the client will be removed if it exists</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-default-bold docutils literal notranslate"><span class="pre">&quot;present&quot;</span></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">&quot;absent&quot;</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-surrogate_auth_required"></div>
<div class="ansibleOptionAnchor" id="parameter-surrogateAuthRequired"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-surrogateauthrequired"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-surrogate-auth-required"></span><strong>surrogate_auth_required</strong></p>
<a class="ansibleOptionLink" href="#parameter-surrogate_auth_required" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: surrogateAuthRequired</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Whether or not surrogate auth is required. This is surrogateAuthRequired in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-token"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-token"><strong>token</strong></p>
<a class="ansibleOptionLink" href="#parameter-token" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
<p><span class="ansible-option-versionadded">added in middleware_automation.keycloak 3.0.0</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Authentication token for Keycloak API.</p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-use_template_config"></div>
<div class="ansibleOptionAnchor" id="parameter-useTemplateConfig"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-usetemplateconfig"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-use-template-config"></span><strong>use_template_config</strong></p>
<a class="ansibleOptionLink" href="#parameter-use_template_config" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: useTemplateConfig</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Whether or not to use configuration from the <em>client_template</em>. This is useTemplateConfig in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-use_template_mappers"></div>
<div class="ansibleOptionAnchor" id="parameter-useTemplateMappers"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-usetemplatemappers"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-use-template-mappers"></span><strong>use_template_mappers</strong></p>
<a class="ansibleOptionLink" href="#parameter-use_template_mappers" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: useTemplateMappers</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Whether or not to use mapper configuration from the <em>client_template</em>. This is useTemplateMappers in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-use_template_scope"></div>
<div class="ansibleOptionAnchor" id="parameter-useTemplateScope"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-usetemplatescope"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-use-template-scope"></span><strong>use_template_scope</strong></p>
<a class="ansibleOptionLink" href="#parameter-use_template_scope" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: useTemplateScope</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Whether or not to use scope configuration from the <em>client_template</em>. This is useTemplateScope in the Keycloak REST API.</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">true</span></code></p></li>
</ul>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-validate_certs"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-validate-certs"><strong>validate_certs</strong></p>
<a class="ansibleOptionLink" href="#parameter-validate_certs" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-type">boolean</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Verify TLS certificates (do not disable this in production).</p>
<p class="ansible-option-line"><span class="ansible-option-choices">Choices:</span></p>
<ul class="simple">
<li><p><code class="ansible-option-choices-entry docutils literal notranslate"><span class="pre">false</span></code></p></li>
<li><p><code class="ansible-option-default-bold docutils literal notranslate"><span class="pre">true</span></code> <span class="ansible-option-choices-default-mark">← (default)</span></p></li>
</ul>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="parameter-web_origins"></div>
<div class="ansibleOptionAnchor" id="parameter-webOrigins"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-weborigins"><span id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-parameter-web-origins"></span><strong>web_origins</strong></p>
<a class="ansibleOptionLink" href="#parameter-web_origins" title="Permalink to this option"></a><p class="ansible-option-type-line"><span class="ansible-option-aliases">aliases: webOrigins</span></p>
<p class="ansible-option-type-line"><span class="ansible-option-type">list</span> / <span class="ansible-option-elements">elements=string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>List of allowed CORS origins. This is webOrigins in the Keycloak REST API.</p>
</div></td>
</tr>
</tbody>
</table>
</section>
<section id="attributes">
<h2><a class="toc-backref" href="#id3" role="doc-backlink">Attributes</a><a class="headerlink" href="#attributes" title="Link to this heading"></a></h2>
<table class="ansible-option-table docutils align-default" style="width: 100%">
<thead>
<tr class="row-odd"><th class="head"><p>Attribute</p></th>
<th class="head"><p>Support</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="attribute-check_mode"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-attribute-check-mode"><strong>check_mode</strong></p>
<a class="ansibleOptionLink" href="#attribute-check_mode" title="Permalink to this attribute"></a></div></td>
<td><div class="ansible-option-cell"><p><span class="ansible-attribute-support-label">Support: </span><span class="ansible-attribute-support-full">full</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Can run in <code class="docutils literal notranslate"><span class="pre">check_mode</span></code> and return changed status prediction without modifying target.</p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="attribute-diff_mode"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-attribute-diff-mode"><strong>diff_mode</strong></p>
<a class="ansibleOptionLink" href="#attribute-diff_mode" title="Permalink to this attribute"></a></div></td>
<td><div class="ansible-option-cell"><p><span class="ansible-attribute-support-label">Support: </span><span class="ansible-attribute-support-full">full</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Will return details on what has changed (or possibly needs changing in <code class="docutils literal notranslate"><span class="pre">check_mode</span></code>), when in diff mode.</p>
</div></td>
</tr>
</tbody>
</table>
</section>
<section id="examples">
<h2><a class="toc-backref" href="#id4" role="doc-backlink">Examples</a><a class="headerlink" href="#examples" title="Link to this heading"></a></h2>
<div class="highlight-yaml+jinja notranslate"><div class="highlight"><pre><span></span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Create or update Keycloak client (minimal example), authentication with credentials</span>
<span class="w"> </span><span class="nt">middleware_automation.keycloak.keycloak_client</span><span class="p">:</span>
<span class="w"> </span><span class="nt">auth_keycloak_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://auth.example.com/auth</span>
<span class="w"> </span><span class="nt">auth_realm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">master</span>
<span class="w"> </span><span class="nt">auth_username</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">USERNAME</span>
<span class="w"> </span><span class="nt">auth_password</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">PASSWORD</span>
<span class="w"> </span><span class="nt">client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
<span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">present</span>
<span class="w"> </span><span class="nt">delegate_to</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">localhost</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Create or update Keycloak client (minimal example), authentication with token</span>
<span class="w"> </span><span class="nt">middleware_automation.keycloak.keycloak_client</span><span class="p">:</span>
<span class="w"> </span><span class="nt">auth_client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admin-cli</span>
<span class="w"> </span><span class="nt">auth_keycloak_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://auth.example.com/auth</span>
<span class="w"> </span><span class="nt">auth_realm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">master</span>
<span class="w"> </span><span class="nt">token</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">TOKEN</span>
<span class="w"> </span><span class="nt">client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
<span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">present</span>
<span class="w"> </span><span class="nt">delegate_to</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">localhost</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Delete a Keycloak client</span>
<span class="w"> </span><span class="nt">middleware_automation.keycloak.keycloak_client</span><span class="p">:</span>
<span class="w"> </span><span class="nt">auth_client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admin-cli</span>
<span class="w"> </span><span class="nt">auth_keycloak_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://auth.example.com/auth</span>
<span class="w"> </span><span class="nt">auth_realm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">master</span>
<span class="w"> </span><span class="nt">auth_username</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">USERNAME</span>
<span class="w"> </span><span class="nt">auth_password</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">PASSWORD</span>
<span class="w"> </span><span class="nt">client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
<span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">absent</span>
<span class="w"> </span><span class="nt">delegate_to</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">localhost</span>
<span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Create or update a Keycloak client (with all the bells and whistles)</span>
<span class="w"> </span><span class="nt">middleware_automation.keycloak.keycloak_client</span><span class="p">:</span>
<span class="w"> </span><span class="nt">auth_client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admin-cli</span>
<span class="w"> </span><span class="nt">auth_keycloak_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://auth.example.com/auth</span>
<span class="w"> </span><span class="nt">auth_realm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">master</span>
<span class="w"> </span><span class="nt">auth_username</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">USERNAME</span>
<span class="w"> </span><span class="nt">auth_password</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">PASSWORD</span>
<span class="w"> </span><span class="nt">state</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">present</span>
<span class="w"> </span><span class="nt">realm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">master</span>
<span class="w"> </span><span class="nt">client_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
<span class="w"> </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">d8b127a3-31f6-44c8-a7e4-4ab9a3e78d95</span>
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">this_is_a_test</span>
<span class="w"> </span><span class="nt">description</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Description of this wonderful client</span>
<span class="w"> </span><span class="nt">root_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://www.example.com/</span>
<span class="w"> </span><span class="nt">admin_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://www.example.com/admin_url</span>
<span class="w"> </span><span class="nt">base_url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">basepath</span>
<span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">client_authenticator_type</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">client-secret</span>
<span class="w"> </span><span class="nt">secret</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">REALLYWELLKEPTSECRET</span>
<span class="w"> </span><span class="nt">redirect_uris</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://www.example.com/*</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">http://localhost:8888/</span>
<span class="w"> </span><span class="nt">web_origins</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://www.example.com/*</span>
<span class="w"> </span><span class="nt">not_before</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1507825725</span>
<span class="w"> </span><span class="nt">bearer_only</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">consent_required</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">standard_flow_enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">implicit_flow_enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">direct_access_grants_enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">service_accounts_enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">authorization_services_enabled</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">public_client</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">frontchannel_logout</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">protocol</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">openid-connect</span>
<span class="w"> </span><span class="nt">full_scope_allowed</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">node_re_registration_timeout</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">-1</span>
<span class="w"> </span><span class="nt">client_template</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
<span class="w"> </span><span class="nt">use_template_config</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">use_template_scope</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">use_template_mappers</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">always_display_in_console</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">registered_nodes</span><span class="p">:</span>
<span class="w"> </span><span class="nt">node01.example.com</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1507828202</span>
<span class="w"> </span><span class="nt">registration_access_token</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">eyJWT_TOKEN</span>
<span class="w"> </span><span class="nt">surrogate_auth_required</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">default_roles</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test01</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test02</span>
<span class="w"> </span><span class="nt">authentication_flow_binding_overrides</span><span class="p">:</span>
<span class="w"> </span><span class="nt">browser</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">4c90336b-bf1d-4b87-916d-3677ba4e5fbb</span>
<span class="w"> </span><span class="nt">protocol_mappers</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">config</span><span class="p">:</span>
<span class="w"> </span><span class="nt">access.token.claim</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">claim.name</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;family_name&quot;</span>
<span class="w"> </span><span class="nt">id.token.claim</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">jsonType.label</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">String</span>
<span class="w"> </span><span class="nt">user.attribute</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lastName</span>
<span class="w"> </span><span class="nt">userinfo.token.claim</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">consentRequired</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">consentText</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;${familyName}&quot;</span>
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">family name</span>
<span class="w"> </span><span class="nt">protocol</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">openid-connect</span>
<span class="w"> </span><span class="nt">protocolMapper</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">oidc-usermodel-property-mapper</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">config</span><span class="p">:</span>
<span class="w"> </span><span class="nt">attribute.name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Role</span>
<span class="w"> </span><span class="nt">attribute.nameformat</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Basic</span>
<span class="w"> </span><span class="nt">single</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">consentRequired</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">role list</span>
<span class="w"> </span><span class="nt">protocol</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">saml</span>
<span class="w"> </span><span class="nt">protocolMapper</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">saml-role-list-mapper</span>
<span class="w"> </span><span class="nt">attributes</span><span class="p">:</span>
<span class="w"> </span><span class="nt">saml.authnstatement</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">saml.client.signature</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">saml.force.post.binding</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">saml.server.signature</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">saml.signature.algorithm</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">RSA_SHA256</span>
<span class="w"> </span><span class="nt">saml.signing.certificate</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CERTIFICATEHERE</span>
<span class="w"> </span><span class="nt">saml.signing.private.key</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">PRIVATEKEYHERE</span>
<span class="w"> </span><span class="nt">saml_force_name_id_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">false</span>
<span class="w"> </span><span class="nt">saml_name_id_format</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">username</span>
<span class="w"> </span><span class="nt">saml_signature_canonicalization_method</span><span class="p">:</span><span class="w"> </span><span class="s">&quot;http://www.w3.org/2001/10/xml-exc-c14n#&quot;</span>
<span class="w"> </span><span class="nt">user.info.response.signature.alg</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">RS256</span>
<span class="w"> </span><span class="nt">request.object.signature.alg</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">RS256</span>
<span class="w"> </span><span class="nt">use.jwks.url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
<span class="w"> </span><span class="nt">jwks.url</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">JWKS_URL_FOR_CLIENT_AUTH_JWT</span>
<span class="w"> </span><span class="nt">jwt.credential.certificate</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">JWT_CREDENTIAL_CERTIFICATE_FOR_CLIENT_AUTH</span>
<span class="w"> </span><span class="nt">delegate_to</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">localhost</span>
</pre></div>
</div>
</section>
<section id="return-values">
<h2><a class="toc-backref" href="#id5" role="doc-backlink">Return Values</a><a class="headerlink" href="#return-values" title="Link to this heading"></a></h2>
<p>Common return values are documented <a class="reference external" href="https://docs.ansible.com/ansible/latest/reference_appendices/common_return_values.html#common-return-values" title="(in Ansible v8)"><span class="xref std std-ref">here</span></a>, the following are the fields unique to this module:</p>
<table class="ansible-option-table docutils align-default" style="width: 100%">
<thead>
<tr class="row-odd"><th class="head"><p>Key</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="return-end_state"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-return-end-state"><strong>end_state</strong></p>
<a class="ansibleOptionLink" href="#return-end_state" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Representation of client after module execution (sample is truncated).</p>
<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> on success</p>
<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> <code class="ansible-option-sample docutils literal notranslate"><span class="pre">{&quot;adminUrl&quot;:</span> <span class="pre">&quot;http://www.example.com/admin_url&quot;,</span> <span class="pre">&quot;attributes&quot;:</span> <span class="pre">{&quot;request.object.signature.alg&quot;:</span> <span class="pre">&quot;RS256&quot;}}</span></code></p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="return-existing"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-return-existing"><strong>existing</strong></p>
<a class="ansibleOptionLink" href="#return-existing" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Representation of existing client (sample is truncated).</p>
<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> <code class="ansible-option-sample docutils literal notranslate"><span class="pre">{&quot;adminUrl&quot;:</span> <span class="pre">&quot;http://www.example.com/admin_url&quot;,</span> <span class="pre">&quot;attributes&quot;:</span> <span class="pre">{&quot;request.object.signature.alg&quot;:</span> <span class="pre">&quot;RS256&quot;}}</span></code></p>
</div></td>
</tr>
<tr class="row-even"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="return-msg"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-return-msg"><strong>msg</strong></p>
<a class="ansibleOptionLink" href="#return-msg" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">string</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Message as to what action was taken.</p>
<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> <code class="ansible-option-sample docutils literal notranslate"><span class="pre">&quot;Client</span> <span class="pre">testclient</span> <span class="pre">has</span> <span class="pre">been</span> <span class="pre">updated&quot;</span></code></p>
</div></td>
</tr>
<tr class="row-odd"><td><div class="ansible-option-cell">
<div class="ansibleOptionAnchor" id="return-proposed"></div><p class="ansible-option-title" id="ansible-collections-middleware-automation-keycloak-keycloak-client-module-return-proposed"><strong>proposed</strong></p>
<a class="ansibleOptionLink" href="#return-proposed" title="Permalink to this return value"></a><p class="ansible-option-type-line"><span class="ansible-option-type">dictionary</span></p>
</div></td>
<td><div class="ansible-option-cell"><p>Representation of proposed client.</p>
<p class="ansible-option-line"><span class="ansible-option-returned-bold">Returned:</span> always</p>
<p class="ansible-option-line ansible-option-sample"><span class="ansible-option-sample-bold">Sample:</span> <code class="ansible-option-sample docutils literal notranslate"><span class="pre">{&quot;clientId&quot;:</span> <span class="pre">&quot;test&quot;}</span></code></p>
</div></td>
</tr>
</tbody>
</table>
<section id="authors">
<h3>Authors<a class="headerlink" href="#authors" title="Link to this heading"></a></h3>
<ul class="simple">
<li><p>Eike Frost (&#64;eikef)</p></li>
</ul>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="Plugin Index" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="keycloak_role.html" class="btn btn-neutral float-right" title="keycloak_role Allows administration of Keycloak roles via Keycloak API" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2023, Red Hat, Inc..</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>