0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2025 年トップ 5 オープンソース アイデンティティとアクセス管理 (IAM) プロバイダー

Posted at

本記事は元々 blog.logto.io に掲載されたものです。

IAM プロバイダーとは何ですか?

アイデンティティとアクセス管理 (IAM) プロバイダーは、リソースへの安全で制御されたアクセスを保証するシステムです。 次の 4 つの柱を組み合わせています。

  • 認証: ユーザーの身元を確認する (例: パスワード、生体認証、ソーシャル ログイン)。
  • 承認: 役割やポリシーに基づいて権限を付与します。
  • ユーザー管理: プロビジョニング、役割、監査を処理します。
  • 組織管理: チーム、権限、マルチテナンシーを構造化します。 IAM ツールは、セキュリティ ポリシーを強制し、侵害を防止し、SOC 2、GDPR、HIPAA などのコンプライアンス基準を満たすために不可欠です。

オープンソース IAM ソリューションを選択する際の重要な考慮事項

コア要件は次のとおりです:

  1. 統合対応の SDK とデプロイの柔軟性:
    技術スタック (言語、フレームワーク、データベースなど) との互換性を確保し、一般的なデプロイ オプション (npm パッケージ、Docker コンテナー、GitPod 統合、または 1 クリックでのホスティングなど) を提供します。 これにより、セットアップ時間を短縮し、市場投入までの時間が短縮されます。

  2. 相互運用性のためのプロトコルサポート:
    サードパーティ アプリおよび ID プロバイダー (Google、Apple、Azure AD など) との統合を目的とした OAuth 2.0OpenID Connect (OIDC)SAMLLDAP をサポートする必要があります。 オープン スタンダードにより、ベンダー ロックインが最小限に抑えられ、フェデレーション ID ワークフローが簡素化されます。

  3. ビジネス対応の機能のモジュール性:
    現在のニーズに対応し、将来の需要に備えて拡張できるモジュール式コンポーネントを提供するソリューションを選択してください。

    • 認証: パスワード、パスワードレス、ソーシャル ログイン、SSO、生体認証、M2M 認証。
    • 承認: RBAC、ABAC、および API 保護。
    • 管理: ユーザー ライフサイクル ツール、監査ログ、Webhook、コンプライアンス レポート。
    • セキュリティ: MFA、暗号化、パスワード ポリシー、ブルートフォース保護、ボット検出、およびブロックリスト。 透明なセキュリティ プラクティスを持つプロジェクトを選択してください (SOC2 / GDPR 準拠)。
  4. ユーザー エクスペリエンス (UX) の最適化:
    事前構築された認証フロー (ログイン、登録、パスワード リセット) を備えたソリューションを優先して選択し、開発労力を削減します。 エンドユーザー フローが直感的で、モバイルに対応しており、カスタマイズ可能であることを確認して、コンバージョン率を向上させます。

  5. カスタマイズと拡張性:
    API と Webhook は、認証ワークフロー、UI テーマ、ポリシー ロジックを独自のビジネス ルールに適合させるためのカスタマイズが可能である必要があります。 「ブラック ボックス」ソリューションを避け、透明性のあるコミュニティ主導のコードを選びます。

長期的な成功に向けた差別化要因:

  1. 開発者エクスペリエンス (DX):
    包括的なドキュメント、コード サンプル、サンドボックス環境 (Postman コレクション、CLI ツールなど) を備えたローコード管理コンソールは、セットアップを合理化し、エラーを減らします。

  2. コミュニティとエンタープライズ サポート:
    問題解決と知識共有のための活発なコミュニティ (Discord、GitHub)。 エンタープライズ サポート オプション (SLA、専用エンジニアリング) は、ミッションクリティカルなデプロイメントに信頼性を提供します。

  3. スケーラビリティ:
    ゼロデイ脆弱性と新たな標準 (FIDO2 など) に対する定期的な更新。 ハイブリッド デプロイ オプション (OSS + Cloud) により、スケーリングが簡素化され、運用オーバーヘッドが軽減されます。

これらはオープン ソース プロジェクトにとって少し厳しいように見えますが、既に対応できるサービスがあるため、見てみましょう。

トップ 5 のオープン ソース IAM プロバイダー

  1. Logto: 認証、承認、ユーザー管理、マルチテナンシーを一体化した開発者重視の IAM - フレームワークフリー、OIDC/OAuth/SAML に完全対応の無料 OSS。
  2. Keycloak: 企業向けのプロトコル強化ソリューション (SAML/OAuth/LDAP)、自己ホスティングと詳細なアクセス管理を必要とする組織向け。
  3. NextAuth: 軽量な認証ライブラリで、Next.js 開発者向けに設計、ソーシャルログイン、パスワードレス認証、セッション管理を簡素化。
  4. Casdoor: Web UI を備えた UI 優先の IAM およびシングルサインオン (SSO) プラットフォームで、OAuth 2.0、OIDC、SAML、CAS、LDAP、および SCIM に対応。
  5. SuperTokens: OAuth 2.0 ベースの認証ソリューション、オープンソースの柔軟性と商業的拡張性。

#1 ログト

Logtoは、モダンなアプリやSaaS製品向けのオープンソースのAuth0、Cognito、Firebase認証の代替ソリューションで、OIDC、OAuth 2.0、SAML オープンスタンダードによる認証と承認をサポートしています。

ホームページ | GitHub レポジトリ | ドキュメント | Discord コミュニティ

Logto OSS の主な機能

  1. プロトコル: OIDC、OAuth 2.0、SAML 2.0
  2. 公式 SDK:
    • 公式 SDK: Android、Angular、Capacitor JS、Chrome 拡張機能、.NET Core、Expo、Express、Flutter、FlutterFlow、Go、Java Spring Boot、Next.js (ページおよびアプリルーター)、Auth.js (NextAuth)、Nuxt、Passport.js、PHP、Python、React、Ruby、SvelteKit、iOS、Vanilla JS、Vue、Webflow、WordPress、Hasura、Supabase。
    • カスタム統合: 従来の Web アプリ、SPA、モバイル アプリ、M2M、OAuth アプリ、SAML アプリ。
  3. 認証方法: パスワード、メールおよび SMS のパスワードレス、ソーシャル ログイン、エンタープライズ SSO、認証アプリ TOTP / パスキー / バックアップ コードによる多要素認証、個人アクセストークン、Google One Tap、招待状、アカウントリンク、OAuth同意フロー。
  4. 承認: API 保護、ユーザー/M2M 用 RBAC、組織レベルの RBAC、JWT/不透明トークンの検証、カスタム トークン クレーム。
  5. マルチテナンシー: 組織テンプレート、メンバー招待、各組織別の MFA、ジャストインタイムプロビジョニング (JIT)、各テナント向けに調整されたサインインエクスペリエンス。
  6. ユーザー管理: ユーザー模倣、ユーザー作成と招待、ユーザーの一時停止、監査ログ、およびユーザー移行。
  7. ユーザー エクスペリエンス: 美しく、すぐに使える、完全にカスタマイズ可能な認証フローを提供し、フェデレーションID管理を通じて統一されたマルチアプリのオムニログイン エクスペリエンスを実現します。
  8. プロバイダー統合:
    • ソーシャル プロバイダー: Google、Facebook、Microsoft、Apple、GitHub、X.com、LinkedIn、Slack、Amazon、Discord、Line、WeChat、Kakao など。 OpenID Connect または OAuth 2.0 を介して完全にカスタマイズ可能です。
    • エンタープライズ プロバイダー: Microsoft Azure AD、Google Workspace、Okta など。 OpenID Connect または SAML を介して完全にカスタマイズ可能です。
    • メール配信プロバイダー: AWS、Mailgun、Postmark、SendGrid など。SMTP または HTTP コールを介して構成可能。
    • SMS 配信プロバイダー: Twillio、SMS Aero、GatewayAPI、Vonage、Aliyun、Tencent。

Logto OSS の利点

  • 100% 無料 OSS: すべての基本機能 (SSO、RBAC、組織などを含む) が無料で利用可能です。必要不可欠なものには料金がかかりません。
  • 企業向けセキュリティ: SOC2 対応アーキテクチャ、MFA、SSO、API 保護、マルチテナント分離、ブルートフォース保護、監査ログ。
  • ID プロバイダーになる: Logto を使用すると、サービスを ID プロバイダーに変換し、複数のアプリケーション、プラットフォーム、およびデバイス全体でのシームレスな統合を実現できます。 普遍的なシングル サインオンとフェデレーション ID 管理を実現するために、OIDC、OAuth 2.0、および SAML 2.0 をサポートします。
  • パートナーシップのための外部エコシステムとの統合: Logto は、M2M 認証、個人アクセストークン、ユーザー模倣 (トークン交換)、同意画面付きのサードパーティ アプリ向け OAuth 認可、サードパーティ ID プロバイダー向けのカスタマイズ可能な接続をサポートし、すべてが製品の成長を促進します。
  • 開発者に優しい: よく構造化された API、SDK、ドキュメント、および直感的なコンソール。
  • スケーラブルなデプロイ: Logto は無料の OSS として利用可能であり、Logto Cloud は、更新と長期サポートのための資金的支援が保証された管理サービスを提供します。
  • アクティブなコミュニティ: 応答性の高い Discord コミュニティと、積極的なコアチームが、タイムリーな問題解決と継続的な機能拡張を保証します。
  • 軽量でモダン: モダンな設計原則に基づいて構築され、スピードと効率に最適化されており、個人開発者、スタートアップ、および企業に適しています。

Logto OSS の欠点

  • リダイレクト ベースの認証: OIDC に基づいており、ID プロバイダーへのリダイレクトを必要としますが、非リダイレクト エクスペリエンスを求めるシナリオに適合しない場合があります。 ただし、Logto は埋め込まれた直接サインイン コンポーネント (ソーシャル、SSO など) を提供して、これに対処しています。
  • B2E 機能の制限: LDAP/Active Directory 同期および超詳細な認証がまだ組み込まれていません。
  • エコシステムの成長: 古いソリューションと比較してコミュニティは小さいですが、急速に進化しており、貢献が増えています。

#2 キークローク

Keycloak は、エンタープライズ対応 IAM ソリューションで、SAML、OAuth、および LDAP をサポートしており、プロトコルの柔軟性、自己ホスティング、およびきめ細かなアクセス制御を優先する組織に最適です。

ホーム ページ | GitHub レポジトリ | ドキュメント | Slackコミュニティ

Keycloak の特徴

  1. プロトコル: OIDC、OAuth 2.0、SAML 2.0、LDAP
  2. 公式 SDK: Java、JavaScript、Node.js、C#、Python、Android、iOS、Apache HTTP Server
  3. 認証方法: シングルサインオン (SSO)、多要素認証 (MFA)、ソーシャルログイン、Kerberos。
  4. ユーザー エクスペリエンス: カスタマイズ可能な HTML、CSS、JavaScript を使用したすぐに使えるサインイン インターフェイスとアカウント管理コンソール。
  5. きめ細かい承認: 役割、属性、その他の基準に基づくアクセス制御。
  6. ディレクトリ同期: 既存の企業ディレクトリ (LDAP/Active Directory) との同期。
  7. プラグ可能なアーキテクチャ: カスタム拡張機能と統合。

Keycloak の利点

  • 企業向けの包括的な機能セット: SSO、MFA、ID ブローカー、ユーザー フェデレーション、複数のプロトコル (OAuth 2.0、OpenID Connect、SAML) のサポートなど。
  • カスタマイズ可能なユーザー インターフェイスと管理設定: デフォルトのログイン UI と、テーマや拡張が可能な管理コンソールを提供します。
  • 統合と拡張性: 外部 ID プロバイダー (LDAP/AD およびソーシャル ログインなど) と簡単に統合でき、プラグインを介したカスタム拡張をサポートします。
  • 活発なコミュニティと継続的な開発: 定期的な更新、活発なコミュニティサポート、および Red Hat によるサポートにより、継続的な改善とセキュリティ パッチが保証されます。

Keycloak の欠点

  • 急な学習曲線: リアルム、クライアント、および認証フローの設定は、深い IAM 経験がないチームにとっては難しい場合があります。
  • カスタマイズの課題: 柔軟ですが、UI のカスタマイズには FreeMarker テンプレートまたはカスタム SPI を扱う必要があるため、面倒になることがあります。
  • メンテナンスの負担: 頻繁な主要アップデートと破壊的変更がアップグレードを困難にし、サーバーとクライアント ライブラリ間の調整を慎重に行う必要があります。
  • リソース消費が激しい: 高可用性またはコンテナ化されたセットアップで Keycloak を実行するには、多大な CPU/RAM が必要となり、パフォーマンスの調整が必要です。
  • ドキュメンテーションの欠如: 基本的なことはよくカバーされていますが、高度な機能やエッジ ケースの詳細や最新のドキュメントが不足していることが多いです。

#3 Auth.js/NextAuth.js

NextAuth.js は Next.js に特化した軽量な認証ライブラリで、ソーシャルログイン、パスワードレス認証、セッション管理を最小限の設定で提供します。

ホーム ページ | GitHub レポジトリ | ドキュメント | Discordコミュニティ

NextAuth.js の機能

  1. プロトコル: OAuth 2.0、OIDC
  2. フレームワーク: Next.js、Node.js、およびサーバーレス プラットフォーム (Vercel、AWS Lambda など)
  3. 認証方法: ソーシャルログイン、マジックリンク、クレデンシャル、WebAuthn (パスキー)。
  4. 認証エクスペリエンス: デフォルトのサインイン、サインアウト、エラー、検証ページ。 これらをオーバーライドして、完全なブランド化とカスタマイズされたユーザー エクスペリエンスを作成できます。
  5. セッション管理: JSON Web Token (JWT) ベースのステートレス セッションとデータベース バックのセッションの両方をサポートします。

NextAuth.js の利点

  • スムーズな Next.js 統合: 特に Next.js 用に設計されており、サーバーサイド レンダリング (SSR)、静的サイト生成 (SSG)、API ルートでスムーズに動作します。 開発者は、useSession などのフックや SessionProvider などのコンポーネントを使用して、認証状態を簡単に管理できます。
  • カスタマイズ可能な認証フロー: サインイン用のコールバック、JWT 処理、セッション管理が組み込まれており、開発者は認証動作やトークン処理を深くカスタマイズできます。
  • 活発なコミュニティとエコシステム: チュートリアル、例、ディスカッションを提供する強力な開発者コミュニティが存在し、問題を解決したり機能を拡張したりするのが容易になります。

NextAuth.js の欠点

  • IAM 機能の制限: B2B または B2Eのユース ケースの重要な認証機能である、SMAL、SSO、MFA、マルチテナンシーの欠如。 認証みに重点を置いており、承認やユーザー管理の内蔵サポートがありません。
  • 一貫性のない不十分なドキュメント: ドキュメントが分散していたり古くなっていたり、特に新しいバージョンにアップグレードする際やアプリアーキテクチャに移行する際に、従うのが難しいと多くのユーザーが報告しています。
  • 安定性とバグの懸念: 開発者は、セッション処理の問題、リフレッシュトークンのバグ、予測不可能な動作に遭遇することがあり、時には回避策や代替ソリューションが必要になることがあります。
  • 急な学習曲線: API と構成が複雑に感じることがあり、特に初心者にとっては特にそうです。 NextAuth.js v5 ベータ版で導入されたような頻繁な破壊的変更により、統合の課題が増加しています。

#4 カスドア

Casdoor は、OAuth 2.0、OIDC、SAML、CAS、LDAP、SCIM、WebAuthn、TOTP、MFA、RADIUS、Google Workspace、Active Directory、Kerberos を Web UI でサポートする UI ファーストのアイデンティティ アクセス管理 (IAM) / シングルサインオン (SSO) プラットフォームです。

ホーム ページ | GitHub レポジトリ | ドキュメント | Discord コミュニティ

Casdoor の特徴

  1. プロトコル: OAuth 2.0、OIDC、SAML、CAS、LDAP、SCIM
  2. 公式 SDK: Android、iOS、React Native、Flutter、Firebase、Unity Games、uni-app、Electro、.Net Desktop、C/C++、JavaScript、フロントエンドのみ、React、Next.js、Nuxt、Vue、Angular、Flutter、ASP.NET、 Firebase、Go、Java、Node.js、Python、PHP、.NET、Rust、Dart、Ruby。
  3. 認証方法: 資格情報、Eメール/SMS 認証コード、ソーシャル ログイン (OAuth/SAML)
  4. アイデンティティ管理: ユーザー、役割、権限、マルチテナント、および監査ログを管理するための集中ダッシュボードを提供します。
  5. カスタマイズ可能な UI とフロー: 事前構築された UI テンプレートを提供し、ログイン方法、登録フィールド、および認証フローのカスタマイズを可能にします。
  6. アクセス制御: RBAC をサポートし、高度な権限管理のためにきめ細かな承認ソリューション (Casbin など) と統合できます。
  7. マルチテナント: 1 つのインスタンス内で複数の組織またはプロジェクトの管理を可能にします。

Casdoor の利点

  • 柔軟な統合: Casdoor の豊富な API、SDK、および ID プロバイダーのサポートにより、さまざまなプラットフォームやサードパーティ サービスとの統合が簡単になります。
  • マルチテナントとフェデレーション機能: 組み込みのマルチテナンシーと ID ブローカーは、複数のクライアントまたは子会社を管理する組織に適しています。
  • オープンソースと活発なコミュニティ: Engaged developer community によって維持され、Casnode および QQ グループなどのプラットフォームでのディスカッションが行われ、定期的な更新と貢献が行われています。

Casdoor の欠点

  • セキュリティの懸念: SQL インジェクション (CVE-2022-24124) や任意のファイル読み取りの脆弱性などの問題に直面しており、厳格なセキュリティ構成とタイムリーな更新が必要です。
  • 時代遅れの UI デザイン: 組み込みの UI は、最新の認証ソリューションと比較して古臭く見え、洗練されたユーザー エクスペリエンスのためにはカスタマイズが必要になることがよくあります。
  • 企業向けサポートの制限: 機能は豊富ですが、いくつかの高度な企業機能は、より確立されたプラットフォームと比較して成熟しておらず、追加のカスタマイズが必要になることがあります。
  • 急な学習曲線: 高度なカスタマイズには Golang と React.js の知識が必要であり、これらのテクノロジーに不慣れなチームにとっては困難な場合があります。 Swagger API ドキュメントは存在しますが、複雑なユース ケースの詳細なガイドは不足しています。

#5 スーパー トークン

オープンソースの透明性と商業的スケーラビリティを融合させた開発者中心の認証ソリューションで、パスワードレス、多要素認証、現代のアプリアーキテクチャに最適化されたセッション管理を提供します。

ホーム ページ | GitHub レポジトリ | ドキュメント | Discord コミュニティ

スーパー トークンの特徴

  1. プロトコル:  OAuth 2.0
  2. フレームワークとクラウド統合:
    • フレームワーク: Next.js App Router、Next.js Pages Router、NestJS、GraphQL、RedwoodJS、Capacitor。
    • クラウド プラットフォーム: AWS Lambda、Netlify、Vercel、Hasura、Supabase。
  3. 認証方法:
    • 無料: パスワード、メール/SMS パスワードレス、ソーシャル ログイン。
    • 有料: マルチテナント認証、エンタープライズ SSO (SAML)、MFA (TOTP/メール OTP/SMS OTP)、アカウントリンク。
  4. 事前構築された UI コンポーネントとカスタマイズ可能なフロー: サインイン、サインアップ、およびパスワード回復用のすぐに使える UI コンポーネントを提供します。 開発者は認証フローをカスタマイズできます。
  5. マルチテナントサポート (有料): SAML を介したエンタープライズ SSO、分離されたユーザーデータ、各テナントごとのユニークなログイン方法を備えた複数のテナント (組織またはアプリケーション) の管理を可能にします。
  6. リスク評価 (有料): ログイン試行を分析し、リスク スコアを割り当てるアタック プロテクション スイートを提供します。追加のセキュリティ対策 (MFA が必要な場合など) を施行できます。

スーパー トークンの利点

  1. 明確な UI アプローチ: スーパー トークン は SDK と認証方法の両方を事前構築 UI とカスタム UI に分類し、明確で柔軟な統合経験を提供します。
  2. 軽量で認証重視: 認証専用に設計されており、軽量で効率的です。 オープンソースバージョンには基本機能が含まれており、スタートアップや小規模チームにとって費用対効果が高くなっています。
  3. アクティブな開発: アクティブな GitHub コミュニティによって定期的に更新され、新機能と改善が行われています。

スーパー トークンの欠点

  1. OSS 機能の制限: ダッシュボード向けのアカウントリンク、マルチテナント認証、追加ユーザー、MFA、アタック プロテクション スイートなどの高度な機能には支払いが必要です。
  2. 企業向け統合の制限: SAML アプリケーション統合がないため、レガシー企業システムとの互換性が低下する可能性があります。
  3. 対象範囲の狭さ: 主に認証に重点を置いており、基本的な管理コンソール機能のみを備えています。 高度な認可、テナント管理、および企業向け ID 機能はありません。
  4. 小さなエコシステム: 包括的な IAM ソリューションと比較して、サードパーティの統合とプラグインが少ないです。 コミュニティが小さいため、長期的なサポートや拡張性に影響を与える可能性があります。

結論

オープンソースの IAM ソリューションには、さまざまな種類があります:

  • 包括的で拡張可能: Logto、Keycloak、Casdoor など、認証、承認、ユーザー管理の広範な機能を提供します。
  • 認証/承認のみ: 認証のみに焦点を当てた Supertokens など。
  • 軽量でフレームワーク固有: 特定のフレームワーク向けに設計された NextAuth.js など。

ソリューションを選択する際は、プロジェクトの規模、特定の要件、および将来の拡張性を考慮してください。

Logto は、完全に無料で機能豊富な OSS ソリューションとして際立っており、長期的な安定性、活発なコミュニティ、標準プロトコルの完全サポートを提供します。 標準的なプロトコルに対する完全なサポートを備えており、認証、承認、ユーザー管理の一式を提供しており、非常に拡張性があります。 企業向けのコンプライアンスと信頼性が必要な場合、Logto の費用対効果の高いクラウド バージョンは、専用サポートを備えたシームレスな移行を保証します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?