ログイン認証ライブラリWakarana
WakaranaはPHPのwebアプリケーションへの組み込みを想定した著作権フリー(パブリックドメイン)のログイン認証ライブラリです。
基本的なログイン認証機能やロールを使用した権限管理に加え、TOTPによる2要素認証や、ワンタイムトークンによるCSRF(クロスサイトリクエストフォージェリ)対策をサポートしています。
また、データベースをSQLiteとPostgreSQLの双方から選択可能なため、小規模なサイトから大規模なサイトまで幅広く活用していただけます。
特徴
オープンソース・パブリックドメイン
Wakaranaはサンプルコードを含めて著作権放棄されたオープンソースソフトウェアです。利用にあたってライセンス料が不要であるだけでなく、プロプライエタリなソフトウェアを含む様々なライセンスのソフトウェアに組み込んで再頒布することが可能です。
高いセキュリティ性
Wakaranaには、同一IPアドレスによる短時間での連続アクセスを検知して総当たり攻撃を抑制する機能や、弱いパスワードを判定して警告する機能が標準で備わっています。ロールベースアクセス制御を採用
Wakaranaでは、権限管理機能として、近年多くのサービスで主流となっているロールベースアクセス制御を採用しており、権限をロールにまとめることで効率的な権限管理を実現しています。ツリー構造(親子関係)で割り当て可能な権限
Wakarana(v24.08-1以降)の権限にはファイルシステムの「フォルダ」のように親子関係を設定可能です。親権限をロールに割り当てれば、そのツリーの下流にある子権限・孫権限なども自動的にロールに割り当てが行われます。
最大値が自動的に選択される権限値
Wakarana(v24.08-1以降)では、権限とは別に、任意の整数を設定可能な「権限値」をご利用いただけます。それぞれの権限値は、各ユーザーに対し、割り当て済みのロールの各権限値の中で最大となる値が自動的に設定されるため、「1日あたりの利用回数の上限」や「使用可能なストレージ容量」などの値をロールで管理する場合に便利です。
2要素認証に対応
WakaranaはTOTP(時間ベースワンタイムコード)方式の2要素認証に対応し、Google Authenticatorを始めとした多くのTOTP対応クライアントと組み合わせることで2要素認証を実現します。SQLiteとPostgreSQLの双方に対応
WakaranaではデータベースをSQLiteとPostgreSQLから選択可能とすることで、格安レンタルサーバーを使用する小規模webサービスから、専用サーバーを使用した大規模なシステムまで幅広い用途でご利用いただけるようになりました。カスタムフィールド機能により柔軟にユーザーデータの追加が可能
Wakaranaは各ユーザーのユーザーデータとして登録する項目を任意に設定可能なカスタムフィールド機能を備えています。また、各ユーザーに対して複数のメールアドレスを紐付けたり、ユーザーIDの代わりにメールアドレスでログインする機能を提供するなど、様々なwebアプリケーションで活用いただけるライブラリとなっています。
導入方法
(1) ダウンロードしたZIPファイルを解凍し、wakaranaフォルダをwebアプリケーションのフォルダ内にコピーします。(2) 使用するwebサーバが.htaccessによるアクセス制御に対応していない場合は、サーバ側の設定ファイル(nginxの場合はconfファイル)を編集して、wakaranaフォルダ内のDBファイルとINIファイルに外部から直接アクセスできないよう設定します。
(3) wakarana_config.iniを開き、用途に応じて設定値を編集します。
(4) wakarana/config.phpをPHPファイルからインクルードし、wakarana_configクラスを使用してデータベースを作成します。
(5) カスタムフィールドを使用する場合、wakarana_configクラスを使用して追加します。
(6) wakarana/main.phpをPHPファイルからインクルードし、wakaranaクラスを呼び出して使用します。
※ 設定値や関数についての詳細は以下に掲載のサンプルコードと関数マニュアルをご確認ください。
ダウンロード
Vectorからダウンロード(推奨)当サイトからダウンロード
既に稼働しているWakaranaのバージョンアップを行う際には、リリースノートでバージョンアップ時に行う必要のある操作をご確認ください。
各種マニュアル・サンプルコード
設定マニュアル >>関数マニュアル >>
サンプルコード >>
※関数マニュアルではサンプルコードで紹介していない関数や、サンプルコードで省略している引数の説明もご覧いただけます。