2022年5月11日水曜日

Eclipse Che で GitHub の OAuth2 を使う

前回の続きから、ログインに GitHub の OAuth2 を使う設定を行う。

前提

  • OS: Windows 11 Pro 21H2 ビルド 22000.613
  • Eclipse Che: 7.48.0-SNAPSHOT
  • 前回の環境構築済み

GitHub で OAuth Apps の設定を行う

  1. GitHub の Settings -> Developer settings -> OAuth Apps -> New OAuth App ボタン押下
  2. Register a new OAuth application 画面で必要事項を入力し、 Register application ボタン押下
    • Application name: Che
    • Homepage URL: http://<CHE_DOMAIN>/
    • Authorization callback URL: https://dex.<CHE_DOMAIN>/callback
    • <CHE_DOMAIN> は、 chectl コマンドでデプロイした際に表示される Che のドメインを入力。
  3. Generate a new client secret ボタンを押下し、クライアントシークレットをメモ

GitHub ログインのための secret リソースを作成

まずは yaml を作成する。 今回は che-secret.yaml として保存した

kind: Secret
apiVersion: v1
metadata:
  name: github-oauth-config
  namespace: eclipse-che
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: oauth-scm-configuration
  annotations:
    che.eclipse.org/oauth-scm-server: github
type: Opaque
data:
  id: <base64 でエンコードした GitHub Apps のクライアント ID>
  secret: <base64 でエンコードした GitHub Apps のクライアントシークレット>

作成した yaml でリソースを作成する。

kubectl apply -f ./che-secret.yaml

GitHub ログインのための Dex の ConfigMap を作成

yaml を作成する。今回は dex.yaml として保存した

apiVersion: v1
data:
  config.yaml: |
    issuer: https://dex.<CHE_DOMAIN>
    storage:
      type: kubernetes
      config:
        inCluster: true
    web:
      http: 0.0.0.0:5556

    oauth2:
      skipApprovalScreen: true

    staticClients:
    - id: eclipse-che
      redirectURIs:
      - 'https://<CHE_DOMAIN>/oauth/callback'
      name: 'Eclipse Che'
      secret: EclipseChe
    connectors:
    - type: github
      id: github
      name: GitHub
      config:
        clientID: <GitHub Apps のクライアント ID ※ base64 エンコードしていないもの>
        clientSecret: <GitHub Apps のクライアントシークレット ※ base64 エンコードしていないもの>
        redirectURI: https://dex.<CHE_DOMAIN>/callback
kind: ConfigMap
metadata:
  labels:
    app: dex
  name: dex
  namespace: dex
  • <CHE_DOMAIN> は、 chectl コマンドでデプロイした際に表示される Che のドメインを入力。

作成した yaml でリソースを作成する。

kubectl apply -f ./dex.yaml -n dex

dex リスタート

リスタートすると、更新した Dex 設定と追加したシークレットを参照し、 GitHub ログインが行われるようになる。

kubectl rollout restart deployment/dex -n dex

参考資料

0 件のコメント:

コメントを投稿