DSEドライバーでの認証

DSEドライバーは、DSE Unified Authentication(DSE統合認証)をサポートしています。

DSEドライバーは、DSE Unified Authentication(DSE統合認証)をサポートしています。

DataStax Enterpriseのセキュリティ機能を簡略化および標準化するために、DSE 5.0では統合認証が導入され、オペレーターと開発者に共通の柔軟なセキュリティ・モデルが導入されました。1つのDSEサーバーで、複数の形式の認証を受け入れることができます。
  • 内部ユーザー名とパスワード認証
  • LDAP認証またはActive Directory認証
  • Kerberos認証
アクセスのレベルが異なるクライアントが、さまざまな認証スキームを使用して同じDSEサーバーに接続できます。

DSEの統合認証は、ユーザーをロールに割り当て、データベース・リソースへのアクセスをそのロールに基づいて関連付ける機能を提供します。DSEでは、ユーザーがプロキシ・ロールを使用してログインおよび実行することもできます。これらの機能はすべて、目的のセキュリティ構成を有効にする組み込みクラスを使用して、DataStaxドライバーで直接有効にすることができます。

DataStaxドライバーには、セキュアなDSEクラスターに接続するために必要なユーティリティを提供する認証プロバイダーが組み込まれています。

DSEのデフォルトでは、認証サービスは有効になっていません。このため、使い始めることは簡単にできますが、プロダクション環境へのデプロイを目的としたものではありません。認証を使用するようにドライバーを構成する前に、DSE内で目的のセキュリティ・スキームを有効にし、データベースにユーザーとロールを作成してください。

内部またはLDAPのユーザー名とパスワードを使用した認証

ドライバーは、プレーン・テキスト認証プロバイダーを使用して、DSEの内部認証とLDAPまたはActive Directory認証の両方を実行します。ドライバーはプレーン・テキストのユーザー名とパスワードをサーバーに送信し、サーバーは基になる構成されたスキームに対して認証を行います。

これらのメカニズムは資格情報をネイティブ・プロトコルを使用してクリア・テキストで送信するため、常にクライアント・サーバー・トランスポートの暗号化と組み合わせて使用する必要があります。

1. プレーン・テキスト認証のリファレンス
C/C++ C# Java Node.js PHP Python Ruby

Kerberosを使用した認証

各ドライバーは、認証プロバイダーを拡張してDSEのKerberos認証を実行します。

Kerberosは、構成にkrb5.confファイルを使用します。資格情報は、チケット・キャッシュまたはキータブに常駐できます。

重要: C#ドライバーは、KerberosをサポートするSSPIと呼ばれるMicrosoftセキュリティフレームワークを使用します。C#ドライバーを使用する場合、システムログイン中にKerberosチケットが取得され、ドライバーはそのチケットを使用して認証します。このセクションの残りの部分は、DSE C#ドライバーには適用されません。

krb5.conf構成ファイル

Kerberosを有効にしたDSEクラスターに対するDSEドライバー認証には、Kerberos構成設定が含まれているkrb5.confファイルが必要です。このファイルは、ノードの/etcディレクトリに存在する場合があります。存在しない場合は、Kerberosシステム管理者に連絡してファイルを見つけてください。

デフォルト以外の場所にあるkrb5.confファイルを参照するには、環境変数KRB5_CONFIGkrb5.confの格納場所を設定します。kinitklistkdestroyなどのKerberosコマンドラインツールは、この変数を尊重します。

JavaとC#を除くすべてのドライバーは、この環境変数を尊重します。Javaクライアントは、起動時にjava.security.krb5.confシステムプロパティをkrb5.confファイルへのパスに設定する必要があります。C#ドライバーは、krb5.confを使用しないSSPIを使用します。

Kerberosチケット・キャッシュ

Kerberos チケット・キャッシュを使用するには、kinitコマンドを使用してKerberosサーバーで認証し、チケットを取得します。klistコマンドを使用して、成功した認証のチケットがチケット・キャッシュに含まれていることを確認します。チケット・キャッシュにチケットが存在することが確認されると、Kerberos認証プロバイダーを使用するように構成されたアプリケーションを実行する準備が整います。複数のプリンシパルのチケット・キャッシュに有効なチケットがあり、アプリケーションでプリンシパルが指定されていない場合、ドライバーは無作為に1つを選択し、そのチケットを使用します。

Kerberosキータブ

キータブを使用すると、追加の認証情報やパスワードを必要とせずに、Kerberosで認証できます。キータブ・ファイルには、アクセスを制限するために適切に設定されたパーミッションが必要です。パーミッションは、アプリケーション・ユーザーがキータブにアクセスできるように設定する必要があります。

プロキシ・ログインと代理実行

プロキシ・ログインは、ユーザーは認証用の資格情報の固定セットを使用して認証できますが、別のユーザー・ロールに基づいたリソースの権限管理を許可します。プロキシ・ログインを使用するには、個々のドライバーのドキュメントを参照してください。

2. プロキシ認証のリファレンス
C/C++ C# Java Node.js PHP Python

プロキシ・ログインと同様、代理実行は、ユーザーは認証用の資格情報の固定セットを使用して認証できますが、別のユーザー・ロールに基づいて要求を実行することを許可します。代理実行を使用するには、個々のドライバーのドキュメントを参照してください。

3. 代理実行のリファレンス
C/C++ C# Java Node.js PHP Python