Skip to content

Chart: KEYCLOAK_CLI_CLIENT_ID for sign-in from users' own computers - #28

Open
KFilippopolitis wants to merge 2 commits into
masterfrom
feat/keycloak-cli-client
Open

KFilippopolitis wants to merge 2 commits into
masterfrom
feat/keycloak-cli-client

Conversation

@KFilippopolitis

Copy link
Copy Markdown
Contributor

What

  • New value keycloak.cliClientId (default ""), passed to platform-backend as KEYCLOAK_CLI_CLIENT_ID. The same variable is added to the dev docker-compose.yml and .env.example.
  • deployment/kubernetes/README.md gains a section "Using MIP from users' own computers" explaining how to set up the per-federation public Keycloak client:
    • client authentication off;
    • standard flow with PKCE S256 and the exact redirect URI https://<global.publicHost>/account;
    • device grant on;
    • Full scope allowed, roles scope Optional;
    • a copy of the federation client's authorities mapper, plus an audience mapper;
    • offline_access;
    • offline-session limits, and the realm setting they need.

Why

The mip Python client and the portal's account page sign users in through this public client. The backend publishes it at GET /services/auth-config and accepts Bearer tokens only when their azp is the federation's platform client or this client. Empty keeps the feature off, so federations can be enabled one at a time.

Related

Rollout note

Upgrade platform-backend in every federation before setting cliClientId anywhere. Released backends (10.2.0) accept any token from realm MIP, so a token from one federation could open another federation's data.

Checks

  • helm lint .: passes.
  • helm template: renders value: "" by default and value: "mip-cli-x" with --set keycloak.cliClientId=mip-cli-x.
  • docker compose config: passes with the variable unset.

…sers' own computers

keycloak.cliClientId (empty by default, which keeps the feature off) names the
public Keycloak client the mip Python client and the portal's token page use.
The README describes how to set up that client per federation.
…ng other clients

Set the laptop client's Client Offline Session Max to 180 days; since Keycloak
caps it at the realm's Offline Session Max, keep that realm maximum high so the
realm's other clients are unaffected.

@ThanKarab ThanKarab left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please make these changes combined with the new mip-jupyter version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants