第3章 追加の OpenID Connect プロバイダーの設定
3.1. Google を Trusted Artifact Signer の OpenID Connect プロバイダーとして設定する手順
Google OAuth 2.0 を Red Hat の Trusted Artifact Signer (RHTAS) サービスの OpenID Connect (OIDC) プロバイダーとして使用できます。RHTAS のデプロイメント中、または後で Google OAuth を設定するかどうかを決定できます。
同じ設定で複数の異なる OIDC プロバイダーを定義できます。
前提条件
- Red Hat OpenShift Container Platform バージョン 4.13 以降
-
cluster-admin
ロールでの OpenShift Web コンソールへのアクセス。 -
oc
およびpodman
バイナリーがインストールされたワークステーション。 Google Cloud Console から、次の設定を使用して OAuth クライアント ID を作成している。
- アプリケーションタイプを “Web Application” に設定します。
- 承認されたリダイレクト URI には http://localhost/auth/callback が含まれている必要があります。
手順
ワークステーションでターミナルを開き、OpenShift にログインします。
構文
oc login --token=TOKEN --server=SERVER_URL_AND_PORT
例
$ oc login --token=sha256~ZvFDBvoIYAbVECixS4-WmkN4RfnNd8Neh3y1WuiFPXC --server=https://example.com:6443
注記OpenShift Web コンソールからコマンドラインで使用するログイントークンと URL を確認できます。OpenShift Web コンソールにログインします。ユーザー名をクリックし、Copy login command をクリックします。入力を求められた場合はユーザー名とパスワードをもう一度入力し、Display Token をクリックしてコマンドを表示します。
RHTAS 設定を更新します。
Securesign
リソースを開いて編集します。構文
oc edit Securesign NAME -n NAMESPACE
例
$ oc edit Securesign securesign-sample -n trusted-artifact-signer
注記RHTAS インストール用に作成されたプロジェクト名を namespace として使用する必要があります。
OIDCIssuers
セクションで、Google クライアント ID、発行者の URL を含む新しいサブセクションを追加し、Type
値をemail
に設定します。構文
... OIDCIssuers: - Issuer: "https://accounts.google.com" IssuerURL: "https://accounts.google.com" ClientID: "CLIENT_ID" Type: email ...
Google クライアント識別子を
ClientID
フィールドに追加します。- 変更を保存し、エディターを終了します。数秒後、Operator は RHTAS ソフトウェアスタックを自動的に再設定します。
OIDC 発行者とクライアント ID 環境変数を Google を使用するように変更します。
例
$ export OIDC_ISSUER_URL=https://accounts.google.com $ export COSIGN_OIDC_CLIENT_ID="314919563931-35zke44ouf2oiztjg7v8o8c2ge9usnd1.apps.googleexample.com"
Google コンソールからプレーンテキストファイルにシークレットをコピーして貼り付けます。
構文
echo SECRET > my-google-client-secret
RHTAS サービスがすでに実行されている場合は、テストコンテナーイメージに署名して更新された設定を確認できます。
空のコンテナーイメージを作成します。
例
$ echo "FROM scratch" > ./tmp.Dockerfile $ podman build . -f ./tmp.Dockerfile -t ttl.sh/rhtas/test-image:1h
空のコンテナーイメージを
ttl.sh
一時レジストリーにプッシュします。例
$ podman push ttl.sh/rhtas/test-image:1h
一時的な Docker ファイルを削除します。
例
$ rm ./tmp.Dockerfile
コンテナーイメージに署名します。
構文
cosign sign -y --oidc-client-secret-file=SECRET_FILE IMAGE_NAME:TAG
例
$ cosign sign -y --oidc-client-secret-file=my-google-client-secret ttl.sh/rhtas/test-image:1h
Web ブラウザーが開いて、コンテナーイメージをメールアドレスで署名できます。
関連情報