中央 認証サービス(CAS)は、Web用のシングルサインオンプロトコルです。[ 1 ]その目的は、ユーザーが認証情報(ユーザーIDやパスワードなど)を一度入力するだけで、複数のアプリケーションにアクセスできるようにすることです。また、CASにより、Webアプリケーションはユーザーのセキュリティ認証情報(パスワードなど)にアクセスすることなく、ユーザーを認証できます。CASという名称は、このプロトコルを実装するソフトウェアパッケージを指すこともあります。
説明
[編集]CASプロトコルには、少なくとも3つの関係者、すなわちクライアントWebブラウザ、認証を要求するWebアプリケーション、そしてCASサーバーが関与します。また、独自のHTTPインターフェースを持たず、Webアプリケーションと通信するデータベースサーバーなどのバックエンドサービスが関与する場合もあります。
クライアントが認証を必要とするアプリケーションにアクセスすると、アプリケーションはクライアントを CAS にリダイレクトします。CAS は通常、ユーザー名とパスワードをデータベース ( Kerberos、LDAP、Active Directoryなど) と照合して、クライアントの信頼性を検証します。
認証が成功すると、CASはクライアントをアプリケーションに返し、サービスチケットを渡します。アプリケーションは、安全な接続を介してCASにアクセスし、独自のサービス識別子とチケットを提供することで、チケットを検証します。その後、CASは、特定のユーザーが認証に成功したかどうかに関する信頼できる情報をアプリケーションに提供します。
CASはプロキシアドレスを介した多層認証を可能にします。データベースやメールサーバーなどの連携バックエンドサービスもCASに参加し、Webアプリケーションから受信した情報に基づいてユーザーの真正性を検証できます。したがって、WebメールクライアントとWebメールサーバーはすべてCASを実装できます。
歴史
[編集]CASは、イェール大学技術計画部のショーン・ベイエルン氏によって考案・開発されました。その後、イェール大学のドリュー・マズレク氏によってメンテナンスされました。CAS 1.0ではシングルサインオンが実装されました。CAS 2.0では多層プロキシ認証が導入されました。その後、新機能を備えたCASディストリビューションがいくつか開発されました。
2004年12月、CASはJava in Administration Special Interest Group (JASIG)のプロジェクトとなり、2008年以降は同グループがCASの保守と開発を担当しています。以前は「Yale CAS」と呼ばれていたCASは、現在「Jasig CAS」としても知られています。2010年、JasigはSakai Foundationと両組織の合併について協議を開始しました。そして2012年12月、両組織はApereo Foundationとして統合されました。
2006年12月、アンドリュー・W・メロン財団は、 CASの開発に対して、イェール大学に第1回メロン技術協力賞として5万ドルを授与した。[ 2 ]受賞当時、CASは「(他の受益者の中でも)数百の大学キャンパス」で使用されていた。
2013年4月にCASプロトコル仕様3.0がリリースされました。[ 3 ]
実装
[編集]Apereo CAS 実装
[編集]現在、CAS プロトコルのリファレンス実装である Apereo CAS サーバーは次の機能をサポートしています。
- CAS v1、v2、v3プロトコル
- SAML v1およびv2プロトコル
- OAuthプロトコル
- OpenID および OpenID Connect プロトコル
- WS-Federation パッシブ リクエスタ プロトコル
- JAAS、LDAP、RDBMS、X.509、Radius、SPNEGO、JWT、Remote、Trusted、BASIC、Apache Shiro、MongoDB、Pac4J などによる認証。
- WS-FED、Facebook、Twitter、SAML IdP、OpenID、OpenID Connect、CAS などへの委任認証。
- ABAC、時間/日付、REST、Internet2 の Grouper などによる認証。
- Hazelcast、Ehcache、JPA、Memcached、Apache Ignite、MongoDB、Redis、Couchbase などを使用した HA クラスター化デプロイメント。
- JSON、LDAP、YAML、JPA、Couchbase、MongoDB などを利用したアプリケーション登録。
- Duo Security、SAASPASS、YubiKey、RSA、Google Authenticator ( TOTP ) などによる多要素認証。
- ログ記録、監視、統計、構成、クライアント登録などを管理するための管理 UI。
- グローバルおよびアプリケーションごとのユーザー インターフェイスのテーマとブランディング。
- パスワード管理とパスワード ポリシーの適用。
Django実装
[編集]Django CAS サーバー
[編集]- django-mama-cas: [ 4 ] Django Central Authentication Service (CAS) シングルサインオンサーバー
Django CAS クライアント
[編集]- django-cas-ng: [ 5 ] Django CAS 1.0/2.0/3.0クライアント認証ライブラリ、Django 2.0、2.1、2.2、3.0およびPython 3.5+をサポート
参照
[編集]参考文献
[編集]- ^ "JASIG CAS プロトコル ページ" .アペレオ/JASIG 。2016 年6 月 24 日に取得。
- ^ メロン技術コラボレーション賞プレスリリース(PDF)。
- ^ 「CASプロトコル仕様3.0」 。 2020年11月6日閲覧。
- ^ “django-mama-cas” . GitHub . 2022年2月16日.
- ^ "django-cas-ng" .