第10章 Hosted Control Plane の認証と認可
OpenShift Container Platform のコントロールプレーンには、組み込みの OAuth サーバーが含まれています。OAuth アクセストークンを取得することで、OpenShift Container Platform API に対して認証できます。ホステッドクラスターを作成した後に、アイデンティティープロバイダーを指定して OAuth を設定できます。
10.1. CLI を使用してホステッドクラスターの OAuth サーバーを設定する リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイス (CLI) を使用して、ホステッドクラスターの内部 OAuth サーバーを設定できます。
サポートされている次のアイデンティティープロバイダーに対して OAuth を設定できます。
-
oidc -
htpasswd -
keystone -
ldap -
basic-authentication -
request-header -
github -
gitlab -
google
OAuth 設定にアイデンティティープロバイダーを追加すると、デフォルトの kubeadmin ユーザープロバイダーが削除されます。
アイデンティティープロバイダーを設定するときは、ホステッドクラスターに少なくとも 1 つの NodePool レプリカを事前に設定する必要があります。DNS 解決のトラフィックはワーカーノードを介して送信されます。htpasswd および request-header アイデンティティープロバイダー用に、NodePool レプリカを事前に設定する必要はありません。
前提条件
- ホステッドクラスターを作成した。
手順
次のコマンドを実行して、管理クラスターで
HostedClusterカスタムリソース (CR) を編集します。$ oc edit hostedcluster <hosted_cluster_name> -n <hosted_cluster_namespace>次の例を使用して、
HostedClusterCR に OAuth 設定を追加します。apiVersion: hypershift.openshift.io/v1alpha1 kind: HostedCluster metadata: name: <hosted_cluster_name> namespace: <hosted_cluster_namespace> spec: configuration: oauth: identityProviders: - openID: claims: email: - <email_address> name: - <display_name> preferredUsername: - <preferred_username> clientID: <client_id> clientSecret: name: <client_id_secret_name> issuer: https://example.com/identity mappingMethod: lookup name: IAM type: OpenID-
metadata.nameはホステッドクラスター名を指定します。 -
metadata.namespaceはホステッドクラスター namespace を指定します。 -
spec.configuration.oauth.identityProviders.openIDは、アイデンティティークレームの値の前に付加され、アイデンティティー名を形成するプロバイダー名です。プロバイダー名はリダイレクト URL の構築にも使用されます。 -
spec.configuration.oauth.identityProviders.openID.claims.emailは、メールアドレスとして使用する属性のリストを定義します。 -
spec.configuration.oauth.identityProviders.openID.claims.nameは、表示名として使用する属性のリストを定義します。 -
spec.configuration.oauth.identityProviders.openID.claims.preferredUsernameは、優先ユーザー名として使用する属性のリストを定義します。 -
spec.configuration.oauth.identityProviders.openID.clientIDは、OpenID プロバイダーに登録されたクライアントの ID を定義します。このクライアントを URLhttps://oauth-openshift.apps.<cluster_name>.<cluster_domain>/oauth2callback/<idp_provider_name>にリダイレクトできるようにする必要があります。 -
spec.configuration.oauth.identityProviders.openID.clientSecret.nameは、OpenID プロバイダーに登録されたクライアントのシークレットを定義します。 -
spec.configuration.oauth.identityProviders.openID.issuerは、OpenID 仕様で説明されている発行者識別子を指定します。クエリーまたはフラグメントコンポーネントのないhttpsを使用する必要があります。発行者識別子の詳細は、「発行者識別子」を参照してください。 -
spec.configuration.oauth.identityProviders.mappingMethodは、このプロバイダーのアイデンティティーとユーザーオブジェクト間のマッピングを確立する方法を制御するマッピング方法を定義します。
-
- 変更を適用するためにファイルを保存します。