StyleflowのOAuth認証における認可コードの取得方法について詳しく説明します。認可コードは、OAuth 2.0の認可コードフローでアクセストークンを取得するための重要なステップです。
📋 認可コードとは
認可コードは、OAuth認証フローにおいてユーザーの認証・認可を確認するための一時的なコードです。
💡 認可コードの特徴
- 一時的な性質:有効期限は1時間に設定されています
- セキュリティ強化:ユーザーの認証情報が直接やり取りされない
- OAuth 2.0準拠:標準的な認可コードフローに対応
- ワンタイム使用:一度使用すると無効になります
🚨 重要な前提条件
- 事前にStyleflowでアプリケーションを登録済みであること
- Client IDとリダイレクトURLが準備されていること
- grant_typeに「password」を指定する場合は認可コードの取得は不要です
🔄 認可フローの種類
Styleflowは以下の認可フローに対応しています:
| フロー種類 | 説明 | 認可コード |
|---|---|---|
| 認可コードフロー | ブラウザを使った安全な認証フロー | 必要 |
| リソースオーナーパスワードクレデンシャル | ユーザーID・パスワードを直接使用 | 不要 |
⚙️ 認可コード取得手順
推奨シーン:Webアプリケーションでの安全なOAuth認証実装時
手順
-
認可エンドポイントへのリクエスト
以下のURLに表にあるクエリパラメータを付与してアクセス:https://www.styleflow.jp/kumade/styleflow/oauth/authorize.action
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
| response_type | 文字列 | ○ | 認可コードを返すため「code」を指定 |
| redirect_uri | 文字列 | ○ | アプリケーション登録時のリダイレクトURL1~5のいずれか |
| client_id | 文字列 | ○ | アプリケーション登録時に生成された「Client ID」 |
| scope | 文字列 | ○ | アクセス制御情報をスペース区切りで指定 例:applyDocument.read employee.read |
| state | 文字列 | ○ | CSRF攻撃を防ぐための任意の文字列 |
https://www.styleflow.jp/kumade/styleflow/oauth/authorize.action?
response_type=code&
redirect_uri=https://example.com/callback&
client_id=your_client_id&
scope=applyDocument.read&
state=random_string_123
response_type=code&
redirect_uri=https://example.com/callback&
client_id=your_client_id&
scope=applyDocument.read&
state=random_string_123
-
ユーザー認証
認証画面が表示されたら、ユーザーIDとパスワードを入力して「許可する」ボタンを押下
-
認可コードの受信
指定したredirect_uriに認可コードがクエリパラメータとして付与されてリダイレクト
📨 レスポンス仕様
🟢 成功時のレスポンス
✅ 返却されるパラメータ
- code:認可コード(有効期限:1時間)
- state:リクエスト時に指定したstateパラメータ
リダイレクトURL例:
https://example.com/callback?code=generated_code_123&state=random_string_123
https://example.com/callback?code=generated_code_123&state=random_string_123
🔴 エラー時のレスポンス
❌ エラーの種類
| エラーコード | 説明 |
|---|---|
| unauthorized_client | client_idが不正な場合 |
| invalid_request | response_type、state、scopeが不正な場合 |
| access_denied | ユーザーID、パスワードの認証に失敗した場合 |
⚠️ redirect_uriが不正な場合
以下のテキストが返されます:
以下のテキストが返されます:
OAuth Error
Error: invalid_request
Error Description: redirect_url is invalid.
Error: invalid_request
Error Description: redirect_url is invalid.
🔐 利用可能なスコープ
認可コード取得時に指定できる主要なスコープ:
📄 申請関連
-
applyDocument.read
申請書類一覧取得、PDF取得 -
applyDocument.create
申請、保存、承認、却下
👥 マスタ関連
-
employee.read
社員情報の取得 -
department.read
部門情報の取得
💡 スコープの詳細について
詳しくは、スコープとは?をご参照ください。
✅ ベストプラクティス
| 🔐 | stateパラメータ活用:CSRF攻撃防止のため必ずランダムな値を使用 |
| ⏰ | 有効期限管理:認可コードは1時間以内に使用すること |
| 🎯 | 最小権限の原則:必要最小限のスコープのみを指定 |
| 🔗 | HTTPS必須:redirect_uriは必ずHTTPSを使用 |
🎯 まとめ
認可コードの取得により、OAuth認証フローの第一段階が完了します。
🔑 成功のポイント
- 正確なパラメータ設定:必須パラメータを漏れなく適切に設定
- セキュリティ対策:stateパラメータによるCSRF攻撃防止
- 迅速な処理:認可コードの有効期限(1時間)内にアクセストークン取得を完了
認可コードの取得が完了したら、次はこのコードを使用してアクセストークンを取得し、StyleflowAPIへのアクセスを開始しましょう。