OpenSource-Hub

logto

アプリケーション

logto-io/logto

SaaS および AI アプリケーション向けのオープンソース認証・認可インフラストラクチャ。

概要

Logto は、OIDC および OAuth 2.1 に基づく最新のオープンソース認証ソリューションで、マルチテナンシー、エンタープライズ SSO、RBAC、カスタマイズ可能なログインフローをサポートしており、SaaS、AI、エージェントプラットフォーム向けに設計されています。

README プレビュー

\n  \n    \n      \n      \n      \n    \n  \n\n\n[](https://discord.gg/vRvwuwgpVX)\n[](https://github.com/logto-io/logto/actions?query=branch%3Amaster)\n[](https://github.com/logto-io/logto/releases)\n[](https://app.codecov.io/gh/logto-io/logto)\n[](https://cloud.logto.io/?sign_up=true&utm_source=github&utm_medium=repo_logto)\n[](https://gitpod.io/#https://github.com/logto-io/demo)\n[](https://render.com/deploy?repo=https://github.com/logto-io/logto)\n\n# Logto\n\n**Logto is the modern, open-source auth infrastructure for SaaS and AI apps.**\n\nIt takes the pain out of OIDC and OAuth 2.1 and makes it easy to build secure, production-ready auth with multi-tenancy, enterprise SSO, and RBAC.\n\n\n  website •\n  cloud •\n  docs •\n  api •\n  blog •\n  auth wiki •\n  newsletter\n\n\n\n\n## Why Logto?\n\nBuilt for teams scaling SaaS, AI, and agent-based platforms without the usual auth headaches.\n\nWith Logto, you get:\n\n- **Multi-tenancy, enterprise SSO, and RBAC**: ready to use, no workarounds.\n- **Pre-built sign-in flows**, customizable UIs, and SDKs for 30+ frameworks.\n- **Full support for OIDC, OAuth 2.1, and SAML** without the protocol pain.\n- **Works out-of-the-box for Model Context Protocol and agent-based AI architectures**.\n\n[🗺️ See all features →](https://docs.logto.io/?ref=readme)\n\n## Get started\n\nPick your path:\n\n- [**Logto Cloud**](https://cloud.logto.io/?sign_up=true&ref=readme): The fastest way to try Logto. Fully managed, zero setup.\n- [**Launch Logto in GitPod**](https://gitpod.io/#https://github.com/logto-io/demo): Start Logto OSS in seconds.\n\n  Wait for the message `App is running at https://3002-...gitpod.io`, then click the URL starting with `https://3002-` to continue.\n\n- **Local development:**  \n\n  ```bash\n  # Using Docker Compose(requires Docker Desktop)\n  curl -fsSL https://raw.githubusercontent.com/logto-io/logto/HEAD/docker-compose.yml | \\n  docker compose -p logto -f - up\n  \n  # Using Node.js (requires PostgreSQL)\n 

FAQ (5)

トラブル対応
Logto Next.js App Router の Home コンポーネントで TS1308「await isn't allowed in non-async function」エラーを修正する方法

await getLogtoContext() を使用しているため、Home コンポーネントを async としてマークします:

const Home = async () => {
  const { isAuthenticated, claims } = await getLogtoContext(logtoConfig);
  // ...
};

export default Home;

その後、npm run build を再度実行します。Logto Console ガイドにあった非 async の誤った例は PR #9692 で修正されました。ガイドにまだ const Home = () => { と表示されている場合は、Logto を更新してください。

参照 Issue #9691
トラブル対応
Cloudflare Zero Trust MCP Server Portal 経由で Logto MCP に接続する際に発生する redirect_uri 400 エラーはどうすれば修正できますか?

Logto Cloud は OAuth Client ID Metadata Documents をサポートするようになりました。Cloudflare MCP ゲートウェイを次のように設定します:

1. 公開 HTTPS URL でクライアントメタデータ JSON ファイルをホストします。例:https://example.com/logto-mcp-client.json:

{
  "client_name": "Cloudflare MCP Gateway",
  "redirect_uris": [
    "https://oauth-callbacks.cloudflareaccess.com/cdn-cgi/access/outbound-oauth-callback"
  ],
  "grant_types": ["authorization_code", "refresh_token"],
  "response_types": ["code"],
  "scope": "openid",
  "token_endpoint_auth_method": "none"
}

2. Cloudflare MCP Server Portal の OAuth 設定で、クライアント ID をそのメタデータドキュメントの完全な URL に設定します。
3. https://mcp.logto.io に再度接続します。Logto はドキュメントを取得し、redirect_uris に記載されているゲートウェイコールバックを受け入れます。

次のコマンドでサポートを確認します:

curl https://auth.logto.io/oidc/.well-known/openid-configuration

メタデータには "client_id_metadata_document_supported": true が含まれているはずです。Cloudflare では組み込みの mcp-client ID を使用しないでください。これは localhost リダイレクト URI に制限されているためです。

参照 Issue #9689
トラブル対応
Logto でソーシャルサインアップ中に 'Bind and continue' をクリックした後に発生する 'session.identifier_not_found' を修正するにはどうすればよいですか?

この問題は Logto PR #9593 で修正されています。その修正を含むリリースにアップグレードしてください。このバグは packages experience/src/containers/VerificationCode/use-continue-flow-code-verification.ts で発生します。link_social ブランチは、最初に isVerificationCodeEnabledForSignIn(type) を呼び出すことなくアカウントリンクを提供します。パッチ適用後のコードは、識別子が認証コードでサインインできる場合にのみリンクモーダルを表示し、それ以外の場合は通常の「identifier already exists」(識別子はすでに存在します)というメッセージを表示して、ユーザーがそれを変更できるよう元に戻します。Logto 1.42.0 での一時的な回避策として、競合する電話番号のセカンダリ識別子要件を削除するか、電話番号の認証コードによるサインインを有効にしてください。なお、PhoneVerificationCode が MFA ファクターとして設定されている間は、電話番号の認証コードによるサインインを有効にできないため、まず MFA から削除する必要があります。

参照 Issue #9592
how_to
アプリケーションから Logto のサインインページにライトモードまたはダークモードを強制するにはどうすればよいですか?

Logto サインインフローを開始する際に、light または dark を指定した theme 認証パラメータを渡します(例: extraParams: { theme: 'dark' })。または、OIDC 認可 URL に theme=dark を追加します。Logto でダークモードが有効になっている場合、このパラメータはデフォルト/OS のテーマを上書きします。ダークモードが無効になっている場合、このパラメータは無視されます。このサポートは PR #9645 で追加されました。

参照 Issue #9512
トラブル対応
Logto がサインアップ許可リストに含まれないメールアドレスに確認コードを送信しないようにするには、どうすればよいですか?

これはLogtoの統一サインイン/登録フォームで発生します。コードが検証される前の段階では、Logtoはそのメールアドレスが既存のサインインアカウントに属するのか新規登録のものかを区別できず、それより早い段階で拒否するとアカウントが存在するかどうかが露呈する可能性があります。allowlistは検証後も引き続き適用されるため、許可されていないメールアドレスは登録を完了できません。

検証コードが送信される前に許可されていないメールアドレスを拒否するには、明示的なsign-up/registerフローを使用してください。このフローでは、emailコネクターを呼び出す前にすでにallowlistチェックが実行されます。統一サインインパスでもこのチェックが必要な場合は、PR fix(core): check the email allowlist before sending a sign-up sign-in code を含むリリースにアップグレードするか、セルフホストビルドでその変更をcherry-pickしてLogtoを再ビルドしてください。アップグレード後、allowlistに含まれていないアドレスを送信して修正を確認してください。検証コードのリクエストは直ちに失敗し、メールは送信されないはずです。

参照 Issue #9690