123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959 |
- apiVersion: k8s.keycloak.org/v2alpha1
- kind: KeycloakRealmImport
- metadata:
- name: {{ rhbk.name | default('sso') }}-{{ rhbk.realm | default('sample-realm') }}-import
- namespace: {{ rhbk.namespace | default('keycloak') }}
- spec:
- keycloakCRName: {{ rhbk.name | default('sso') }}
- realm:
- id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- realm: {{ rhbk.realm | default('sample-realm') }}
- notBefore: 0
- defaultSignatureAlgorithm: RS256
- revokeRefreshToken: false
- refreshTokenMaxReuse: 0
- accessTokenLifespan: 300
- accessTokenLifespanForImplicitFlow: 900
- ssoSessionIdleTimeout: 1800
- ssoSessionMaxLifespan: 36000
- ssoSessionIdleTimeoutRememberMe: 0
- ssoSessionMaxLifespanRememberMe: 0
- offlineSessionIdleTimeout: 2592000
- offlineSessionMaxLifespanEnabled: false
- offlineSessionMaxLifespan: 5184000
- clientSessionIdleTimeout: 0
- clientSessionMaxLifespan: 0
- clientOfflineSessionIdleTimeout: 0
- clientOfflineSessionMaxLifespan: 0
- accessCodeLifespan: 60
- accessCodeLifespanUserAction: 300
- accessCodeLifespanLogin: 1800
- actionTokenGeneratedByAdminLifespan: 43200
- actionTokenGeneratedByUserLifespan: 300
- oauth2DeviceCodeLifespan: 600
- oauth2DevicePollingInterval: 5
- enabled: true
- sslRequired: external
- registrationAllowed: false
- registrationEmailAsUsername: false
- rememberMe: false
- verifyEmail: false
- loginWithEmailAllowed: false
- duplicateEmailsAllowed: false
- resetPasswordAllowed: false
- editUsernameAllowed: false
- bruteForceProtected: false
- permanentLockout: false
- maxTemporaryLockouts: 0
- bruteForceStrategy: MULTIPLE
- maxFailureWaitSeconds: 900
- minimumQuickLoginWaitSeconds: 60
- waitIncrementSeconds: 60
- quickLoginCheckMilliSeconds: 1000
- maxDeltaTimeSeconds: 43200
- failureFactor: 30
- roles:
- realm:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-rr-offline_access') | ansible.builtin.to_uuid }}
- name: offline_access
- description: ${role_offline-access}
- composite: false
- clientRole: false
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-rr-default-roles-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- name: default-roles-{{ rhbk.realm | default('sample-realm') }}
- description: ${role_default-roles}
- composite: true
- composites:
- realm:
- - offline_access
- - uma_authorization
- client:
- account:
- - view-profile
- - manage-account
- clientRole: false
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-rr-uma_authorization') | ansible.builtin.to_uuid }}
- name: uma_authorization
- description: ${role_uma_authorization}
- composite: false
- clientRole: false
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- attributes: {}
- client:
- realm-management:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-create-client') | ansible.builtin.to_uuid }}
- name: create-client
- description: ${role_create-client}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-query-clients') | ansible.builtin.to_uuid }}
- name: query-clients
- description: ${role_query-clients}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-view-identity-providers') | ansible.builtin.to_uuid }}
- name: view-identity-providers
- description: ${role_view-identity-providers}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-impersonation') | ansible.builtin.to_uuid }}
- name: impersonation
- description: ${role_impersonation}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-view-authorization') | ansible.builtin.to_uuid }}
- name: view-authorization
- description: ${role_view-authorization}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-view-realm') | ansible.builtin.to_uuid }}
- name: view-realm
- description: ${role_view-realm}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-manage-clients') | ansible.builtin.to_uuid }}
- name: manage-clients
- description: ${role_manage-clients}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-manage-users') | ansible.builtin.to_uuid }}
- name: manage-users
- description: ${role_manage-users}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-query-realms') | ansible.builtin.to_uuid }}
- name: query-realms
- description: ${role_query-realms}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-view-users') | ansible.builtin.to_uuid }}
- name: view-users
- description: ${role_view-users}
- composite: true
- composites:
- client:
- realm-management:
- - query-groups
- - query-users
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-realm-admin') | ansible.builtin.to_uuid }}
- name: realm-admin
- description: ${role_realm-admin}
- composite: true
- composites:
- client:
- realm-management:
- - create-client
- - query-clients
- - view-identity-providers
- - impersonation
- - view-authorization
- - view-realm
- - manage-users
- - manage-clients
- - query-realms
- - view-users
- - manage-realm
- - manage-authorization
- - query-groups
- - manage-events
- - manage-identity-providers
- - view-clients
- - view-events
- - query-users
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-manage-realm') | ansible.builtin.to_uuid }}
- name: manage-realm
- description: ${role_manage-realm}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-manage-authorization') | ansible.builtin.to_uuid }}
- name: manage-authorization
- description: ${role_manage-authorization}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-query-groups') | ansible.builtin.to_uuid }}
- name: query-groups
- description: ${role_query-groups}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-manage-events') | ansible.builtin.to_uuid }}
- name: manage-events
- description: ${role_manage-events}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-manage-identity-providers') | ansible.builtin.to_uuid }}
- name: manage-identity-providers
- description: ${role_manage-identity-providers}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-view-clients') | ansible.builtin.to_uuid }}
- name: view-clients
- description: ${role_view-clients}
- composite: true
- composites:
- client:
- realm-management:
- - query-clients
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-query-users') | ansible.builtin.to_uuid }}
- name: query-users
- description: ${role_query-users}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cr-view-events') | ansible.builtin.to_uuid }}
- name: view-events
- description: ${role_view-events}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- attributes: {}
- security-admin-console: []
- {% for client in rhbk.clients %}
- {{ client.id }}: []
- {% endfor %}
- admin-cli: []
- account-console: []
- broker:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-br-read-token') | ansible.builtin.to_uuid }}
- name: read-token
- description: ${role_read-token}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-broker') | ansible.builtin.to_uuid }}
- attributes: {}
- account:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-delete-account') | ansible.builtin.to_uuid }}
- name: delete-account
- description: ${role_delete-account}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-manage-consent') | ansible.builtin.to_uuid }}
- name: manage-consent
- description: ${role_manage-consent}
- composite: true
- composites:
- client:
- account:
- - view-consent
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-view-profile') | ansible.builtin.to_uuid }}
- name: view-profile
- description: ${role_view-profile}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-manage-account') | ansible.builtin.to_uuid }}
- name: manage-account
- description: ${role_manage-account}
- composite: true
- composites:
- client:
- account:
- - manage-account-links
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-manage-account-links') | ansible.builtin.to_uuid }}
- name: manage-account-links
- description: ${role_manage-account-links}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-view-applications') | ansible.builtin.to_uuid }}
- name: view-applications
- description: ${role_view-applications}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-view-groups') | ansible.builtin.to_uuid }}
- name: view-groups
- description: ${role_view-groups}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-ar-view-consent') | ansible.builtin.to_uuid }}
- name: view-consent
- description: ${role_view-consent}
- composite: false
- clientRole: true
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- attributes: {}
- groups: []
- defaultRole:
- id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-default-roles-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- name: default-roles-{{ (rhbk.realm | default('sample-realm')) }}
- description: ${role_default-roles}
- composite: true
- clientRole: false
- containerId: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm'))) | ansible.builtin.to_uuid }}
- requiredCredentials:
- - password
- otpPolicyType: totp
- otpPolicyAlgorithm: HmacSHA1
- otpPolicyInitialCounter: 0
- otpPolicyDigits: 6
- otpPolicyLookAheadWindow: 1
- otpPolicyPeriod: 30
- otpPolicyCodeReusable: false
- otpSupportedApplications:
- - totpAppFreeOTPName
- - totpAppGoogleName
- - totpAppMicrosoftAuthenticatorName
- localizationTexts: {}
- webAuthnPolicyRpEntityName: keycloak
- webAuthnPolicySignatureAlgorithms:
- - ES256
- - RS256
- webAuthnPolicyRpId: ""
- webAuthnPolicyAttestationConveyancePreference: not specified
- webAuthnPolicyAuthenticatorAttachment: not specified
- webAuthnPolicyRequireResidentKey: not specified
- webAuthnPolicyUserVerificationRequirement: not specified
- webAuthnPolicyCreateTimeout: 0
- webAuthnPolicyAvoidSameAuthenticatorRegister: false
- webAuthnPolicyAcceptableAaguids: []
- webAuthnPolicyExtraOrigins: []
- webAuthnPolicyPasswordlessRpEntityName: keycloak
- webAuthnPolicyPasswordlessSignatureAlgorithms:
- - ES256
- - RS256
- webAuthnPolicyPasswordlessRpId: ""
- webAuthnPolicyPasswordlessAttestationConveyancePreference: not specified
- webAuthnPolicyPasswordlessAuthenticatorAttachment: not specified
- webAuthnPolicyPasswordlessRequireResidentKey: not specified
- webAuthnPolicyPasswordlessUserVerificationRequirement: not specified
- webAuthnPolicyPasswordlessCreateTimeout: 0
- webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister: false
- webAuthnPolicyPasswordlessAcceptableAaguids: []
- webAuthnPolicyPasswordlessExtraOrigins: []
- scopeMappings:
- - clientScope: offline_access
- roles:
- - offline_access
- clientScopeMappings:
- account:
- - client: account-console
- roles:
- - manage-account
- - view-groups
- clients:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account') | ansible.builtin.to_uuid }}
- clientId: account
- name: ${client_account}
- rootUrl: ${authBaseUrl}
- baseUrl: /realms/{{ rhbk.realm | default('sample-realm') }}/account/
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- redirectUris:
- - /realms/{{ rhbk.realm | default('sample-realm') }}/account/*
- webOrigins: []
- notBefore: 0
- bearerOnly: false
- consentRequired: false
- standardFlowEnabled: true
- implicitFlowEnabled: false
- directAccessGrantsEnabled: false
- serviceAccountsEnabled: false
- publicClient: true
- frontchannelLogout: false
- protocol: openid-connect
- attributes:
- realm_client: "false"
- post.logout.redirect.uris: +
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: false
- nodeReRegistrationTimeout: 0
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account-console') | ansible.builtin.to_uuid }}
- clientId: account-console
- name: ${client_account-console}
- rootUrl: ${authBaseUrl}
- baseUrl: /realms/{{ rhbk.realm | default('sample-realm') }}/account/
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- redirectUris:
- - /realms/{{ rhbk.realm | default('sample-realm') }}/account/*
- webOrigins: []
- notBefore: 0
- bearerOnly: false
- consentRequired: false
- standardFlowEnabled: true
- implicitFlowEnabled: false
- directAccessGrantsEnabled: false
- serviceAccountsEnabled: false
- publicClient: true
- frontchannelLogout: false
- protocol: openid-connect
- attributes:
- realm_client: "false"
- post.logout.redirect.uris: +
- pkce.code.challenge.method: S256
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: false
- nodeReRegistrationTimeout: 0
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-account-console-pm-audience-resolve') | ansible.builtin.to_uuid }}
- name: audience resolve
- protocol: openid-connect
- protocolMapper: oidc-audience-resolve-mapper
- consentRequired: false
- config: {}
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-admin-cli') | ansible.builtin.to_uuid }}
- clientId: admin-cli
- name: ${client_admin-cli}
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- redirectUris: []
- webOrigins: []
- notBefore: 0
- bearerOnly: false
- consentRequired: false
- standardFlowEnabled: false
- implicitFlowEnabled: false
- directAccessGrantsEnabled: true
- serviceAccountsEnabled: false
- publicClient: true
- frontchannelLogout: false
- protocol: openid-connect
- attributes:
- realm_client: "false"
- client.use.lightweight.access.token.enabled: "true"
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: true
- nodeReRegistrationTimeout: 0
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-broker') | ansible.builtin.to_uuid }}
- clientId: broker
- name: ${client_broker}
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- redirectUris: []
- webOrigins: []
- notBefore: 0
- bearerOnly: true
- consentRequired: false
- standardFlowEnabled: true
- implicitFlowEnabled: false
- directAccessGrantsEnabled: false
- serviceAccountsEnabled: false
- publicClient: false
- frontchannelLogout: false
- protocol: openid-connect
- attributes:
- realm_client: "true"
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: false
- nodeReRegistrationTimeout: 0
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- {% for client in rhbk.clients %}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-' + client.id) | ansible.builtin.to_uuid }}
- clientId: {{ client.id }}
- name: "{{ client.name | default(client.id) }}"
- description: ""
- rootUrl: {{ client.base_url }}
- adminUrl: {{ client.base_url }}
- baseUrl: ""
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- {% if client.secret is defined %}
- secret: '{{ client.secret }}'
- {% endif %}
- redirectUris:
- - {{ client.base_url }}/*
- webOrigins:
- - {{ client.base_url }}
- notBefore: 0
- bearerOnly: false
- consentRequired: false
- standardFlowEnabled: true
- implicitFlowEnabled: false
- directAccessGrantsEnabled: {{ client.direct_grants | default(true) | bool }}
- serviceAccountsEnabled: false
- publicClient: false
- frontchannelLogout: true
- protocol: openid-connect
- attributes:
- client.secret.creation.time: "1755544217"
- request.object.signature.alg: any
- request.object.encryption.alg: any
- client.introspection.response.allow.jwt.claim.enabled: "false"
- standard.token.exchange.enabled: "false"
- frontchannel.logout.session.required: "true"
- oauth2.device.authorization.grant.enabled: "false"
- use.jwks.url: "false"
- backchannel.logout.revoke.offline.tokens: "false"
- use.refresh.tokens: "true"
- realm_client: "false"
- oidc.ciba.grant.enabled: "false"
- client.use.lightweight.access.token.enabled: "false"
- backchannel.logout.session.required: "true"
- client_credentials.use_refresh_token: "false"
- request.object.required: not required
- access.token.header.type.rfc9068: "false"
- acr.loa.map: '{}'
- require.pushed.authorization.requests: "false"
- tls.client.certificate.bound.access.tokens: "false"
- display.on.consent.screen: "false"
- request.object.encryption.enc: any
- token.response.type.bearer.lower-case: "false"
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: true
- nodeReRegistrationTimeout: -1
- {% if client.map_groups | default(true) %}
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-openshift-pm-groups') | ansible.builtin.to_uuid }}
- name: groups
- protocol: openid-connect
- protocolMapper: oidc-group-membership-mapper
- consentRequired: false
- config:
- claim.name: groups
- full.path: "false"
- id.token.claim: "true"
- access.token.claim: "true"
- userinfo.token.claim: "true"
- introspection.token.claim: "true"
- lightweight.claim: "false"
- multivalued: "true"
- {% endif %}
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- {% endfor %}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-realm-management') | ansible.builtin.to_uuid }}
- clientId: realm-management
- name: ${client_realm-management}
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- redirectUris: []
- webOrigins: []
- notBefore: 0
- bearerOnly: true
- consentRequired: false
- standardFlowEnabled: true
- implicitFlowEnabled: false
- directAccessGrantsEnabled: false
- serviceAccountsEnabled: false
- publicClient: false
- frontchannelLogout: false
- protocol: openid-connect
- attributes:
- realm_client: "true"
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: false
- nodeReRegistrationTimeout: 0
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-security-admin-console') | ansible.builtin.to_uuid }}
- clientId: security-admin-console
- name: ${client_security-admin-console}
- rootUrl: ${authAdminUrl}
- baseUrl: /admin/{{ rhbk.realm | default('sample-realm') }}/console/
- surrogateAuthRequired: false
- enabled: true
- alwaysDisplayInConsole: false
- clientAuthenticatorType: client-secret
- redirectUris:
- - /admin/{{ rhbk.realm | default('sample-realm') }}/console/*
- webOrigins:
- - +
- notBefore: 0
- bearerOnly: false
- consentRequired: false
- standardFlowEnabled: true
- implicitFlowEnabled: false
- directAccessGrantsEnabled: false
- serviceAccountsEnabled: false
- publicClient: true
- frontchannelLogout: false
- protocol: openid-connect
- attributes:
- realm_client: "false"
- client.use.lightweight.access.token.enabled: "true"
- post.logout.redirect.uris: +
- pkce.code.challenge.method: S256
- authenticationFlowBindingOverrides: {}
- fullScopeAllowed: true
- nodeReRegistrationTimeout: 0
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-client-security-admin-console-pm-locale') | ansible.builtin.to_uuid }}
- name: locale
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: locale
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: locale
- jsonType.label: String
- defaultClientScopes:
- - web-origins
- - acr
- - roles
- - profile
- - basic
- - email
- optionalClientScopes:
- - address
- - phone
- - organization
- - offline_access
- - microprofile-jwt
- clientScopes:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-roles') | ansible.builtin.to_uuid }}
- name: roles
- description: OpenID Connect scope for add user roles to the access token
- protocol: openid-connect
- attributes:
- include.in.token.scope: "false"
- consent.screen.text: ${rolesScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-roles-pm-client-roles') | ansible.builtin.to_uuid }}
- name: client roles
- protocol: openid-connect
- protocolMapper: oidc-usermodel-client-role-mapper
- consentRequired: false
- config:
- user.attribute: foo
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: resource_access.${client_id}.roles
- jsonType.label: String
- multivalued: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-roles-pm-realm-roles') | ansible.builtin.to_uuid }}
- name: realm roles
- protocol: openid-connect
- protocolMapper: oidc-usermodel-realm-role-mapper
- consentRequired: false
- config:
- user.attribute: foo
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: realm_access.roles
- jsonType.label: String
- multivalued: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-roles-pm-audience-resolve') | ansible.builtin.to_uuid }}
- name: audience resolve
- protocol: openid-connect
- protocolMapper: oidc-audience-resolve-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- access.token.claim: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-service-account') | ansible.builtin.to_uuid }}
- name: service_account
- description: Specific scope for a client enabled for service accounts
- protocol: openid-connect
- attributes:
- include.in.token.scope: "false"
- display.on.consent.screen: "false"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-service-account-pm-client-host') | ansible.builtin.to_uuid }}
- name: Client Host
- protocol: openid-connect
- protocolMapper: oidc-usersessionmodel-note-mapper
- consentRequired: false
- config:
- user.session.note: clientHost
- id.token.claim: "true"
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: clientHost
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-service-account-pm-client-ip') | ansible.builtin.to_uuid }}
- name: Client IP Address
- protocol: openid-connect
- protocolMapper: oidc-usersessionmodel-note-mapper
- consentRequired: false
- config:
- user.session.note: clientAddress
- id.token.claim: "true"
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: clientAddress
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-service-account-pm-client-id') | ansible.builtin.to_uuid }}
- name: Client ID
- protocol: openid-connect
- protocolMapper: oidc-usersessionmodel-note-mapper
- consentRequired: false
- config:
- user.session.note: client_id
- id.token.claim: "true"
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: client_id
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-organization') | ansible.builtin.to_uuid }}
- name: organization
- description: Additional claims about the organization a subject belongs to
- protocol: openid-connect
- attributes:
- include.in.token.scope: "true"
- consent.screen.text: ${organizationScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-organization-pm-organization') | ansible.builtin.to_uuid }}
- name: organization
- protocol: openid-connect
- protocolMapper: oidc-organization-membership-mapper
- consentRequired: false
- config:
- id.token.claim: "true"
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: organization
- jsonType.label: String
- multivalued: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-mprof-jwt') | ansible.builtin.to_uuid }}
- name: microprofile-jwt
- description: Microprofile - JWT built-in scope
- protocol: openid-connect
- attributes:
- include.in.token.scope: "true"
- display.on.consent.screen: "false"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-mprof-jwt-pm-upn') | ansible.builtin.to_uuid }}
- name: upn
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: username
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: upn
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-mprof-jwt-pm-groups') | ansible.builtin.to_uuid }}
- name: groups
- protocol: openid-connect
- protocolMapper: oidc-usermodel-realm-role-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- multivalued: "true"
- user.attribute: foo
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: groups
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-saml-org') | ansible.builtin.to_uuid }}
- name: saml_organization
- description: Organization Membership
- protocol: saml
- attributes:
- display.on.consent.screen: "false"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-saml-org-pm-organization') | ansible.builtin.to_uuid }}
- name: organization
- protocol: saml
- protocolMapper: saml-organization-membership-mapper
- consentRequired: false
- config: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-oidc') | ansible.builtin.to_uuid }}
- name: acr
- description: OpenID Connect scope for add acr (authentication context class reference) to the token
- protocol: openid-connect
- attributes:
- include.in.token.scope: "false"
- display.on.consent.screen: "false"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-oidc-pm-acr-loa-level') | ansible.builtin.to_uuid }}
- name: acr loa level
- protocol: openid-connect
- protocolMapper: oidc-acr-mapper
- consentRequired: false
- config:
- id.token.claim: "true"
- access.token.claim: "true"
- introspection.token.claim: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-email') | ansible.builtin.to_uuid }}
- name: email
- description: 'OpenID Connect built-in scope: email'
- protocol: openid-connect
- attributes:
- include.in.token.scope: "true"
- consent.screen.text: ${emailScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-email-pm-email-vrfd') | ansible.builtin.to_uuid }}
- name: email verified
- protocol: openid-connect
- protocolMapper: oidc-usermodel-property-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: emailVerified
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: email_verified
- jsonType.label: boolean
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-email-pm-email') | ansible.builtin.to_uuid }}
- name: email
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: email
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: email
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-role-list') | ansible.builtin.to_uuid }}
- name: role_list
- description: SAML role list
- protocol: saml
- attributes:
- consent.screen.text: ${samlRoleListScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-role-list-pm-role-list') | ansible.builtin.to_uuid }}
- name: role list
- protocol: saml
- protocolMapper: saml-role-list-mapper
- consentRequired: false
- config:
- single: "false"
- attribute.nameformat: Basic
- attribute.name: Role
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-phone') | ansible.builtin.to_uuid }}
- name: phone
- description: 'OpenID Connect built-in scope: phone'
- protocol: openid-connect
- attributes:
- include.in.token.scope: "true"
- consent.screen.text: ${phoneScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-phone-pm-phnum') | ansible.builtin.to_uuid }}
- name: phone number
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: phoneNumber
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: phone_number
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-phone-pm-phnum-vrfd') | ansible.builtin.to_uuid }}
- name: phone number verified
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: phoneNumberVerified
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: phone_number_verified
- jsonType.label: boolean
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-address') | ansible.builtin.to_uuid }}
- name: address
- description: 'OpenID Connect built-in scope: address'
- protocol: openid-connect
- attributes:
- include.in.token.scope: "true"
- consent.screen.text: ${addressScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-address-pm-address') | ansible.builtin.to_uuid }}
- name: address
- protocol: openid-connect
- protocolMapper: oidc-address-mapper
- consentRequired: false
- config:
- user.attribute.formatted: formatted
- user.attribute.country: country
- introspection.token.claim: "true"
- user.attribute.postal_code: postal_code
- userinfo.token.claim: "true"
- user.attribute.street: street
- id.token.claim: "true"
- user.attribute.region: region
- access.token.claim: "true"
- user.attribute.locality: locality
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-basic') | ansible.builtin.to_uuid }}
- name: basic
- description: OpenID Connect scope for add all basic claims to the token
- protocol: openid-connect
- attributes:
- include.in.token.scope: "false"
- display.on.consent.screen: "false"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-basic-pm-sub') | ansible.builtin.to_uuid }}
- name: sub
- protocol: openid-connect
- protocolMapper: oidc-sub-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- access.token.claim: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-basic-pm-auth-time') | ansible.builtin.to_uuid }}
- name: auth_time
- protocol: openid-connect
- protocolMapper: oidc-usersessionmodel-note-mapper
- consentRequired: false
- config:
- user.session.note: AUTH_TIME
- id.token.claim: "true"
- introspection.token.claim: "true"
- access.token.claim: "true"
- claim.name: auth_time
- jsonType.label: long
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-offline') | ansible.builtin.to_uuid }}
- name: offline_access
- description: 'OpenID Connect built-in scope: offline_access'
- protocol: openid-connect
- attributes:
- consent.screen.text: ${offlineAccessScopeConsentText}
- display.on.consent.screen: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-web-origins') | ansible.builtin.to_uuid }}
- name: web-origins
- description: OpenID Connect scope for add allowed web origins to the access token
- protocol: openid-connect
- attributes:
- include.in.token.scope: "false"
- consent.screen.text: ""
- display.on.consent.screen: "false"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-web-origins-pm-allowed-origins') | ansible.builtin.to_uuid }}
- name: allowed web origins
- protocol: openid-connect
- protocolMapper: oidc-allowed-origins-mapper
- consentRequired: false
- config:
- access.token.claim: "true"
- introspection.token.claim: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile') | ansible.builtin.to_uuid }}
- name: profile
- description: 'OpenID Connect built-in scope: profile'
- protocol: openid-connect
- attributes:
- include.in.token.scope: "true"
- consent.screen.text: ${profileScopeConsentText}
- display.on.consent.screen: "true"
- protocolMappers:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-website') | ansible.builtin.to_uuid }}
- name: website
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: website
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: website
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-full-name') | ansible.builtin.to_uuid }}
- name: full name
- protocol: openid-connect
- protocolMapper: oidc-full-name-mapper
- consentRequired: false
- config:
- id.token.claim: "true"
- introspection.token.claim: "true"
- access.token.claim: "true"
- userinfo.token.claim: "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-locale') | ansible.builtin.to_uuid }}
- name: locale
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: locale
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: locale
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-picture') | ansible.builtin.to_uuid }}
- name: picture
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: picture
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: picture
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-given-name') | ansible.builtin.to_uuid }}
- name: given name
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: firstName
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: given_name
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-profile') | ansible.builtin.to_uuid }}
- name: profile
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: profile
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: profile
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-birthdate') | ansible.builtin.to_uuid }}
- name: birthdate
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: birthdate
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: birthdate
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-zoneinfo') | ansible.builtin.to_uuid }}
- name: zoneinfo
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: zoneinfo
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: zoneinfo
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-family-name') | ansible.builtin.to_uuid }}
- name: family name
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: lastName
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: family_name
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-username') | ansible.builtin.to_uuid }}
- name: username
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: username
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: preferred_username
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-nickname') | ansible.builtin.to_uuid }}
- name: nickname
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: nickname
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: nickname
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-middle-name') | ansible.builtin.to_uuid }}
- name: middle name
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: middleName
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: middle_name
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-gender') | ansible.builtin.to_uuid }}
- name: gender
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: gender
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: gender
- jsonType.label: String
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-cscope-profile-pm-updated-at') | ansible.builtin.to_uuid }}
- name: updated at
- protocol: openid-connect
- protocolMapper: oidc-usermodel-attribute-mapper
- consentRequired: false
- config:
- introspection.token.claim: "true"
- userinfo.token.claim: "true"
- user.attribute: updatedAt
- id.token.claim: "true"
- access.token.claim: "true"
- claim.name: updated_at
- jsonType.label: long
- defaultDefaultClientScopes:
- - role_list
- - saml_organization
- - profile
- - email
- - roles
- - web-origins
- - acr
- - basic
- defaultOptionalClientScopes:
- - offline_access
- - address
- - phone
- - microprofile-jwt
- - organization
- browserSecurityHeaders:
- contentSecurityPolicyReportOnly: ""
- xContentTypeOptions: nosniff
- referrerPolicy: no-referrer
- xRobotsTag: none
- xFrameOptions: SAMEORIGIN
- contentSecurityPolicy: frame-src 'self'; frame-ancestors 'self'; object-src 'none';
- strictTransportSecurity: max-age=31536000; includeSubDomains
- smtpServer: {}
- eventsEnabled: false
- eventsListeners:
- - jboss-logging
- enabledEventTypes: []
- adminEventsEnabled: false
- adminEventsDetailsEnabled: false
- identityProviders: []
- identityProviderMappers: []
- components:
- org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-max-clients') | ansible.builtin.to_uuid }}
- name: Max Clients Limit
- providerId: max-clients
- subType: anonymous
- subComponents: {}
- config:
- max-clients:
- - "200"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-fullscope') | ansible.builtin.to_uuid }}
- name: Full Scope Disabled
- providerId: scope
- subType: anonymous
- subComponents: {}
- config: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-allowed-protomap-anon') | ansible.builtin.to_uuid }}
- name: Allowed Protocol Mapper Types
- providerId: allowed-protocol-mappers
- subType: anonymous
- subComponents: {}
- config:
- allowed-protocol-mapper-types:
- - oidc-sha256-pairwise-sub-mapper
- - saml-user-attribute-mapper
- - saml-user-property-mapper
- - oidc-address-mapper
- - oidc-usermodel-property-mapper
- - oidc-full-name-mapper
- - saml-role-list-mapper
- - oidc-usermodel-attribute-mapper
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-trusted-hosts') | ansible.builtin.to_uuid }}
- name: Trusted Hosts
- providerId: trusted-hosts
- subType: anonymous
- subComponents: {}
- config:
- host-sending-registration-request-must-match:
- - "true"
- client-uris-must-match:
- - "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-allowed-protomap-auth') | ansible.builtin.to_uuid }}
- name: Allowed Protocol Mapper Types
- providerId: allowed-protocol-mappers
- subType: authenticated
- subComponents: {}
- config:
- allowed-protocol-mapper-types:
- - saml-user-attribute-mapper
- - saml-user-property-mapper
- - oidc-sha256-pairwise-sub-mapper
- - saml-role-list-mapper
- - oidc-address-mapper
- - oidc-usermodel-attribute-mapper
- - oidc-full-name-mapper
- - oidc-usermodel-property-mapper
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-consentreq') | ansible.builtin.to_uuid }}
- name: Consent Required
- providerId: consent-required
- subType: anonymous
- subComponents: {}
- config: {}
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-allowed-cliscope-anon') | ansible.builtin.to_uuid }}
- name: Allowed Client Scopes
- providerId: allowed-client-templates
- subType: anonymous
- subComponents: {}
- config:
- allow-default-scopes:
- - "true"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-regpol-allowed-cliscope-auth') | ansible.builtin.to_uuid }}
- name: Allowed Client Scopes
- providerId: allowed-client-templates
- subType: authenticated
- subComponents: {}
- config:
- allow-default-scopes:
- - "true"
- org.keycloak.keys.KeyProvider:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-keyprov-hs512') | ansible.builtin.to_uuid }}
- name: hmac-generated-hs512
- providerId: hmac-generated
- subComponents: {}
- config:
- priority:
- - "100"
- algorithm:
- - HS512
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-keyprov-aesgen') | ansible.builtin.to_uuid }}
- name: aes-generated
- providerId: aes-generated
- subComponents: {}
- config:
- priority:
- - "100"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-keyprov-rsaencgen') | ansible.builtin.to_uuid }}
- name: rsa-enc-generated
- providerId: rsa-enc-generated
- subComponents: {}
- config:
- priority:
- - "100"
- algorithm:
- - RSA-OAEP
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-keyprov-rsagen') | ansible.builtin.to_uuid }}
- name: rsa-generated
- providerId: rsa-generated
- subComponents: {}
- config:
- priority:
- - "100"
- internationalizationEnabled: false
- supportedLocales: []
- authenticationFlows:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-acct-vrfy-opt') | ansible.builtin.to_uuid }}
- alias: Account verification options
- description: Method with which to verity the existing account
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: idp-email-verification
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: ALTERNATIVE
- priority: 20
- autheticatorFlow: true
- flowAlias: Verify Existing Account by Re-authentication
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-brws-cond-otp') | ansible.builtin.to_uuid }}
- alias: Browser - Conditional OTP
- description: Flow to determine if the OTP is required for the authentication
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: conditional-user-configured
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: auth-otp-form
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-brws-cond-org') | ansible.builtin.to_uuid }}
- alias: Browser - Conditional Organization
- description: Flow to determine if the organization identity-first login is to be used
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: conditional-user-configured
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: organization
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-dg-cond-otp') | ansible.builtin.to_uuid }}
- alias: Direct Grant - Conditional OTP
- description: Flow to determine if the OTP is required for the authentication
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: conditional-user-configured
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: direct-grant-validate-otp
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-fbrok-login-cond-org') | ansible.builtin.to_uuid }}
- alias: First Broker Login - Conditional Organization
- description: Flow to determine if the authenticator that adds organization members is to be used
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: conditional-user-configured
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: idp-add-organization-member
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-fbrok-login-cond-otp') | ansible.builtin.to_uuid }}
- alias: First broker login - Conditional OTP
- description: Flow to determine if the OTP is required for the authentication
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: conditional-user-configured
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: auth-otp-form
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-handle-existing') | ansible.builtin.to_uuid }}
- alias: Handle Existing Account
- description: Handle what to do if there is existing account with same email/username like authenticated identity provider
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: idp-confirm-link
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: true
- flowAlias: Account verification options
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-org') | ansible.builtin.to_uuid }}
- alias: Organization
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticatorFlow: true
- requirement: CONDITIONAL
- priority: 10
- autheticatorFlow: true
- flowAlias: Browser - Conditional Organization
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-cond-otp') | ansible.builtin.to_uuid }}
- alias: Reset - Conditional OTP
- description: Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: conditional-user-configured
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: reset-otp
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-ucreat-or-link') | ansible.builtin.to_uuid }}
- alias: User creation or linking
- description: Flow for the existing/non-existing user alternatives
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticatorConfig: create unique user config
- authenticator: idp-create-user-if-unique
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: ALTERNATIVE
- priority: 20
- autheticatorFlow: true
- flowAlias: Handle Existing Account
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-vrfy-existing-reauth') | ansible.builtin.to_uuid }}
- alias: Verify Existing Account by Re-authentication
- description: Reauthentication of existing account
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: idp-username-password-form
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: CONDITIONAL
- priority: 20
- autheticatorFlow: true
- flowAlias: First broker login - Conditional OTP
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-brws-based-auth') | ansible.builtin.to_uuid }}
- alias: browser
- description: Browser based authentication
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: auth-cookie
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: auth-spnego
- authenticatorFlow: false
- requirement: DISABLED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: identity-provider-redirector
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 25
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: ALTERNATIVE
- priority: 26
- autheticatorFlow: true
- flowAlias: Organization
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: ALTERNATIVE
- priority: 30
- autheticatorFlow: true
- flowAlias: forms
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-base-client-auth') | ansible.builtin.to_uuid }}
- alias: clients
- description: Base authentication for clients
- providerId: client-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: client-secret
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: client-jwt
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: client-secret-jwt
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 30
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: client-x509
- authenticatorFlow: false
- requirement: ALTERNATIVE
- priority: 40
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-dgrant-oidc-owner') | ansible.builtin.to_uuid }}
- alias: direct grant
- description: OpenID Connect Resource Owner Grant
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: direct-grant-validate-username
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: direct-grant-validate-password
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: CONDITIONAL
- priority: 30
- autheticatorFlow: true
- flowAlias: Direct Grant - Conditional OTP
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-docker-auth') | ansible.builtin.to_uuid }}
- alias: docker auth
- description: Used by Docker clients to authenticate against the IDP
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: docker-http-basic-authenticator
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-fbrok-login') | ansible.builtin.to_uuid }}
- alias: first broker login
- description: Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticatorConfig: review profile config
- authenticator: idp-review-profile
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: true
- flowAlias: User creation or linking
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: CONDITIONAL
- priority: 50
- autheticatorFlow: true
- flowAlias: First Broker Login - Conditional Organization
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-forms') | ansible.builtin.to_uuid }}
- alias: forms
- description: Username, password, otp and other auth forms.
- providerId: basic-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: auth-username-password-form
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: CONDITIONAL
- priority: 20
- autheticatorFlow: true
- flowAlias: Browser - Conditional OTP
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-reg-flow') | ansible.builtin.to_uuid }}
- alias: registration
- description: Registration flow
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: registration-page-form
- authenticatorFlow: true
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: true
- flowAlias: registration form
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-reg-form') | ansible.builtin.to_uuid }}
- alias: registration form
- description: Registration form
- providerId: form-flow
- topLevel: false
- builtIn: true
- authenticationExecutions:
- - authenticator: registration-user-creation
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: registration-password-action
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 50
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: registration-recaptcha-action
- authenticatorFlow: false
- requirement: DISABLED
- priority: 60
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: registration-terms-and-conditions
- authenticatorFlow: false
- requirement: DISABLED
- priority: 70
- autheticatorFlow: false
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-reset-creds') | ansible.builtin.to_uuid }}
- alias: reset credentials
- description: Reset credentials for a user if they forgot their password or something
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: reset-credentials-choose-user
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: reset-credential-email
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 20
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticator: reset-password
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 30
- autheticatorFlow: false
- userSetupAllowed: false
- - authenticatorFlow: true
- requirement: CONDITIONAL
- priority: 40
- autheticatorFlow: true
- flowAlias: Reset - Conditional OTP
- userSetupAllowed: false
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authflow-saml-ecp') | ansible.builtin.to_uuid }}
- alias: saml ecp
- description: SAML ECP Profile Authentication Flow
- providerId: basic-flow
- topLevel: true
- builtIn: true
- authenticationExecutions:
- - authenticator: http-basic-authenticator
- authenticatorFlow: false
- requirement: REQUIRED
- priority: 10
- autheticatorFlow: false
- userSetupAllowed: false
- authenticatorConfig:
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authconfig-unique-user') | ansible.builtin.to_uuid }}
- alias: create unique user config
- config:
- require.password.update.after.registration: "false"
- - id: {{ ((rhbk.name | default('sso')) + '-' + (rhbk.realm | default('sample-realm')) + '-authconfig-review-profile-') | ansible.builtin.to_uuid }}
- alias: review profile config
- config:
- update.profile.on.first.login: missing
- requiredActions:
- - alias: CONFIGURE_TOTP
- name: Configure OTP
- providerId: CONFIGURE_TOTP
- enabled: true
- defaultAction: false
- priority: 10
- config: {}
- - alias: TERMS_AND_CONDITIONS
- name: Terms and Conditions
- providerId: TERMS_AND_CONDITIONS
- enabled: false
- defaultAction: false
- priority: 20
- config: {}
- - alias: UPDATE_PASSWORD
- name: Update Password
- providerId: UPDATE_PASSWORD
- enabled: true
- defaultAction: false
- priority: 30
- config: {}
- - alias: UPDATE_PROFILE
- name: Update Profile
- providerId: UPDATE_PROFILE
- enabled: true
- defaultAction: false
- priority: 40
- config: {}
- - alias: VERIFY_EMAIL
- name: Verify Email
- providerId: VERIFY_EMAIL
- enabled: true
- defaultAction: false
- priority: 50
- config: {}
- - alias: delete_account
- name: Delete Account
- providerId: delete_account
- enabled: false
- defaultAction: false
- priority: 60
- config: {}
- - alias: webauthn-register
- name: Webauthn Register
- providerId: webauthn-register
- enabled: true
- defaultAction: false
- priority: 70
- config: {}
- - alias: webauthn-register-passwordless
- name: Webauthn Register Passwordless
- providerId: webauthn-register-passwordless
- enabled: true
- defaultAction: false
- priority: 80
- config: {}
- - alias: VERIFY_PROFILE
- name: Verify Profile
- providerId: VERIFY_PROFILE
- enabled: true
- defaultAction: false
- priority: 90
- config: {}
- - alias: delete_credential
- name: Delete Credential
- providerId: delete_credential
- enabled: true
- defaultAction: false
- priority: 100
- config: {}
- - alias: update_user_locale
- name: Update User Locale
- providerId: update_user_locale
- enabled: true
- defaultAction: false
- priority: 1000
- config: {}
- browserFlow: browser
- registrationFlow: registration
- directGrantFlow: direct grant
- resetCredentialsFlow: reset credentials
- clientAuthenticationFlow: clients
- dockerAuthenticationFlow: docker auth
- firstBrokerLoginFlow: first broker login
- attributes:
- cibaBackchannelTokenDeliveryMode: poll
- cibaExpiresIn: "120"
- cibaAuthRequestedUserHint: login_hint
- oauth2DeviceCodeLifespan: "600"
- oauth2DevicePollingInterval: "5"
- parRequestUriLifespan: "60"
- cibaInterval: "5"
- realmReusableOtpCode: "false"
- keycloakVersion: 26.2.7.redhat-00001
- userManagedAccessAllowed: false
- organizationsEnabled: false
- verifiableCredentialsEnabled: false
- adminPermissionsEnabled: false
- clientProfiles:
- profiles: []
- clientPolicies:
- policies: []
|