3.11. SCM サーバーのプライベートリポジトリーでのユーザーの認証
次のセクションでは、SCM サーバーのユーザー認証を設定する方法を説明します。
3.11.1. Bitbucket サーバーでの認証 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat CodeReady Workspaces ユーザーは、Bitbucket SCM (Source Code Management) システムのパブリックまたはプライベートリポジトリーをプロジェクトのソースとして使用できます。
プライベートリポジトリーを使用するには、以下で説明されている追加の設定が必要です。
Bitbucket 認証は、個人アクセストークンの使用をベースとします。各 Bitbucket ユーザーは、異なる名前、パーミッション、有効期限などを持つ複数の個人アクセストークンを要求できます。これらのトークンを使用して、Bitbucket REST API 呼び出しに署名し、Git リポジトリー操作を実行することができます。
CodeReady Workspaces 側で Bitbucket 認証を許可するには、個人トークンをシークレット形式でユーザーの namespace に保存する必要があります。シークレットは以下のようになります。
シークレットの主な部分は以下のようになります。
Label |
| SCM 個人トークンシークレットであることを示します。 |
Annotation |
| トークンが属するユーザーの Red Hat CodeReady Workspaces ID。 |
Annotation |
| トークンが属する Bitbucket ユーザー ID |
Annotation |
| トークンが属する Bitbucket ユーザー名 |
Annotation |
| このトークンが属する Bitbucket サーバーの URL |
Annotation |
| 個人アクセストークンの有効期限 |
データエントリー |
| 個人アクセストークンの base-64 でエンコードされた値 |
Linux マシンで base64
ツールを使用して文字列を base64 形式にエンコードすると、ソース文字列の最後に改行文字が追加され、値はデコード後の認証ヘッダー値として使用できなくなります。これを回避するには、base64 -w0
を使用します。これにより、新たに追加された行が削除されるか、または 'tr -džn' を使用して改行が明示的に削除されます。
REST API URL への呼び出しを使用してシークレットからユーザー ID を取得するには、以下を実行します。
Bitbucket の場合:
https://<bitbucket-hostname>/rest/api/1.0/users/<username>
https://<bitbucket-hostname>/rest/api/1.0/users/<username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CodeReady Workspaces の場合
\https://codeready-<openshift_deployment_name>.<domain_name>/api/user
\https://codeready-<openshift_deployment_name>.<domain_name>/api/user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - シークレットから取得したトークン認証情報に関して、別のシークレットが自動的に作成され、Git 操作に対する認証が可能になります。このシークレットは Git 認証情報ファイルとしてワークスペースコンテナーにマウントされ、プライベート Git リポジトリーと連携するために追加の設定は不要になります。
- リモート Git リポジトリーが自己署名証明書を使用する場合は、サーバー設定を追加します。自己署名証明書を使用する Git リポジトリーをサポートする CodeReady Workspaces のデプロイ について参照してください。