メインコンテンツにスキップ

概要

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

CasdoorはWeb UIとアプリケーションユーザーからのログインリクエストの両方を提供します。

Casdoorの機能

  1. Casdoorはフロントエンドとバックエンドが分離したアーキテクチャに従い、Golangで開発されています。 高い並行性をサポートし、管理用のWebベースのUIを提供し、10以上の言語でのローカライゼーションをサポートします。

  2. CasdoorはGitHub、Google、QQ、WeChatなどのサードパーティアプリケーションログインをサポートし、プラグインを使用してサードパーティログインを拡張することができます。

  3. CasdoorはCasbinに基づいた認可管理をサポートしています。 ACL、RBAC、ABAC、およびRESTfulアクセス制御モデルをサポートしています。

  4. Casdoorは電話認証コード、メール認証コード、パスワード回復機能を提供します。

  5. Casdoorはアクセスログの監査と記録をサポートします。

  6. CasdoorはAlibaba Cloud、Tencent Cloud、Qiniu Cloudの画像CDNクラウドストレージと統合しています。

  7. Casdoorは登録、ログイン、パスワード回復ページのカスタマイズを可能にします。

  8. Casdoorはデータベース同期による既存システムとの統合をサポートし、Casdoorへのスムーズな移行を可能にします。

  9. CasdoorはMySQL、PostgreSQL、SQL Serverなどの主流データベースをサポートし、プラグインを使用して新しいデータベースの拡張をサポートしています。

仕組み

原則

ステップ 0 (事前知識)

  1. CasdoorはOAuth 2.0プロトコルに基づいた認可プロセスに従います。 OAuth 2.0の仕組みを簡単に理解することを強くお勧めします。 OAuth 2.0のこの紹介を参照してください。

画像

ステップ 1 (認可リクエスト)

あなたのアプリケーション(ウェブサイトまたはその他のアプリケーションである可能性があります)は、次の形式のURLを構成する必要があります:endpoint/login/oauth/authorize?client_id=xxx&response_type=code&redirect_uri=xxx&scope=read&state=xxxendpointをあなたのCasdoorのホストURLに、xxxをあなた自身の情報に置き換えてください。

ヒント

xxx の部分をどう埋めるか?

  • client_idについて:これは各アプリケーションの下で見つけることができます

  • redirect_uriについて:これはあなた自身のアプリケーションのコールバックURLに設定する必要があります。 Casdoorはこの情報を使用して、認可後に応答を送り返します。

  • stateについて:これはあなたのアプリケーション名で埋めるべきです。

アプリケーションはユーザーに次のように促します:「ねえ、私はいくつかのリソースが必要で、これらのリソースにアクセスするためのあなたの許可が必要です。このURLに行って、私のためにあなたのユーザー名とパスワードを入力してもらえますか?」 正しく構成されたURLを使用して、あなたのアプリケーションはユーザーにこのURLへのリクエストを発行させ、認可リクエストが完了します。

このステップは簡単です:ユーザーはステップ1で構成されたURLにリダイレクトされ、Casdoorのログインページが表示されます。

ステップ 2 (認可グラント)

ログインページに正しいユーザー名と認証情報を入力することで、Casdoorはユーザーの身元を知り、ステップ1で設定されたコールバックURLにcodestateの2つの情報を送り返す準備ができます。 これら2つの情報があなたのアプリケーションに送り返されると、アプリケーションに認可が与えられ、認可グラントが完了します。

ユーザーはURLを開き、Casdoorに認証情報を提供します。 Casdoorは次のように言います:「見た目が良いですね〜これは私のデータベースにいるユーザー(アプリケーションにcodestateを取得する権限を与えている)です。そして、私はコールバックURL(redirect_uri)を使用してcodestateをアプリケーションに送り返します。」

Casdoorはサードパーティのログインも提供します。

ヒント

この場合、認証情報の入力ページではなく、サードパーティのプロバイダーのリストが表示されます。 これらのプロバイダーを使用してアプリにログインでき、Casdoorはミドルレイヤー(ミドルウェア)として機能します。 このステップでは、あなたのアプリケーションはすでにステップ2からのコードを持っており、Casdoorに次のように話します:「ねえ、ユーザーは私にcodeを与えることに同意しました。このcodeを検証して、access_tokenを私に与えてもらえますか?」

ステップ 3 (認可グラント)

Casdoorはあなたのアプリケーションに応答します:「あなたは何を知っている、このcodeは正当に見えます。あなたは正しいアプリケーションでなければなりません。これがあなたのためのaccess_tokenです。」 このcodeを使って、Casdoorは正しいユーザーによって認可されたアプリケーション(ステップ2で)が、後でより多くのリソースにアクセスするために使用されるaccess_tokenを取得しようとしていることを確認します。 このステップでは、あなたのアプリケーションは次のように言います:「素晴らしい!私はちょうど新鮮でおいしいaccess_tokenを手に入れました。これで、Resource Serverからもっと価値のあるものにアクセスすることができます!」

ステップ 4 (アクセストークン)

あなたのアプリケーションは次にResource Serverに向かって言います:「ねえ、このaccess_tokenをチェックしてもらえますか?私はCasdoorからそれを受け取りました。Casdoorが発行した正しいトークンかどうかを確認したいですか?」 Resource Serverはあなたのアプリケーションに応答します:「悪くない。それは私がCasdoorに発行したものとまったく同じようです。そして、Casdoorはこのaccess_tokenを持つ者はこれらのProtected Resourcesにアクセスできると言っています。だから、どうぞそれを持って行ってください!」 そして、それが基本的にあなたのアプリケーションとCasdoorがどのように機能するかです。

ステップ 5 (アクセストークン)

CasdoorはAuthorization ServerResource Serverの両方として機能することができます。 言い換えれば、Casdoorはあなたのアプリケーションにリソースへのアクセスを認可します。通常はCasdoorのデータベースから現在ログインしているユーザーの情報です。 Casbin-OAはCasbinのウェブアプリの一つです。

それは認証のためにCasdoorを使用しています。 CasnodeはCasbinコミュニティによって開発された公式フォーラムです。 それは認証プラットフォームとしてCasdoorを使用し、メンバーを管理します。

ステップ 6 (保護されたリソース)

Casdoorは2つの部分から構成されています: Casdoorは言います:「見た目が良い〜これは私のデータベースにいるユーザー(アプリケーションにcodestateを取得するための認可を与えている)です。そして、私はコールバックURL(redirect_uri)を使用してアプリケーションにcodestateを送り返します」。 https://github.com/casdoor/casdoor/tree/master/web

https://github.com/casdoor/casdoor

ヒント

Casdoorは、OAuth 2.0、OIDC、SAML、CAS、LDAP、SCIM、WebAuthn、TOTP、MFA、RADIUS、Google Workspace、Active Directory、KerberosをサポートするWeb UIを備えたUIファーストのIdentity Access Management (IAM) / Single-Sign-On (SSO)プラットフォームです。 つまり、CasdoorはあなたのアプリケーションがCasdoorのデータベースからリソース、通常は現在ログインしているユーザーの情報にアクセスすることを認可します。

オンラインデモ

Casdoor

Casbinによってデプロイされたオンラインデモはこちらです。

グローバル管理者ログイン:

  • ユーザー名: admin
  • パスワード: 123

Casbin-OA

Casbin-OAはCasbinのウェブアプリの一つです。 それは認証のためにCasdoorを使用します。

Casnode

CasnodeはCasbinコミュニティによって開発された公式フォーラムです。

それは認証プラットフォームとしてCasdoorを使用し、メンバーを管理します。

アーキテクチャ

Casdoorは二つの部分から構成されています:

名前説明言語ソースコード
フロントエンドCasdoorのためのWebフロントエンドUIJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
バックエンドCasdoorのためのRESTful APIバックエンドGolang + Beego + SQLhttps://github.com/casdoor/casdoor