diff --git a/roles/keycloak/tasks/blocks/configure_idps.yml b/roles/keycloak/tasks/blocks/configure_idps.yml index 75a96571..ef6be991 100644 --- a/roles/keycloak/tasks/blocks/configure_idps.yml +++ b/roles/keycloak/tasks/blocks/configure_idps.yml @@ -30,8 +30,9 @@ providerId: "{{ item[1].data.providerId }}" status_code: 200 register: idp_result + when: item[1].data.config.autoUpdate == "true" or (item[1].metadataUrl is defined and new_idp) - - name: "Setup saml IdP {{ item[1].data.alias }}" + - name: "Setup autoUpdate {{ item[1].providerId }} IdP {{ item[1].data.alias }}" uri: url: "{{ keycloak_proxy_host }}/admin/realms/{{ item[0].name }}/identity-provider/instances{% if new_idp %}{% else %}/{{ item[1].data.alias }}{% endif %}" method: "{% if new_idp %}POST{% else %}PUT{% endif %}" @@ -41,6 +42,20 @@ body: "{{ { 'config': idp_result.json } | combine( item[1].data, recursive=True ) }}" status_code: "{% if new_idp %}201{% else %}204{% endif %}" + when: item[1].data.config.autoUpdate == "true" or (item[1].metadataUrl is defined and new_idp) + + - name: "Setup no autoUpdate {{ item[1].providerId }} IdP {{ item[1].data.alias }}" + uri: + url: "{{ keycloak_proxy_host }}/admin/realms/{{ item[0].name }}/identity-provider/instances{% if new_idp %}{% else %}/{{ item[1].data.alias }}{% endif %}" + method: "{% if new_idp %}POST{% else %}PUT{% endif %}" + body_format: json + headers: + Authorization: "Bearer {{ tokens.json.access_token }}" + body: + "{{ item[1].data }}" + status_code: "{% if new_idp %}201{% else %}204{% endif %}" + when: item[1].metadataUrl is undefined or ( item[1].data.config.autoUpdate != "true" and !new_idp) + tags: - "keycloak:config:realm:idps" - "keycloak:config:realm:oidc_idps"