9.3.5.2. Bitbucket Server OAuth 1 の設定
この手順では、Bitbucket Server の OAuth 1 をアクティベートして以下を実行する方法を説明します。
- Bitbucket Server でホストされる devfile を使用します。
- https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.7/html-single/end-user_guide/index#configuring_bitbucket_authentication_crw.
これは CodeReady Workspaces が Bitbucket Server Personal アクセストークンを取得し、更新できるようにします。
前提条件
-
oc
ツールが利用可能である。 - Bitbucket サーバーは、CodeReady Workspaces サーバーから利用できます。
手順
RSA キーペアと公開鍵の省略バージョンを生成します。
openssl genrsa -out <private.pem> 2048 openssl rsa -in <private.pem> -pubout > <public.pub> openssl pkcs8 -topk8 -inform pem -outform pem -nocrypt -in <private.pem> -out <privatepkcs8.pem> cat <public.pub> | sed 's/-----BEGIN PUBLIC KEY-----//g' | sed 's/-----END PUBLIC KEY-----//g' | tr -d '\n' > <public-stripped.pub>
openssl genrsa -out <private.pem> 2048 openssl rsa -in <private.pem> -pubout > <public.pub> openssl pkcs8 -topk8 -inform pem -outform pem -nocrypt -in <private.pem> -out <privatepkcs8.pem> cat <public.pub> | sed 's/-----BEGIN PUBLIC KEY-----//g' | sed 's/-----END PUBLIC KEY-----//g' | tr -d '\n' > <public-stripped.pub>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンシューマーキーと共有シークレットを生成します。
openssl rand -base64 24 > <bitbucket_server_consumer_key> openssl rand -base64 24 > <bitbucket_shared_secret>
openssl rand -base64 24 > <bitbucket_server_consumer_key> openssl rand -base64 24 > <bitbucket_shared_secret>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンシューマーおよびプライベートキーを含む Kubernetes シークレットを CodeReady Workspaces namespace に作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bitbucket でアプリケーションリンクを設定し、CodeReady Workspaces から Bitbucket サーバーへの通信を有効にします。
- Bitbucket Server で上部のナビゲーションバーをクリックし、Administration > Application Links に移動します。
<<<<<<< HEAD ..アプリケーション URL: <{prod-url-secure}/dashboard/>
を入力し、 ボタンをクリックします。
-
アプリケーション URL:
\https://codeready-<openshift_deployment_name>.<domain_name>
を入力し、 ボタンをクリックします。>>>>>>> 6dd3fd4d… Fix leftover of prod-url-secure attribute (#1897)
- 「No response was received from the URL」という警告メッセージが表示されたら ボタンをクリックします。
Link Applications フォームを入力し、 ボタンをクリックします。
- Application Name
-
<CodeReady Workspaces>
- Application Type
- Generic Application
- Service Provider Name
-
<CodeReady Workspaces>
- Consumer Key
-
<bitbucket_server_consumer_key>
ファイルの内容を貼り付けます。 - Shared secret
-
<bitbucket_shared_secret>
ファイルの内容を貼り付けます。 - Request Token URL
-
<Bitbucket Server URL>/plugins/servlet/oauth/request-token
- アクセストークン URL
-
<Bitbucket Server URL>/plugins/servlet/oauth/access-token
- Authorize URL
-
<Bitbucket Server URL>/plugins/servlet/oauth/access-token
- Create incoming link
- Enabled
Link Applications フォームを入力し、 ボタンをクリックします。
- Consumer Key
-
<bitbucket_server_consumer_key>
ファイルの内容を貼り付けます。 - Consumer name
-
<CodeReady Workspaces>
- Public Key
-
<public-stripped.pub>
ファイルの内容を貼り付けます。
関連情報
- Bitbucket Server overview
- Download Bitbucket Server
- Bitbucket Server Personal access tokens
- How to generate public key to application link 3rd party applications
- Using AppLinks to link to other applications
- https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.7/html-single/end-user_guide/index#configuring_bitbucket_authentication_crw.
= プロトコルベースのプロバイダーの使用
RH-SSO は SAML v2.0 プロトコルおよび OpenID Connect v1.0 プロトコルをサポートします。
= RH-SSO を使用したユーザーの管理
ユーザーインターフェースでユーザーを追加し、削除し、編集できます。詳細は、RH-SSO ユーザー管理について参照してください。
= 外部 RH-SSO インストールを使用するように CodeReady Workspaces を設定する
デフォルトでは、CodeReady Workspaces インストールには、専用の RH-SSO インスタンスのデプロイメントが含まれます。ただし、外部の RH-SSO を使用することも可能です。このオプションは、すでに定義されたユーザーを含む既存の RH-SSO インスタンス (複数のアプリケーションが使用する会社全体の RH-SSO サーバーなど) がある場合に役立ちます。
| CodeReady Workspaces で使用することが意図されたアイデンティティープロバイダーのレルム名 |
|
|
| 外部 RH-SSO サーバーのベース URL |
前提条件
RH-SSO の外部インストールの管理コンソールで、CodeReady Workspaces に接続することが意図されたユーザーが含まれるレルムを定義します。
この
realm
では、CodeReady Workspaces がユーザーの認証に使用する OIDC クライアントを定義します。以下は、正しい設定のあるクライアントの例です。注記-
Client Protocol は
openid-connect
である必要があります。 -
Access Type は
public
である必要があります。CodeReady Workspaces はpublic
アクセスタイプのみをサポートします。 -
Valid Redirect URIs には、
http
プロトコルを使用する URL とhttps
を使用する URL の 2 つ以上の CodeReady Workspaces サーバーに関連する URI が含まれる必要があります。これらの URI には CodeReady Workspaces サーバーのベース URL (この後に/*
ワイルドカードが続く) が含まれる必要があります。 Web Origins には、
http
プロトコルを使用する URI とhttps
を使用する URI の 2 つ以上の CodeReady Workspaces サーバーに関連する URI が含まれる必要があります。これらの URI には、CodeReady Workspaces サーバーのベース URL (ホストの後はパスがない) が含まれる必要があります。URI の数は、インストールされている製品ツールの数によって異なります。
-
Client Protocol は
デフォルトの OpenShift OAuth サポートを使用する CodeReady Workspaces では、ユーザー認証は、OpenShift OAuth と RH-SSO の統合に依存します。これにより、ユーザーは OpenShift ログインで CodeReady Workspaces にログインでき、独自のワークスペースを個人の OpenShift プロジェクトに作成することができます。
これには、OpenShift アイデンティティープロバイダーを RH-SSO で設定する必要があります。外部 RH-SSO を使用する場合は、アイデンティティープロバイダーを手動で設定します。手順については、以下のいずれかのリンクについての該当する RH-SSO ドキュメントを参照してください:OpenShift 3[OpenShift 3] または OpenShift 4[OpenShift 4]
- 設定済みのアイデンティティープロバイダーでは、Store Tokens および Stored Tokens Readable オプションが有効にされている必要があります。
手順
CheCluster
カスタムリソース (CR) に以下のプロパティーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift OAuth サポートを有効にして CodeReady Workspaces をインストールする場合は、
CheCluster
カスタムリソース (CR) に以下のプロパティーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
= SMTP およびメール通知の設定
Red Hat CodeReady Workspaces は事前に設定された MTP サーバーを提供しません。
RH-SSO で SMTP サーバーを有効にするには、以下を実行します。
-
che realm settings > Email
にアクセスします。 - ホスト、ポート、ユーザー名、およびパスワードを指定します。
Red Hat CodeReady Workspaces は、登録、メールの確認、パスワードの復旧、およびログインの失敗についてのデフォルトのテーマを使用します。
= 自己登録の有効化
自己登録により、ユーザーは CodeReady Workspaces サーバー URL にアクセスして、CodeReady Workspaces インスタンスに自己登録できます。
OpenShift OAuth サポートなしでインストールされた CodeReady Workspaces では、自己登録はデフォルトで無効にされるため、ログインページで新規ユーザーを登録するオプションは利用できません。
前提条件
- 管理者としてログインしている。
手順
ユーザーの自己登録を有効にするには、以下を実行します。
- 左側の Realm Settings メニューに移動し、Login タブを開きます。
- User registration オプションを On に設定します。
= OpenShift OAuth の設定
ユーザーが OpenShift と対話できるようにするには、まず OpenShift クラスターに対して認証する必要があります。OpenShift OAuth は、ユーザーが取得された OAuth アクセストークンを使って API 経由でクラスターに対して自らを証明するプロセスです。
https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.7/html-single/end-user_guide/index#openshift-connector-overview_crw に基づく認証は、CodeReady Workspaces ユーザーが OpenShift クラスターで認証するために使用できる 1 つの方法です。
以下のセクションでは、OpenShift OAuth 設定オプションと、CodeReady Workspaces での使用方法について説明します。
= 初期ユーザーでの OpenShift OAuth の設定
前提条件
-
oc
ツールが利用可能である。 -
crwctl
管理ツールが利用できる。https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.7/html-single/installation_guide/index#using-the-crwctl-management-tool_crw を参照してください。
手順
クラスターで OpenShift アイデンティティープロバイダーを設定します。アイデンティティープロバイダー設定について参照してください。
ユーザーが OpenShift アイデンティティープロバイダーの設定ステップを省略し、OpenShift クラスターに設定済みのアイデンティティープロバイダーが含まれていない場合、CodeReady Workspaces は
HTPasswd
アイデンティティープロバイダーの初期 OpenShift ユーザーを作成します。このユーザーの認証情報は、openshift-workspaces namespace にあるopenshift-oauth-user-credentials
シークレットに保存されます。OpenShift クラスターおよび CodeReady Workspaces インスタンスにログインするための認証情報を取得します。
OpenShift ユーザー名を取得します。
oc get secret openshift-oauth-user-credentials -n openshift-workspaces -o json | jq -r '.data.user' | base64 -d
$ oc get secret openshift-oauth-user-credentials -n openshift-workspaces -o json | jq -r '.data.user' | base64 -d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift ユーザーパスワードを取得します。
oc get secret openshift-oauth-user-credentials -n openshift-workspaces -o json | jq -r '.data.password' | base64 -d
$ oc get secret openshift-oauth-user-credentials -n openshift-workspaces -o json | jq -r '.data.password' | base64 -d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
OperatorHub または crwctl を使用して CodeReady Workspaces をデプロイする場合は、
crwctl server:deploy
仕様についての章を参照してください。OpenShift OAuth はデフォルトで有効にされます。
= OpenShift の初期 OAuth ユーザーをプロビジョニングせずに OpenShift OAuth を設定する
以下の手順では、OpenShift の初期 OAuth ユーザーをプロビジョニングせずに OpenShift OAuth を設定する方法を説明します。
前提条件
手順
OperatorHub を使用して CodeReady Workspaces インスタンスをデプロイおよび更新し、プロセスが完了するのを待機します。
crwctl server:deploy --che-operator-cr-patch-yaml=patch.yaml ...
$ crwctl server:deploy --che-operator-cr-patch-yaml=patch.yaml ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow patch.yaml
には、以下を含める必要があります。spec: auth: openShiftoAuth: true initialOpenShiftOAuthUser: ''
spec: auth: openShiftoAuth: true initialOpenShiftOAuthUser: ''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の値を codeready-workspaces カスタムリソース(CR)に設定します。
spec: auth: openShiftoAuth: true initialOpenShiftOAuthUser: ''
spec: auth: openShiftoAuth: true initialOpenShiftOAuthUser: ''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
= OpenShift 初期 OAuth ユーザーの削除
以下の手順では、Red Hat CodeReady Workspaces がプロビジョニングする OpenShift の初期の OAuth ユーザーを削除する方法を説明します。
前提条件
-
oc
ツールがインストールされている。 - OpenShift で実行している Red Hat CodeReady Workspaces のインスタンス。
-
oc
ツールを使用して OpenShift クラスターにログインしている。
手順
codeready-workspaces カスタムリソースを更新します。
oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/initialOpenShiftOAuthUser", "value": false}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/initialOpenShiftOAuthUser", "value": false}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
= ユーザーデータの削除
== GDPR に準拠したユーザーデータの削除
一般データ保護規則 (GDPR: General Data Protection Regulation) では、個人データの消去を求める個人の権利が施行されています。
以下の手順では、クラスターおよび RH-SSO データベースからユーザーのデータを削除する方法を説明します。
以下のコマンドは、-n
オプションのユーザー例として、デフォルトの OpenShift プロジェクト openshift-workspaces
を使用します。
前提条件
ユーザーまたは管理者の認証トークン。ユーザーアカウントにバインドされているデータ以外のデータを削除する場合は、
admin
権限が必要になります。admin
は、CHE_SYSTEM_ADMIN__NAME
およびCHE_SYSTEM_SUPER__PRIVILEGED__MODE = true
カスタムリソース定義を使用して事前に作成され、有効にされる特別な CodeReady Workspaces 管理者アカウントです。spec: server: customCheProperties: CHE_SYSTEM_SUPER__PRIVILEGED__MODE: 'true' CHE_SYSTEM_ADMIN__NAME: '<admin-name>'
spec: server: customCheProperties: CHE_SYSTEM_SUPER__PRIVILEGED__MODE: 'true' CHE_SYSTEM_ADMIN__NAME: '<admin-name>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、以下のコマンドを使用して
admin
ユーザーを作成します。oc patch checluster codeready-workspaces \ --type merge \ -p '{ "spec": { "server": {"customCheProperties": {"CHE_SYSTEM_SUPER__PRIVILEGED__MODE": "true"} } }}' \ -n openshift-workspaces
$ oc patch checluster codeready-workspaces \ --type merge \ -p '{ "spec": { "server": {"customCheProperties": {"CHE_SYSTEM_SUPER__PRIVILEGED__MODE": "true"} } }}' \ -n openshift-workspaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc patch checluster codeready-workspaces \ --type merge \ -p '{ "spec": { "server": {"customCheProperties": {"CHE_SYSTEM_ADMIN__NAME": "<admin-name>"} } }}' \ -n openshift-workspaces
$ oc patch checluster codeready-workspaces \ --type merge \ -p '{ "spec": { "server": {"customCheProperties": {"CHE_SYSTEM_ADMIN__NAME": "<admin-name>"} } }}' \ -n openshift-workspaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記すべてのシステムパーミッションは、
CHE_SYSTEM_ADMIN__NAME
プロパティーで設定した管理ユーザーに付与されます (デフォルトはadmin
です)。システムのパーミッションは CodeReady Workspaces サーバーの起動時に付与されます。ユーザーが CodeReady Workspaces ユーザーデータベースにない場合は、最初のユーザーのログイン後に表示されます。認証トークンの権限:
-
admin
: すべてのユーザーのすべての個人データを削除できます。 -
user
: ユーザーに関連するデータのみを削除できます。
-
- ユーザーまたは管理者が、CodeReady Workspaces がデプロイされた状態で OpenShift クラスターにログインしている。
ユーザー ID が取得されます。以下のコマンドを使用してユーザー ID を取得します。
現行ユーザーの場合:
curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user'
$ curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 名前でユーザーを検索するには、以下を実行します。
curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/find?name=<username>'
$ curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/find?name=<username>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow メールでユーザーを検索するには、以下を実行します。
curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/find?email=<email>'
$ curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/find?email=<email>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー ID を取得する例
この例では、ローカルユーザーの名前として
vparfono
を使用します。curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://che-vp-che.apps.che-dev.x6e0.p1.openshiftapps.com/api/user/find?name=vparfono'
$ curl -X GET \ --header 'Authorization: Bearer <user-token>' \ 'https://che-vp-che.apps.che-dev.x6e0.p1.openshiftapps.com/api/user/find?name=vparfono'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー ID は、curl コマンド出力の下部にあります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
codeready-workspaces
CheCluster Custom
リソース (CR) 定義を更新して、RH-SSO データベースからユーザーのデータの削除を許可します。oc patch checluster/codeready-workspaces \ --patch "{\"spec\":{\"server\":{\"customCheProperties\": {\"CHE_KEYCLOAK_CASCADE__USER__REMOVAL__ENABLED\": \"true\"}}}}" \ --type=merge -n openshift-workspaces
$ oc patch checluster/codeready-workspaces \ --patch "{\"spec\":{\"server\":{\"customCheProperties\": {\"CHE_KEYCLOAK_CASCADE__USER__REMOVAL__ENABLED\": \"true\"}}}}" \ --type=merge -n openshift-workspaces
Copy to Clipboard Copied! Toggle word wrap Toggle overflow API を使用してデータを削除します。
curl -i -X DELETE \ --header 'Authorization: Bearer <user-token>' \ https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/<user-id>
$ curl -i -X DELETE \ --header 'Authorization: Bearer <user-token>' \ https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/<user-id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを実行すると、コード 204
が API 応答として返されます。
curl -i -X DELETE \ --header 'Authorization: Bearer <user-token>' \ https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/<user-id>
$ curl -i -X DELETE \
--header 'Authorization: Bearer <user-token>' \
https://<codeready-<openshift_deployment_name>.<domain_name>>/api/user/<user-id>