認証と授権
このトピックは、一貫的の認証と授権のワークフローを開発するためのベストプラクティスを提供することを目的としています。
以下に関わる各操作の詳細な手順については、関連項目 のリンクを参照してください。
実際の企業シナリオ
大企業はしばしば複雑な組織構造を持ち、多様なプラットフォームやツールを使用する多数の従業員を抱えています。IT ガバナンスの観点から、統一されたアイデンティティ、認証、および授権システムを持つことは大きな利点をもたらします。
- ユーザー管理の簡素化: 管理者はもはや複数のシステムでユーザーを手動で作成または削除し、権限を割り当てる必要がありません。ユーザーライフサイクル管理(例: オンボーディング/オフボーディング)はシームレスで監査に適 したものになります。
- セキュリティの向上: シングルサインオン (SSO) メカニズムにより、ユーザーが複数の資格情報を管理する必要がなくなり、攻撃対象が減少します。
- 役割に基づくアクセス制御: アクセス権限は通常、ユーザーの役割や部門に結び付けられます。よく構築されたアイデンティティシステムにより、より簡単で正確な授権決定が可能になります。
例
SaaS 企業の異なる部門に 3 人の新しい従業員が参加すると仮定します。1 人はマーケティングスペシャリスト、2 人はソリューションアーキテクトです。
- 組織的には、彼らは異なるチームに属しています。
- アイデンティティの観点から、彼らのメールアカウントは内部プラットフォーム全体でのログイン資格情報として機能します。
- アクセス権によって、3 人それぞれが異なるプラットフォームへのアクセス権を持っています。
- マーケティングスペシャリストは Hubspot のバックエンドにログインして新しいリードを確認できます。
- ソリューションアーキテクトはサービスコンソールにアクセスし、割り当てられた顧客のサービスを管理できます。
3 人全員が同じアイデンティティプロバイダーを使用しているにもかかわらず、彼らのアクセス権は厳格に管理されています。
- マーケティングスペシャ リストは Hubspot のみにアクセスできます。
- ソリューションアーキテクトはサービスコンソールにアクセスできますが、割り当てられていないユーザーのサービスにはアクセスできません。また、Hubspot にもアクセスできません。
アクセス制御の 3 層
この例は、企業のアイデンティティとアクセスフローにおける 3 つの重要なコンポーネントを強調しています。
- アイデンティティ認証 – 「私は SaaS 企業の認証された従業員であるピーターです。」
- アクセス認証 – 「ソリューションアーキテクトとして、サービスコンソールにログインする権限があります。」(すべての認証された従業員がすべてのサービスにアクセスできるわけではありません。)
- アクション授権 – 「SaaS 企業の顧客として、私たち自身のサービスの情報を表示できますが、他の顧客の情報は表示できません。」
データベースコンテキストにおいて
これらのアクセス制御の層は、データベースシステムにも適用されます。
- アイデンティティ検証: ユーザーが有効な従業員であり、独自のパスワードを持っていることを確認します。
- アクセス認証: ユーザーまたはそのグループが特定のクラスターにログインする権限を持っていることを確認します。
- 操作授権: ユーザーがクエリを実行したり、データをロードしたりできるかどうかを確認します。
ご覧のとおり、認証と授権は実際には密接に結びついています。ユーザーの認証要求は、しばしばより広範なアクセス制御要件を意味します。したがって、完全なアクセスフローを理解することが重要です。
主要概念
LDAP
Lightweight Directory Access Protocol (LDAP) は、分散ディレクトリ情報にアクセスし、維持するためのプロトコルです。組織のグローバルアドレス帳と考えることができます。
- 各ユーザーには一意のパス (Distinguished Name, DN) があります。
- LDAP は基本的なユーザー情報を保存し、パスワードを含みます。
- LDAP はグループ構造とメンバーシップも管理します。
ldapsearchクエリはユーザーやグループを取得できます。
LDAP は以下のように使用できます。
- 認証ソースとして(ユーザー名とパスワードを検証するため)。
- アクセス制御のためのグループ情報プロバイダーとして。
UNIX グループ
時には、ユーザーがセキュリティや分離の理由で LDAP グループをローカル(ホスト OS 上)でミラーリングし、外部 LDAP サーバーとの直接通信を避けることがあります。これらのローカル UNIX グループは、認証やアクセス制御の強制に使用できます。
OAuth, OIDC, and JWT
用語の簡単な説明
- ID トークン: アイデンティティの証明(私は私です。)
- アクセス トークン: 特定のリソースにアクセスする権限の証明(私は特定のことができます。)
- OAuth 2.0: アクセストークンを提供する授権フレームワーク。
- OIDC: OAuth 上の認証レイヤー。ID とアクセス トークンを提供します。
- JWT: トークン形式。OAuth と OIDC の両方で使用されます。
実際の使用法:
- OAuth ベースのログイン: 外部のログインページ(例: Google)にリダイレクトし、その後クラスターに戻ります。事前にブラウザアクセスとリダイレクト URL の設定が必要です。
- JWT ベースのログイン: ユーザーはトークンを直接クラスターに渡し、事前に公開鍵またはエンドポイントの設定が必要です。
機能
システムは、アクセス制御の 3 層すべてをサポートしています。
- ユーザー認証 – 「私は私です。」
- ログイン授権 – 「私はこのクラスターにアクセスする権限があります。」(個人またはグループのメンバーシップに依存します。)
- 操作授権 – 「このクエリを実行したり、このデータセットをロードしたりできます。」(授権はアイデンティティまたはグループの所属に基づくことができます。)
バージョン 3.5 以降、StarRocks はさまざまなアイデンティティとアクセス管理コンポーネントの組み合わせをサポートするモジュラーで構成可能なモデルを提供しま す。
機能マッピング

機能の観点から:
- 認証プロバイダー – サポートされているプロトコル: ネイティブユーザー、LDAP、OIDC、OAuth 2.0
- グループプロバイダー – サポートされているソース: LDAP、オペレーティングシステム、ファイルベースの設定
- 授権システム – サポートされているシステム: ネイティブ RBAC と IBAC、そして Apache Ranger
認証
サポートされている認証モードの比較:
| 方式 | CREATE USER (ネイティブユーザー) | CREATE SECURITY INTEGRATION (セッションベースのダミーユーザー) |
|---|---|---|
| 説明 | クラスター内で手動でユーザーを作成します。外部認証システムと関連付けることができます。ユーザーはクラスター内に明示的に存在します。 | 外部認証統合を定義します。クラスターはユーザー情報を保存しません。オプションで Group Provider と組み合わせて許可されたユーザーを定義できます。 |
| ログインプロセス | ユーザーはクラスター内で事前に作成されている必要があります。ログイン時に、ユーザーは StarRocks または設定された外部認証システム(例: LDAP, JWT)を介して認証されます。事前に作成されたユーザーのみがログインできます。 | ログイン時に、StarRocks は外部のアイデンティティシステムを使用してユーザーを認証します。成功すると、一時的なセッションスコープの「ダミーユーザー」が内部で作成されます。このユーザーはセッション終了後に破棄されます。 |
| 認証プロセス | ユーザーがクラスター内に存在するため、ネイティブの授権システムまたは Apache Ranger を使用して事前に権限を割り当てることができます。 | ユーザーは永続しませんが、ロールとグループのマッピングを事前に定義できます。ユーザーがログインすると、システムはグループに基づいてロールを割り当て、RBAC を可能にします。Apache Ranger も並行して使用できます。 |
| メリットとデメリット、使用例 |
|
|
これらの認証モードは共存できます。ユーザーがログインを試みるとき:
- クラスターは最初にユーザーがネイティブユーザーとして存在するかどうかを確認し、それに応じて認証を試みます。