概要
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の機能
Casdoorはフロントエンドとバックエンドが分離したアーキテクチャに従い、Golangで開発されています。 高い並行性をサポートし、管理用のWebベースのUIを提供し、10以上の言語でのローカライゼーションをサポートします。
CasdoorはGitHub、Google、QQ、WeChatなどのサードパーティアプリケーションログインをサポートし、プラグインを使用してサードパーティログインを拡張することができます。
CasdoorはCasbinに基づいた認可管理をサポートしています。 ACL、RBAC、ABAC、およびRESTfulアクセス制御モデルをサポートしています。
Casdoorは電話認証コード、メール認証コード、パスワード回復機能を提供します。
Casdoorはアクセスログの監査と記録をサポートします。
CasdoorはAlibaba Cloud、Tencent Cloud、Qiniu Cloudの画像CDNクラウドストレージと統合しています。
Casdoorは登録、ログイン、パスワード回復ページのカスタマイズを可能にします。
Casdoorはデータベース同期による既存システムとの統合をサポートし、Casdoorへのスムーズな移行を可能にします。
CasdoorはMySQL、PostgreSQL、SQL Serverなどの主流データベースをサポートし、プラグインを使用して新しいデータベースの拡張をサポートしています。
仕組み
ステップ 0 (事前知識)
- 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=xxx
。 endpoint
をあなたのCasdoorのホストURLに、xxx
をあなた自身の情報に置き換えてください。
xxx
の部分をどう埋めるか?
client_id
について:これは各アプリケーションの下で見つけることができますredirect_uri
について:これはあなた自身のアプリケーションのコールバックURLに設定する必要があります。 Casdoorはこの情報を使用して、認可後に応答を送り返します。state
について:これはあなたのアプリケーション名で埋めるべきです。
アプリケーションはユーザーに次のように促します:「ねえ、私はいくつかのリソースが必要で、これらのリソースにアクセスするためのあなたの許可が必要です。このURLに行って、私のためにあなたのユーザー名とパスワードを入力してもらえますか?」 正しく構成されたURLを使用して、あなたのアプリケーションはユーザーにこのURLへのリクエストを発行させ、認可リクエスト
が完了します。
このステップは簡単です:ユーザーはステップ1で構成されたURLにリダイレクトされ、Casdoorのログインページが表示されます。
ステップ 2 (認可グラント)
ログインページに正しいユーザー名と認証情報を入力することで、Casdoorはユーザーの身元を知り、ステップ1で設定されたコールバックURLにcode
とstate
の2つの情報を送り返す準備ができます。 これら2つの情報があなたのアプリケーションに送り返されると、アプリケーションに認可が与えられ、認可グラント
が完了します。
ユーザーはURLを開き、Casdoorに認証情報を提供します。 Casdoorは次のように言います:「見た目が良いですね〜これは私のデータベースにいるユーザー(アプリケーションにcode
とstate
を取得する権限を与えている)です。そして、私はコールバックURL(redirect_uri
)を使用してcode
とstate
をアプリケーションに送り返します。」
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 Server
とResource Server
の両方として機能することができます。 言い換えれば、Casdoorはあなたのアプリケーションにリソースへのアクセスを認可します。通常はCasdoorのデータベースから現在ログインしているユーザーの情報です。 Casbin-OAはCasbinのウェブアプリの一つです。
それは認証のためにCasdoorを使用しています。 CasnodeはCasbinコミュニティによって開発された公式フォーラムです。 それは認証プラットフォームとしてCasdoorを使用し、メンバーを管理します。
ステップ 6 (保護されたリソース)
Casdoorは2つの部分から構成されています: Casdoorは言います:「見た目が良い〜これは私のデータベースにいるユーザー(アプリケーションにcode
とstate
を取得するための認可を与えている)です。そして、私はコールバックURL(redirect_uri
)を使用してアプリケーションにcode
とstate
を送り返します」。 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フロントエンドUI | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
バックエンド | CasdoorのためのRESTful APIバックエンド | Golang + Beego + SQL | https://github.com/casdoor/casdoor |