跳转到主要内容

重要なセキュリティに関する声明

セキュリティ第一の原則:サードパーティアプリケーションの開発と展開において、セキュリティは最も重要な考慮事項です。ユーザーデータと認証プロセスのセキュリティを確保するために、以下のセキュリティ原則を厳守する必要があります。
  1. フロントエンドのJavaScriptコードでclient_secretを公開することは絶対に禁止されています。
  2. OAuth認証コードをトークンに交換するプロセスは、サーバー側で処理する必要があります。
  3. 保護されたユーザーリソースへのアクセスは、バックエンドAPIプロキシを介して行う必要があります。
  4. すべてのOAuth通信はHTTPSプロトコルで保護する必要があります。
上記のセキュリティ原則のいずれかに違反すると、重大なセキュリティ脆弱性につながる可能性があります!

📋 目次

  1. 概要
  2. 統合の準備
  3. OAuth2 認証フロー
  4. APIインターフェースドキュメント
  5. SDKとコード例
  6. セキュリティのベストプラクティス
  7. よくある質問
  8. テクニカルサポート

概要

当社はOAuth2標準に基づいたオープンAPIを提供しており、サードパーティアプリケーションがユーザーの基本情報とアカウント残高に安全にアクセスできるようにします。当社のOAuth2サービスを通じて、お客様のアプリケーションは以下のことが可能です。
  • 🚀 ワンクリックログイン:ユーザーは繰り返し登録する必要がなく、ログインが完了すると自動的に認証され、真のシームレスな体験を提供します。
  • 👤 ユーザー情報の取得:ユーザーの基本情報(ユーザー名、メールアドレスなど)にアクセスします。
  • 💰 アカウント残高の確認:ユーザーのアカウント残高情報をリアルタイムで取得します。
  • 🔄 チャージへのリダイレクト:ユーザーを当社のチャージページに誘導し、アカウントのチャージを行います。
  • 🔐 自動トークン更新:リフレッシュトークンメカニズムが組み込まれており、期限切れのトークンを意識することなく更新し、ユーザーエクスペリエンスを向上させます。

統合の準備

1. 開発者アカウントの登録

まず、当社のシステムで開発者アカウントを登録する必要があります。

2. OAuthアプリケーションの作成

開発者コンソールでOAuthアプリケーションを作成します。
API呼び出し例
応答例:
セキュリティに関する重要な注意点:
  • client_idはフロントエンドで使用できます(公開情報)
  • client_secretはサーバー側でのみ使用でき、ブラウザに公開してはなりません
  • client_secretは環境変数に保存し、コードにハードコードしないでください

3. コールバックアドレスの設定

コールバックアドレス(redirect_uri)が以下の要件を満たしていることを確認してください。
  • HTTPSプロトコルを使用していること(本番環境)
  • サーバー側のエンドポイントを指していること(フロントエンドページではないこと)
  • ドメインが登録済みで、正常にアクセスできること
  • パスがコールバックを処理するAPIエンドポイントに具体的に指定されていること

OAuth2 認証フロー

セキュリティフローチャート

詳細手順

ステップ1:ユーザー認証を誘導

フロントエンドページにログインボタンを追加し、クリックするとサーバー側の認証エンドポイントにリダイレクトします。
フロントエンドコード - リダイレクトのみを担当

ステップ2:サーバー側で認証リクエストを処理

サーバー側で認証処理を実装します。
サーバー側コード

ステップ3:認証コールバックの処理(サーバー側)

サーバー側で認証コールバックを処理

ステップ4:フロントエンドでユーザー情報を取得

フロントエンドがAPIプロキシ経由でユーザー情報を取得
サーバー側APIプロキシ

APIインターフェースドキュメント

1. 認証エンドポイント

GET /api/oauth2/authorize ユーザーをOAuth2認証に誘導します。 パラメータ: セキュリティ要件:
  • redirect_uriは登録時のアドレスと完全に一致する必要があります
  • stateパラメータはサーバー側で生成されたランダムな文字列である必要があります
  • HTTPSプロトコルを使用する必要があります(本番環境)
Scopeの説明:
  • profile:ユーザー基本情報(ユーザー名、メールアドレス)を取得
  • balance:ユーザーアカウント残高情報を取得

2. トークン取得エンドポイント

POST /api/oauth2/token
セキュリティ警告:このエンドポイントはサーバー側からのみ呼び出すことができ、フロントエンドでは絶対に使用してはなりません!
以下の2つのシナリオで使用されます。
  1. 認証コードを使用してアクセストークンを取得
  2. リフレッシュトークンを使用して新しいアクセストークンを取得
認証コードフローのパラメータ: リフレッシュトークンのパラメータ: 応答例:

3. ユーザー情報エンドポイント

GET /api/oauth2/userinfo ユーザーの基本情報とアカウント残高を取得します。 リクエストヘッダー:
header
応答例:
response

SDKとコード例

JavaScript SDK

完全なJavaScript SDKを提供しています。直接使用できます。

OAuth コールバックページ

/oauth/callback.htmlファイルを作成します。

Node.js バックエンドの例

セキュリティを向上させるため、client_secretはバックエンドで処理することをお勧めします。

セキュリティのベストプラクティス

1. クライアントシークレットの保護

  • ✅ 推奨:client_secretをバックエンドサーバーに保存
  • ❌ 回避:フロントエンドのJavaScriptでclient_secretを公開

2. Stateパラメータの検証

3. HTTPSの使用

  • 本番環境ではHTTPSを使用する必要があります
  • コールバックアドレスはHTTPSを使用する必要があります
  • すべてのAPIリクエストはHTTPSを使用します

4. トークンの安全な保存

5. エラー処理

よくある質問

Q1: 真のワンクリックログイン体験を実現するにはどうすればよいですか?

A: 認証URLにauto_authorize=trueパラメータを追加するだけです。これにより、ユーザーがログインを完了すると、追加の確認手順なしに自動的に認証が完了します。

Q2: トークンは自動的にリフレッシュされますか?

A: はい、当社のSDKには自動トークンリフレッシュメカニズムが組み込まれています。
  • アクセストークン:2時間有効、期限切れの5分前に自動リフレッシュ
  • リフレッシュトークン:30日間有効、新しいアクセストークンを取得するために使用
  • シームレスなリフレッシュ:すべてのAPI呼び出しは、期限切れのトークンを自動的にチェックしてリフレッシュします
  • 失敗時の再試行:APIが401エラーを返した場合、トークンのリフレッシュを自動的に試行し、再試行します
リフレッシュトークンも期限切れになった場合にのみ、ユーザーは再ログインする必要があります。

Q3: どのようなユーザー情報を取得できますか?

A: 認証スコープに応じて、以下を取得できます。
  • profileスコープ:ユーザー名、メールアドレス
  • balanceスコープ:アカウント残高情報

Q4: OAuth統合をテストするにはどうすればよいですか?

A:
  1. 開発環境でHTTP localhostを使用してテストします
  2. 提供されているテストツールを使用して認証フローを検証します
  3. ブラウザの開発者ツールでネットワークリクエストを確認します

Q5: どのプログラミング言語をサポートしていますか?

A: 当社は標準のOAuth2 APIを提供しており、すべての主要なプログラミング言語をサポートしています。
  • JavaScript/Node.js
  • Python
  • PHP
  • Java
  • C#/.NET
  • Go
  • Ruby

Q6: ユーザー認証を取り消すにはどうすればよいですか?

A: ユーザーは、当社のユーザーセンター > 認証管理ページで、サードパーティアプリケーションへの認証を取り消すことができます。

最終更新日:2026-06-01