molde(realm): tenant novo nasce com o client app (PKCE) do treinador

This commit is contained in:
deploy
2026-10-04 22:12:19 +00:00
parent 6fec454285
commit 5ca7e6acb3
2 changed files with 47 additions and 0 deletions
+7
View File
@@ -14,6 +14,13 @@ SAO COISAS DIFERENTES desde aquela decisao. O realm e numerado porque uma
instancia so de Keycloak nao comporta quatro realms chamados `athleticmap`; o
subdominio e o nome que o cliente ve.
── CLIENTES ────────────────────────────────────────────────────────────────
`spa` — tela web do tenant (redirect HTTPS do subdominio).
`app` — app mobile (PKCE; redirect `com.athleticmap.app:/oauthredirect` e
`https://{{TENANT}}.athleticmap.com/app/callback`). Sem ROPC.
Tenants ja provisionados: `scripts/client_app_mobile.py --aplicar`.
── O DOMINIO DOS REDIRECTS ─────────────────────────────────────────────────
`athleticmap.com`, e nao `athleticmap.influxdigital.com.br` — o canonico foi
+40
View File
@@ -71,6 +71,46 @@
}
}
]
},
{
"clientId": "app",
"name": "Athletic Map App (mobile)",
"publicClient": true,
"protocol": "openid-connect",
"standardFlowEnabled": true,
"implicitFlowEnabled": false,
"directAccessGrantsEnabled": false,
"redirectUris": [
"com.athleticmap.app:/oauthredirect",
"http://127.0.0.1:8765/oauthredirect",
"http://localhost:8765/oauthredirect",
"https://{{TENANT}}.athleticmap.com/app/callback"
],
"webOrigins": [
"https://{{TENANT}}.athleticmap.com",
"http://127.0.0.1:8765",
"http://localhost:8765"
],
"attributes": {
"pkce.code.challenge.method": "S256",
"post.logout.redirect.uris": "com.athleticmap.app:/oauthredirect##http://127.0.0.1:8765/oauthredirect##http://localhost:8765/oauthredirect##https://{{TENANT}}.athleticmap.com/app/callback"
},
"protocolMappers": [
{
"name": "funcionario_id",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-attribute-mapper",
"consentRequired": false,
"config": {
"user.attribute": "funcionario_id",
"claim.name": "funcionario_id",
"jsonType.label": "String",
"id.token.claim": "true",
"access.token.claim": "true",
"userinfo.token.claim": "true"
}
}
]
}
],
"attributes": {