※このブログは2024年5月28日に公開された英語ブログ「TiDB Cloud Now Supports OAuth 2.0 for a More Secure Login Experience」の拙訳です。
TiDB Cloudは、Catalyst社やカプコン社など多くのリーディングカンパニーに信頼されている、多様な業界向けのMySQL互換のDBaaS (データベース・アズ・ア・サービス) です。ついにTiDB CloudがOAuth 2.0に対応しました!
OAuth 2.0は、Google、Microsoft、その他のシングルサインオン (SSO) プロバイダなどのプラットフォームから、既存のログイン認証情報を活用できる安全な認可プロトコルです。これにより、以下のことが可能になります:
- 簡単なサインイン:TiDB Cloudへのアクセスには、GoogleやMicrosoftなどのプラットフォームから既存ロジックを使用します。複数の認証情報を使い分けたり、複数のパスワードを覚える必要はもうありません。
- セキュリティの強化:OAuth 2.0により、TiDB Cloud内にパスワードを保存する必要がなくなり、データ漏えいのリスクが軽減されます。
このブログでは、OAuth 2.0によってTiDB Cloudデータベースへのサインインがどのように簡単になるかについてや、OAuthの利点と設定方法について説明します。
TiDB CloudがOAuth 2.0をサポート
OAuth 2.0は、パスワードを共有せずにアプリにサインインする安全な方法です。サードパーティのアプリケーションにアクセスを許可することができるので、パーミッションを追跡し、より安全で簡単にサインインすることが可能です。
OAuth 2.0の主な利点:
- セキュリティ:トークンベースの認証を使用することで、OAuth 2.0はパスワードの盗難や不正アクセスのリスクを最小限に抑えます。
- 利便性:ユーザーは複数の認証情報を管理することなく、データへのアクセスを許可および取り消すことができます。
- コントロール:ユーザーは、サードパーティのアプリケーションに付与されるアクセスレベルを正確に指定できるため、必要な権限のみが付与されます。
OAuth 2.0についての詳細はこちらをご覧ください。
TiDBにおけるOAuth 2.0のグラントタイプ
OAuth 2.0 standardでは、いくつかの異なるグラントタイプが規定されています。TiDB Cloudは現在、そのうちの2種類をサポートしています: 認可コードとデバイスコードです。
グラントタイプ | 説明 | 使用例 |
デバイスコード | 入力デバイスが制限されている場合、ユーザーは認可コードを確認し、開発者のアプリケーションがトークンを取得します。 | スマートTVやIoTデバイスといった入力が制約されるデバイス。 TiDBを利用するアプリケーションはTiDB Cloud APIに接続します。 |
認可コード | ユーザ認証は、認可コードを生成し、開発者アプリケーションはそのコードを通じてトークンを取得します。 | TiDB Cloud APIにアクセスするWebアプリケーション |
ここでは、デバイスコードのフローを説明します。次の投稿では、認可コードフローをより詳しく説明します。
デバイスコードを使用したTiDB Cloud OAuthの例:TiDB Cloud CLI
APIキーのやり取りにうんざりしていませんか?最新のTiDB Cloud CLIは、組み込みのOAuthでAPIキーを省略できます。一度認証するだけで、コマンドラインから直接データベースクラスタとDBaaS機能を管理するための安全なアクセスが可能になります。この統合により、便利で安全かつ効率的にTiDB Cloudリソースを操作できるようになります。
OAuthでTiDB Cloud CLIを使う:ステップバイステップの手順
1. TiDB Cloud CLIのインストール:TiDB Cloudのウェブサイトから最新バージョンのTiDB Cloud CLIをダウンロードしてインストールします。
2.OAuth認証を有効にする:CLIコマンドを実行し、OAuthデバイスコードフローを開始します。CLIにはユーザーコードとURLが表示されます。
CLIで ticloud auth login
in と入力すると、OAuth認可サーバーにHTTP POSTリクエストを送信し、user_codeとverification_uriを返します。
3.CLIを認証する:
user_codeとverification_uriを受け取ると、TiDB Cloud CLIは認証と認可のためにブラウザを起動します。
- ユーザーがログインしていない場合は、まず認証を行う必要があります:
- ログインし本人確認後、認証コードが表示されます:
- 次に、認可の範囲を選択します:
- 次に、認可の範囲を確認して完了します:
- 最後に、TiDB Cloud CLIのログインが正常に完了したことを確認します。
4.TiDB Cloudへ安全にアクセスできます: 認可されると、CLIにAccess Tokenが発行され、コマンドラインから直接データベースクラスタを管理し、TiDB CloudのDBaaS機能を利用できるようになります。
TiDB CloudにおけるOAuth 2.0の高度な応用
ここまで、TiDB CLIとOAuthを使い始めるための基本を説明してきました。次に、この組み合わせの可能性を最大限に活用するために、さらに高度な使用例を見てみましょう。
Access Tokenの取得
TiDB Cloud CLIは、OAuth認可サーバーをポーリングして、ユーザーの認可が完了したことを確認し、Access Tokenを取得します。
- サーバーのレスポンスには、Access TokenとRefresh Tokenの両方が含まれます。
- Access Tokenには期限があります。アプリケーションがAPIに長期間アクセスする必要がある場合は、Refresh Tokenを使用して新しいAccess Tokenを取得できます。
TiDB Cloud Servicesへアクセス
TiDB Cloud CLIのAccess Tokenを取得したら、リクエストヘッダに追加してList Project APIやList Cluster APIなどのTiDB Cloud APIを呼び出すことができます。
- TiDB Cloud API (現在はバージョン v1beta1 のみサポート)
- TiDB Cloud CLI
List Project APIを呼び出す:
TiDB Cloud CLIで ticloud project list
コマンドを入力すると、CLIがList Project APIを呼び出します。リクエスト例は以下の通りです:
GET /v1beta1/projects?page=1&page_size=10 HTTP/1.1
Host: iam.tidbapi.com
Authorization: Bearer access_token
List Cluster APIを呼び出す:
TiDB Cloud CLIで ticloud serverless list
コマンドを入力すると、CLIからList Cluster APIが呼び出されます。リクエスト例は以下の通りです:
GET /v1beta1/clusters?page=1&page_size=10 HTTP/1.1
Host: serverless.tidbapi.com
Authorization: Bearer access_token
OAuth認可の取り消し
アプリケーションのアクセス許可を取り消したい場合は、取り消しインターフェースを呼び出すことで取り消すことができます。TiDB Cloud CLIのシナリオでは、ユーザーがlogoutコマンドを実行すると、ユーザーの権限、Access Token、Refresh Tokenを無効にするためにrevocationインターフェースが呼び出されます。
まとめ
OAuth統合は単なる利便性ではなく、TiDB Cloudのセキュリティと効率性を大きく変えるものです。OAuthの統合により、ワークフローを効率化し、詳細なアクセス制御を実施することによりデータを保護することができます。
今すぐTiDB CloudとOAuthの統合を開始し、よりスムーズで安全なクラウドデータベースを体験してください。
次のステップ
- tidbcloud.comでTiDB Cloudを無料で始める
TiDB Cloud Dedicated
TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。
TiDB Cloud Serverless
TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。