生成 AI で非機密クライアントを連携する デベロッパ

最終更新:2026年8月15日

生成 AI で非機密クライアントを連携する

このページは、生成 AI を使って 非機密クライアントclientType=public、認証方式 none)でアカウントを連携したいデベロッパ向けです。純 HTML、静的サイト、ブラウザのみのアプリに向きます。実行できるスクリプトは「Python の最小実行例」です。

プロジェクトにシークレットを保管できるサーバー、API Route、Serverless Function、BFF があるなら、機密クライアントにして「生成 AI で機密クライアントを連携する」を読んでください。

向いている / 向いていない

非機密クライアント向き機密クライアント向き
純 HTML / 静的サイト / 純 SPA(トークン交換はブラウザ)バックエンドセッションとシークレット管理がある Web アプリ
ローカルやデモ向けの軽いクライアントRefresh Token と長期セッションが必要な製品
シークレットを安全に埋め込めないデスクトップ / モバイルサーバーからユーザーの代わりに保護 API を呼ぶ必要がある

製品の取り決め(ポータルと同じ):

  • client_secret発行しません。トークン交換で HTTP Basic を使わないでください
  • PKCE(S256)必須
  • refresh_token発行しません。Access Token は約 5 分。期限切れ後は認可コードフローをやり直します。
  • リダイレクト URI は事前登録し、認可リクエストの redirect_uri1 文字単位で一致させてください。認可 URL は一度だけエンコードします(例:URLSearchParams / urllib.parse.urlencode)。すでにエンコードした URI を再度 encode しないでください。

ポータルで作成する

  1. develop.swaymoon.com にサインインし、識別子を開き、+ をクリックします。
  2. 説明に同意ページで識別できる名前。クライアント種類非機密クライアント(作成後に機密へは変えられません)。
  3. アイコンは既定、またはアップロードして切り抜き。
  4. リダイレクト URI にコールバックを登録。Python の非機密 demo は http://127.0.0.1:8765/callback です。
  5. 機能:必須の openid を残す。必要に応じて email とプロフィール細目(任意または必須。必須なら理由とプライバシーポリシー)。「権限と同意」を参照。
  6. 確認のあと「登録」をクリックし、client_id をコピー(client_secret はありません)。

http://127.0.0.1http://localhost は別アドレスです。プロトコルパラメータは「認可コードと PKCE」。

プロンプトを AI に渡す

既存のフロント / 静的プロジェクトに連携するときは、次のプロンプトを貼れます(実トークンや完全なコールバッククエリは送らないでください):

現在の純フロント / 静的プロジェクトに「Swaymoon アカウント」サインインを連携してください(非機密クライアント)。
- clientType=public、認証方式 none。client_secret と HTTP Basic は禁止。
- Issuer:https://api-passport.swaymoon.com 。Discovery を正とする。
- Authorization Code + PKCE(S256)。換票フォームは grant_type、code、redirect_uri、client_id、code_verifier を含む。
- refresh_token なし。既定 scope は openid。必要なときだけ email またはプロフィール細目を足す。まとめた profile は使わない。
- state / code_verifier は sessionStorage。ユーザー識別は sub。登録すべき Redirect URI を出力する。

ローカル標準ライブラリでの連携は「Python の最小実行例」。サーバーがあるときのプロンプトは「生成 AI で機密クライアントを連携する」。

セキュリティの要点

  • サインインと認可は公式アカウントドメインへ遷移させる。
  • client_id はフロントに出してよい。client_secret を捏造しない。
  • 最小の scope。任意権限のキャンセルを尊重。UserInfo の未認可プロフィール項目は既定のプレースホルダ(「トークンとユーザー情報」)。
  • 「サインイン維持」が必要なら、シークレットを置けるサーバーを入れ、機密クライアント + 自前セッションに切り替える。

トラブルシューティングは「例とトラブルシューティング」。