Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide options to use IBM Cloud AppID as authentication provider #2182

Closed
shawnzhu opened this issue Sep 9, 2020 · 6 comments · Fixed by #2327
Closed

Provide options to use IBM Cloud AppID as authentication provider #2182

shawnzhu opened this issue Sep 9, 2020 · 6 comments · Fixed by #2327
Labels

Comments

@shawnzhu
Copy link
Member

shawnzhu commented Sep 9, 2020

This is a follow up of #2069 and #2000

Today

It uses dex as OIDC auth provider.

Expected outcome

It provides configuration path to use IBM Cloud AppID as OIDC auth provider besides dex.

@issue-label-bot
Copy link

Issue-Label Bot is automatically applying the labels:

Label Probability
kind/feature 0.97
area/docs 0.93

Please mark this comment with 👍 or 👎 to give our bot feedback!
Links: app homepage, dashboard and code for this bot.

@shawnzhu
Copy link
Member Author

Requirement

In order to bring in IBM Cloud AppID as a replacement of Dex, it will need to work with existing component called oidc-authservice of multi-user Kubeflow from https://github.com/arrikto/oidc-authservice it's technically working now with its previous release, but more work required ONLY if we want to integrate with latest release of arrikto/oidc-authservice.

Option 1

upgrade arrikto/oidc-authservice to latest

Option 2

Keep using existing out-dated arrikto/oidc-authservice container image.

  • tweak settings of oidc-authservice in kubeflow/manifests repo to favor config settings of IBM AppID.

@animeshsingh @adrian555 @Tomcli comments?

@shawnzhu
Copy link
Member Author

shawnzhu commented Oct 8, 2020

Updates

I've got the AppID works in Kubeflow 1.1 deployed on OpenShift. see my code changes here:

Once I get some code merged, I can start working on doc.

Notice that I've used the option 2 from ☝️ with tweaked settings like:

          env:
            - name: USERID_HEADER
              value: kubeflow-userid
            - name: USERID_PREFIX
            - name: USERID_CLAIM
              value: email
            - name: OIDC_PROVIDER
              value: >-
                https://<appid-tenant-url>
            - name: OIDC_AUTH_URL
            - name: OIDC_SCOPES
              value: email
            - name: REDIRECT_URL
              value: >-
                https://<istio-ingressgateway-public-endpoint-FQDN>/login/oidc
            - name: SKIP_AUTH_URI
            - name: PORT
              value: '8080'
            - name: CLIENT_ID
              value: <client_id_from_AppID_service-credential>
            - name: CLIENT_SECRET
              value: <client_secret_from_AppID_service-credential>

@shawnzhu
Copy link
Member Author

shawnzhu commented Oct 14, 2020

Progress

@adrian555 and I had a quick chat on the initial design:

  1. managing AppID configuration in a separate k8s secret object, document the steps on how to create it prior to deploying kubeflow.
  2. update the Authservice config to use this secret instead of keeping client_secret in a statefulset resource object.
  3. create a new kfctl_ibm_appid.yaml for cloud kubernetes service

@adrian555
Copy link
Member

just one comment, @shawnzhu will provide the install instructions with appid on IBM Cloud native K8S cluster first and document through this issue.

@animeshsingh
Copy link
Contributor

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants