TiDB User Day 2024のアーカイブ動画を公開中!詳細を見る
TiDB-Cloud-support-Oauth-2

※このブログは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 Command

CLIで ticloud auth login in と入力すると、OAuth認可サーバーにHTTP POSTリクエストを送信し、user_codeとverification_uriを返します。

3.CLIを認証する:

Authorize the CLI

user_codeとverification_uriを受け取ると、TiDB Cloud CLIは認証と認可のためにブラウザを起動します。

  • ユーザーがログインしていない場合は、まず認証を行う必要があります:
Sign In
  • ログインし本人確認後、認証コードが表示されます:
Device Confirmation
  • 次に、認可の範囲を選択します:
Confirm your authorization
  • 次に、認可の範囲を確認して完了します:
Confirm
  • 最後に、TiDB Cloud CLIのログインが正常に完了したことを確認します。
Successfully logged in

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を呼び出すことができます。

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
request-example

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
Call-list-API

OAuth認可の取り消し

アプリケーションのアクセス許可を取り消したい場合は、取り消しインターフェースを呼び出すことで取り消すことができます。TiDB Cloud CLIのシナリオでは、ユーザーがlogoutコマンドを実行すると、ユーザーの権限、Access Token、Refresh Tokenを無効にするためにrevocationインターフェースが呼び出されます。

Revoking OAuth Authorization

まとめ

OAuth統合は単なる利便性ではなく、TiDB Cloudのセキュリティと効率性を大きく変えるものです。OAuthの統合により、ワークフローを効率化し、詳細なアクセス制御を実施することによりデータを保護することができます。

今すぐTiDB CloudとOAuthの統合を開始し、よりスムーズで安全なクラウドデータベースを体験してください。

次のステップ


Have questions? Let us know how we can help.

Contact Us

TiDB Cloud Dedicated

TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。

TiDB Cloud Serverless

TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。