接続の確立
コネクタ内で利用可能なオブジェクトは、"cdata.mariadb" モジュールからアクセスできます。モジュールのオブジェクトを直接使用するには:
- モジュールを以下のようにインポートします。
import cdata.mariadb as mod
- 接続を確立するには、以下のような適切な接続文字列を使用してコネクタオブジェクトからconnect() メソッドを呼び出します。
mod.connect("User=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=3306;")
MariaDB への接続
次のプロパティを設定し、MariaDB データに接続します。
- Server:MariaDB データベースをホスティングしているサーバーのホスト名またはIP アドレス。
- Port:MariaDB データベースをホスティングしているサーバーのポート。
- Database(オプション):接続先のデフォルトデータベース。設定されていない場合、MariaDB は使用可能なすべてのデータベースからテーブルを返します。
MariaDB への認証
MariaDB は次の認証をサポートします。
- 標準
- NT Lan Manager(NTLM)
- LDAP
- SSL
- SSH
- Azure
標準認証
標準認証で認証するには、AuthScheme をPassword に設定し、以下のプロパティを設定します。
NTLM
NTLM を使用して認証するには、AuthScheme をNTLM に設定します。
デフォルトでは、本製品 は、実行中のPC のドメインまたはMariaDB インスタンスを実行しているマシンで使用されているドメインのいずれかを使用して、ユーザー資格情報とNTLM ドメインを自動的に決定します。
異なるドメインを指定したい場合は、異なるログイン認証情報を提供するか、あるいは以下のオプション接続プロパティのいずれかまたはすべてを使用してターゲットNTLM バージョンを変更します。
- User:認証するNTLM ユーザー。
- Password:認証するNTLM ユーザーのパスワード。
- Domain:接続するドメイン名。
- NTLMVersion:本製品 で使用されるNTLM のバージョン。
LDAP
LDAP ユーザーとして認証するには、AuthScheme をLDAP に設定します。
デフォルトでは、本製品 はLDAP 認証情報を自動検出します。 特定のユーザーとパスワードを指定したい場合は、以下のオプション接続プロパティを設定します。
SSL
SSL 認証を使用してMariaDB データに安全に接続するには、以下の接続プロパティを設定します。
- SSLClientCert:クライアント証明書のための証明書ストア名。相互(双方向)SSL で使用されます。
- SSLClientCertPassword:パスワードで保護されている場合、クライアント証明書ストアのパスワード。
- SSLClientCertSubject:TLS / SSL クライアント証明書のサブジェクト。ストア内の証明書を検索するために使用されます。
- SSLClientCertType:クライアント証明書ストアの種類。
- SSLServerCert:MariaDB サーバーが受け入れ可能な証明書。
SSH
SSH 経由でリモートマシンを認証し、MariaDB データにアクセスするには、以下の接続プロパティを設定します。- SSHClientCert:クライアント証明書のための証明書ストア名。
- SSHClientCertPassword:クライアント証明書ストアがパスワードで保護されている場合、この値をストアのパスワードに設定。
- SSHClientCertSubject:TLS / SSL クライアント証明書のサブジェクト。ストア内の証明書を検索するために使用されます。
- SSHClientCertType:クライアントストアの証明書タイプ。
- SSHPassword:SSH サーバーに認証するためのパスワード。
- SSHPort:SSH 操作に使用されるポート。
- SSHServer:認証を試行中のSSH 認証サーバー。
- RSBHelpinfo_p_SSHServerFingerprint:接続を試行中のホストの検証に使用される、SSH サーバーの指紋。
- SSHUser:SSH サーバーへの認証に使用するユーザー名。
Azure 認証
Azure でホストされているMariaDB データベースに接続するには、AuthScheme を以下の値のいずれかに設定します。
- AzureAD:Microsoft Entra ID ユーザーとして認証します(OAuth ベース)。
- AzureMSI:Azure VM またはアプリに割り当てられたマネージドサービスID を使用します。
- AzurePassword:Azure のユーザー名およびパスワードを使用して認証します。
すべてのAzure メソッドにおいて、AzureTenant プロパティは通常、Microsoft Entra ID テナントを表し、多くの場合、companyname.microsoft.com の形式、またはAzure ポータルのEntra ID -> プロパティに表示されているディレクトリID を表します。
マネージドサービスID(AzureMSI)
マネージドID を使用して認証するには、AuthScheme をAzureMSI に設定し、以下のプロパティを構成します。
- AzureTenant:MariaDB インスタンスがホストされているMicrosoft Online テナント。
- OAuthClientId(オプション):マネージドID のクライアントID。VM に複数のユーザー割り当てID がある場合は必須です。
Azure パスワード
Azure のユーザー名とパスワードを使用して認証するには、AuthScheme をAzurePassword に設定し、以下の接続プロパティを設定します。
Entra ID(旧称 Azure AD)
Note:Microsoft はAzure AD をEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。
Entra ID は、Microsoft のマルチテナント、クラウドベースのディレクトリおよびID 管理プラットフォームです。
OAuth ベースの認証フローに対応しており、ドライバーによるMariaDB エンドポイントへのセキュアなアクセスを実現します。
認証の手順は環境によって異なります。デスクトップアプリケーション、Web ベースのワークフロー、ヘッドレスシステムから接続する方法の詳細については、以下のセクションを参照してください。
デスクトップアプリケーション
CData は、デスクトップ認証を簡略化する埋め込みOAuth アプリケーションを提供します。 また、MariaDB コンソールで設定および登録するカスタムOAuth アプリケーションを使用して認証することもできます。設定方法については、カスタムOAuth アプリケーションの作成 を参照してください。接続の前に、次の接続プロパティを設定します。
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
- カスタムアプリケーションのみ:
- OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI。
接続すると、本製品 はデフォルトブラウザでMariaDB のOAuth エンドポイントを開きます。ログインし、アプリケーションにアクセス許可を与えます。本製品 はOAuth プロセスを完了します。
- コールバックURL からアクセストークンを取得し、リクエストを認証します。
- 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
- OAuth 値をOAuthSettingsLocation に保存します。これらの値は接続間で永続化されます。
アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。
Web アプリケーション
Web 経由で認証する場合は、カスタムOAuth アプリケーションの作成 で説明するようにMariaDB にカスタムOAuth アプリケーションを作成および登録する必要があります。それから本製品 を使用してOAuth トークンの値を取得および管理します。このセクションでは、OAuth アクセストークンの取得方法、ドライバーにOAuth アクセストークンを自動的に更新させる方法、OAuth アクセストークンを手動で更新する方法について説明します。
OAuth アクセストークンの取得:
- OAuthAccessToken を取得するには、次の接続プロパティを設定します。
- クライアントシークレットを使用する認証の場合:
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthClientSecret:アプリケーション設定のクライアントシークレット。
- 証明書を使用する認証の場合:
- OAuthClientId:アプリケーション設定のクライアントId。
- OAuthJWTCert:JWT 証明書ストア。
- OAuthJWTCertType:OAuthJWTCert で指定された証明書ストアの種類。
- クライアントシークレットを使用する認証の場合:
- ストアドプロシージャを呼び出し、OAuth 交換を完了します。
- getoauthauthorizationurl ストアドプロシージャを呼び出します。AuthMode インプットをWEB に、CallbackURL をアプリケーション設定で指定したリダイレクトURI に設定します。 ストアドプロシージャは、OAuth エンドポイントへのURL を返します。
- ステップ1でストアドプロシージャが返したURL に移動します。ログインしてWeb アプリケーションを認可します。コールバックURL にリダイレクトされます。
- getoauthaccesstoken ストアドプロシージャを呼び出します。AuthMode インプットをWEB に設定します。Verifier インプットを、リダイレクトURI のクエリ文字列のcode パラメータに設定します。
アクセストークンとリフレッシュトークンを取得したのち、データに接続してOAuth アクセストークンを自動的にリフレッシュできます。
OAuth アクセストークンの自動リフレッシュ:
本製品 がOAuth アクセストークンを自動的にリフレッシュするようにするには、次のように設定します。
- はじめてデータに接続する際、次の接続プロパティを設定します。
- InitiateOAuth:REFRESH。
- OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。
- OAuthAccessToken:getoauthaccesstoken ストアドプロシージャによって返されたアクセストークン。
- OAuthSettingsLocation:本製品 がOAuth 値を保存する場所のパス。これは接続間で維持されます。
- その後のデータ接続では、以下を設定します。
OAuth アクセストークンの手動リフレッシュ:
OAuth アクセストークンを手動でリフレッシュするために必要な唯一の値は、OAuth リフレッシュトークンです。
- ExpiresIn 期間(getoauthaccesstoken が返す)が経過した後にOAuthAccessToken を手動でリフレッシュするには、refreshoauthaccesstoken ストアドプロシージャを呼び出します。
- 次の接続プロパティを設定します。
- OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
- OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。
- refreshoauthaccesstoken ストアドプロシージャを呼び出し、OAuthRefreshToken にGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを設定します。
- 新しいトークンが取得できたら、OAuthAccessToken プロパティにrefreshoauthaccesstoken によって返された値を設定します。これで新規接続が開かれます。
OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。
ヘッドレスマシン
ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、 インターネットブラウザに対応した別の端末で認証する必要があります。以下のいずれかの方法で行います。- 後述のVerifier code を取得および交換に従い、OAuthVerifier 値を取得します。
- 別のマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。
いずれかのオプションを実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。
Verifier コードを取得および交換
Verifier code を取得するには、インターネットブラウザがあるマシンからOAuth 認可URL で認証し、OAuthVerifier 接続プロパティを取得する必要があります。
- 以下のオプションから選択します。
- 埋め込みOAuth アプリケーションを使用する場合は、MariaDB OAuth endpoint をクリックし、ブラウザでエンドポイントを開きます。
- カスタムOAuth アプリケーションを使用する場合は、以下のプロパティを設定して認可URL を作成します。
- InitiateOAuth:OFF。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
- ログインして、本製品 にアクセス許可を与えます。verifier code を含むコールバックURL にリダイレクトされます。
- verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定します。
OAuth 認証値を取得するには次のプロパティを設定します。
- InitiateOAuth:REFRESH。
- OAuthVerifier:verifier コード。
- OAuthSettingsLocation:ドライバーがOAuth トークン値を保存するファイルの場所。これは接続間で維持されます。
- カスタムアプリケーションのみ:
- OAuthClientId:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントId に設定。
- OAuthClientSecret:(カスタムアプリのみ)カスタムOAuth アプリケーション設定のクライアントシークレットに設定。
OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットします。
- InitiateOAuth:REFRESH。
- OAuthSettingsLocation:暗号化されたOAuth 認証値が保存される場所。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
- カスタムアプリケーションのみ:
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。
OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。
接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。
ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
- InitiateOAuth:REFRESH。
- OAuthSettingsLocation:OAuth 設定ファイルの場所。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
- カスタムアプリケーションのみ:
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレット。