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

1投稿が「OIDC」でタグ付けされています

すべてのタグを表示

Jenkins OIDC、Gitea OIDC、Grafana SSO と Casdoor: セルフホスト型 DevOps スタックのためのワンログイン

· 1分読む
Yang Luo
Casdoor Maintainer

一般的なセルフホスト型 DevOps スタックのすべてのツールは、OpenID Connect クライアントとして機能できます。Gitea と Argo CD は OIDC をネイティブにサポートし、Jenkins は oic-auth プラグインを介して、Grafana と Portainer は汎用 OAuth 2.0 を介して、MinIO、Harbor、GitLab はそれぞれの OIDC 設定を介して対応しています。これらすべてを 1 つの Casdoor インスタンスに向け、各ツールごとに個別の Casdoor アプリケーションを作成し、ユーザーを Casdoor グループに追加します。各ツールは groups クレームを読み取り、誰が管理者であるかを判断します。この記事では、各ツールのコールバック URL、設定キー、グループマッピングを一覧にし、その後、共通部分を解説します。

Nginx CAS 認証と SSO: Casdoor で Nginx 背後のあらゆるアプリを保護

· 1分読む
Yang Luo
Casdoor Maintainer

オープンソースの nginx には CAS モジュールがないため、「nginx CAS 認証」は実際には 2 つのセットアップのいずれかを意味します。nginx が auth_request モジュールを通じてすべてのリクエストについて認証サービスに問い合わせ、Casdoor が応答する場合(直接 /api/forward-auth で、または casdoor-forward-auth や OAuth2 Proxy 経由)、あるいは nginx 背後のアプリ自体が CAS クライアントであり、Casdoor の CAS サーバーエンドポイントと通信する場合です。nginx を再構築できる場合は、Casdoor nginx モジュールが nginx 内部でログインを実行し、nginx を実行したくない場合は、Casdoor のサイトプロキシをアプリの前に配置できます。どの場合も、ログインページは Casdoor のものなので、1 つの SSO セッション、1 組の権限、1 つの MFA ポリシーですべてのアプリをカバーします。

OpenID Connect における RP 開始ログアウトと SSO ログアウト: Casdoor がユーザーをサインアウトする方法

· 1分読む
Yang Luo
Casdoor Maintainer

OpenID Connect アプリでユーザーをログアウトするには、自前のセッションクッキーを削除するだけでは不十分です。ユーザーはアイデンティティプロバイダーでまだサインインしているため、次の「Sign in」クリック時にパスワードなしでそのまま通過し、そのアイデンティティプロバイダーセッションを共有している他のアプリもサインインしたままになります。適切なログアウトには 3 つの部分があります: アプリのローカルセッションをクリアし、ブラウザをプロバイダーの end_session_endpoint へリダイレクトして(RP 開始ログアウト)プロバイダーセッションを終了させ、バックチャネルログアウトを通じてプロバイダーが他のアプリに通知します。Casdoor では、終了セッションエンドポイントは /api/logout であり、バックチャネルログアウトはアプリケーションごとに設定され、リフレッシュトークンは /api/login/oauth/revoke で失効させることができます。

OpenID Connect を使った Spring Boot SSO: Spring Security, Resource Server および Spring Cloud Gateway と Casdoor

· 1分読む
Yang Luo
Casdoor Maintainer

Spring Boot にシングルサインオンを追加するには、各アプリを Casdoor などの OpenID Connect プロバイダーのアプリケーションとして登録し、Spring Security をプロバイダーの Issuer URL に向けます。そして、アプリの種類に応じて適切な Spring モジュールを選択します。サーバー側レンダリングの Web アプリには oauth2Login()、ベアラートークンを受け取る REST API には oauth2ResourceServer().jwt()、ゲートウェイがマイクロサービス群のユーザー認証を一括で行う場合には TokenRelay フィルターを使った Spring Cloud Gateway が適しています。すべてのアプリが同じ Casdoor にユーザーを送るため、Casdoor がセッションを記憶しており、SSO が実現されます。2番目のアプリにリダイレクトされた際、Casdoor はすでにユーザーを知っているため、ログインフォームを表示せずにそのまま戻ってきます。この記事では、これらの3つの構成パターンすべてを1つの Casdoor に対してセットアップし、それぞれ動作する application.yml とカスタマイズした SecurityFilterChain を提供します。

DolphinScheduler、IoTDB およびその他の Apache データプラットフォーム:Casdoor を使った SSO

· 1分読む
Yang Luo
Casdoor Maintainer

いくつかの Apache データおよびミドルウェアプロジェクトは、独自の Casdoor ログイン機能を備えています:Apache DolphinScheduler には CASDOOR_SSO という認証タイプ(3.2.0 以降)と汎用 OIDC モード(3.4.0 以降)があり、Apache ShenYu には Casdoor プラグイン(2.5.1 以降)、Apache Pulsar Manager には「Log in with Casdoor」ボタン(0.3.0 以降)、Apache APISIX には authz-casdoor プラグイン(2.14.0 以降)があります。Apache IoTDB は例外です:データベース自体は独自ユーザーとパスワードで認証を行い、現在アーカイブされた IoTDB Web Workbench のみが Casdoor と通信します。下表はすべてのプロジェクト、バージョン、および設定場所を一覧にしたものであり、記事の後半では IoTDB でのユーザー認証設定をステップバイステップで解説します。

CasdoorでのSteam OAuthとTelegram OAuth: OIDC経由での非標準ソーシャルログインの追加

· 1分読む
Yang Luo
Casdoor Maintainer

"Steam OAuth"は存在しません。SteamはOpenID 2.0でユーザーをサインインし、64ビットのSteamIDを提供するだけです。Telegramの従来のLogin WidgetもOAuthではありません。ページにはユーザーフィールドと、ボットトークンで検証するHMAC-SHA256ハッシュが渡されます。現在、Telegramはoauth.telegram.orgで実際のOpenID Connectプロバイダーも運営しています。アプリとこれらのプロバイダーの間にCasdoorを配置すると、Casdoorがプロトコル固有のチェックを行い、アプリはGoogleやGitHubの場合と同様に、Casdoorとの通信にOpenID Connectのみを使用します。