第1章 認証とユーザープロビジョニングについて
このモジュールでは、Red Hat Developer Hub における認証およびユーザープロビジョニングの仕組みについて、その概要を説明します。ソフトウェアカタログでのユーザーおよびグループエンティティーの作成からユーザーのサインインまでのプロセスと、認証およびカタログプラグインが各ステップをどのように有効にするかを説明します。このプロセスを理解することは、Developer Hub インスタンスを正常に設定し、認可を通じてアクセスを保護し、同期されたユーザーおよびグループデータに依存する機能を有効にするために不可欠です。
カタログ機能を完全に有効にするには、アイデンティティープロバイダーから Developer Hub ソフトウェアカタログにユーザーおよびグループのデータをプロビジョニングします。カタログプロバイダープラグインは、このタスクを非同期的に処理します。これらのプラグインは、関連するユーザーおよびグループ情報のアイデンティティープロバイダー (IdP) をクエリーし、Developer Hub カタログ内の対応するエンティティーを作成または更新します。スケジュールされたプロビジョニングにより、カタログが組織内のユーザーとグループを正確に反映されるようになります。
ユーザーが Developer Hub にアクセスしようとすると、Developer Hub は、Red Hat Build of Keycloak (RHBK)、GitHub、Microsoft Azure などの設定済みの認証プロバイダーにリダイレクトします。この外部 IdP はユーザーの認証を行います。
認証が成功すると、app-config.yaml ファイルで設定されている Developer Hub 認証プラグインが IdP からの応答を処理し、Developer Hub ソフトウェアカタログ内のアイデンティティーを解決し、Developer Hub 内でユーザーセッションを確立します。
認証とユーザープロビジョニングの設定は、いくつかの理由から重要です。
- 認証されたユーザーのみがアクセスできるようにすることで、Developer Hub インスタンスを保護します。
- IdP から同期されたユーザーおよびグループのメンバーシップに基づいてアクセス制御を定義できるようにすることで、認可を有効にします。
- エンティティーの所有権と、ユーザー、グループ、ソフトウェアコンポーネント間の関係を理解することに依存するさまざまなカタログ機能には、ユーザーおよびグループのデータをカタログにプロビジョニングすることが必要です。このプロビジョニングのステップがないと、カタログ内のコンポーネントの所有者を表示するなどの機能が正しく機能しない可能性があります。
Developer Hub の機能を調べるには、以下を実行します。
- 外部 IdP なしで Developer Hub を使用するには、ゲストユーザー が認証と認可の設定をスキップし、ゲストユーザーとしてログインして、すべての Developer Hub 機能にアクセスできるようにします。
-
ソフトウェアカタログに依存する認可ポリシーと機能を使用せずに Developer Hub を使用するには、
dangerouslyAllowSignInWithoutUserInCatalogリゾルバーオプションを有効にします。この設定により、ユーザーがカタログに登録されている必要があるチェックはバイパスされますが、認証は引き続き強制されます。
Developer Hub は一方向の同期モデルを使用しており、ユーザーとグループのデータはアイデンティティープロバイダーから Developer Hub ソフトウェアカタログに流れます。その結果、Developer Hub Web UI または REST API を使用してユーザーまたはグループを手動で削除すると、次回の取り込み時にそれらのエンティティーが再作成されるため、効果がないか、不整合が発生する可能性があります。