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

シングルサインオンを有効にする方法

はじめに

Casdoorを接続し、組織内に複数のアプリケーションを設定しました。 組織内の任意のアプリに一度サインインすると、他のアプリに移動した際に追加のクリックなしでサインインできるようにしたい。

このシングルサインオン機能を提供しています。 有効にするには、次のことが必要です:

  • 自動サインインボタンを有効にする。
  • ホームページのURLを入力する。
  • アプリケーションのホームページにサイレントサインイン機能を追加する。

Casdoorによって提供される基本的なサインインプロセスでは、現在ログインしているユーザーを選択するか、別のアカウントを使用して組織内の他のアプリケーションにログインできます。

自動サインインを有効にすると、選択ボックスは表示されず、ログインしているユーザーは直接ログインします。

設定

  1. "home"フィールドに入力します。 アプリケーションのホームページまたはログインページになります。

sso_home.png 2. 自動サインインボタンを有効にする。

sso_signin.png

サイレントサインインを追加

実際には、URL内のパラメータを持つことで自動ログインを実装しています。 したがって、アプリケーションはURLにジャンプした後にログインをトリガーする方法を持っている必要があります。 casdoor-react-sdkを提供しており、この機能を迅速に実装するのに役立ちます。 use-in-reactで詳細を見ることができます。

情報

仕組み

  1. アプリケーションのホームページへのURLには、silentSigninパラメータを含めます。
  2. ホームページで、silentSigninパラメータをチェックしてサイレント(自動)ログインが必要かどうかを判断します。 もしsilentSignin === 1ならば、関数はSilentSigninコンポーネントを返すべきで、これによりログインリクエストを開始するのに役立ちます。 自動ログインが有効になっているので、ユーザーはクリックせずに自動的にログインします。

ポップアップサインインを追加

"ポップアップサインイン"機能は小さなウィンドウを開きます。 子ウィンドウでCasdoorにログインすると、認証情報をメインウィンドウに送信し、自動的に閉じます。 この機能はURL内のパラメータを持つことで実装しています。

情報

使用方法

casdoor-js-sdkpopupSignin()メソッドを使用して、この機能を迅速に実装します。 casdoor-nodejs-react-exampleでデモを見ることができます。

仕組み

  1. アプリケーションのホームページへのURLには、popupパラメータを含めます。
  2. ログインパラメータにpopup=1がある場合、Casdoorはcodestateをメインウィンドウにメッセージとして送信し、SDKを使用してメインウィンドウでtokenを取得する処理を完了します。

SSOの使用

設定は完了です。 以下では、自動ログインの使用方法を示します。

情報

アプリケーションがユーザーのプロファイルページにリダイレクトできることを確認してください。 各言語のSDKでgetMyProfileUrl(account, returnUrl) APIが提供されています。

プロファイルページを開き、「ホーム」ページ(/ URLパス)に移動します。 組織が提供するアプリケーションリストが表示されます。 「built-in」以外の組織にいるユーザーのみが「ホーム」ページでアプリケーションリストを見ることができることに注意してください。 すべてのグローバル管理者(「built-in」組織にいる者)はそれを見ることができません。

sso_homepage.png

アプリケーションリストのタイルをクリックすると、GETパラメータ?silentSignin=1を持つそのアプリケーションのホームページURLにジャンプします。 アプリケーションがCasdoor SSOと統合されている場合(つまり、?silentSignin=1パラメータを認識し、バックグラウンドでサイレントログインを実行する場合)、自動的にアプリケーションにログインします。