SSO1
出典: GeeklogJpWiki
Authentication>OpenPNEとGeeklogをハックしてシングルサインオンする例1
目次 |
[編集]
OpenPNEとGeeklogをハックしてシングルサインオンする例1
[編集]
前提条件
- OpenPNEのGeeklogのは同一ドメイン、データベースは共通
[編集]
概要
- OpenPNEに登録する。招待制、Open制どちらでも可。
- OpenPNE初回ログイン時に、Geeklogに自動的にユーザ登録される。
- OpenPNEログインと同時にGeeklogにログインする。
- メールアドレス、パスワード、ニックネーム(Geeklogでは本名に充当)はOpenPNEで変更するとGeeklogでは自動更新する。
プロフィールに関する機能はOpenPNEを使う - 共通のキー:OpenPNEのregist_address(登録時メールアドレス)=Geeklogのusername(ユーザ名)
[編集]
設定方法
[編集]
Geeklogの設定
- ヘッダメニューのアカウント情報は無効にする。
$_CONF['menu_elements'] = array
(
'home', // ホーム へのリンク
'contribute', // 記事の新規作成へのリンク
'calendar', // カレンダ表示へのリンク
'search', // 検索オプションへのリンク
'stats', // ステータス情報
'directory', // 記事の一覧
//'prefs', // アカウント情報
'plugins' // プラグイン {plg_menu_elements} 変数と同じ.
// 'custom' // CUSTOM_menuEntries 関数の返す文字列を表示.
//(詳細はlib-custom.php参照)
);
- ユーザの新規登録を許可しない設定にする
// ユーザの新規登録拒否 false:許可 true:拒否(管理者のみ登録可能)
$_CONF['disable_new_user_registration'] = true;
- ユーザが自分でユーザー名を変更できない設定にする
// ユーザが自分でユーザ名を変更(1:変更できる 0:変更できない)
$_CONF['allow_username_change'] = 0;
- ユーザ自身でアカウント削除できない設定にする
// ユーザが自分でアカウントを削除(1:削除できる 0:削除できない)
$_CONF['allow_account_delete'] = 0;
- ユーザ名表示の際に,本名を表示する設定にする
(1:本名表示 0:ユーザ名表示)
$_CONF['show_fullname'] = 1;
- ブロック ユーザ情報は無効にする。
- Admin ユーザのユーザ名をメールアドレスにする
- ブロックにphpblock_sns を登録する(ログイン用)
[編集]
Geeklog プログラム追加修正
- public_html/admin/auth.inc.php (修正)
- public_html/layout/thema/users_add/*.* (追加)
- public_html/sns/ OpenPNEと同じフォルダへ
- public_html/sns_users/login.php (追加)
- public_html/sns_users/login2.php (追加)
- public_html/sns_users/users_add.php (追加)
- private/geeklog/plugins/users_add/config.php (追加)
- ☆OPENPNE_DIR ENCRYPT_KEY の設定が必要
- private/geeklog/system/custom/phpblock_sns.php (追加)
- lib_custom.phpに登録のこと (修正)
[編集]
OpenPNEの設定
- 外部ログインページURL:設定する
- 通常ログインページ表示設定:外部ログインページへリダイレクトする
[編集]
OpenPNEをハック
OpenPNE (2.10.1)
- Geeklogサイトのメールアドレス、パスワード、本名更新処理追加
- private/sns/webapp/lib/db/member.php (修正)
- ☆Geelog $_DB_table_prefix を変更している場合は修正が必要
- Geeklog渡す情報クッキー書き込み
- private/sns/webapp/lib/OpenPNE/Auth.php (修正)
- メールアドレス変更後の画面遷移変更
- private/sns/webapp/modules/pc/do/h_config1.php (修正)
- ログアウト後の画面遷移変更
- private/sns/webapp/modules/pc/do/inc_page_header_logout.php (修正)
- Geeklogサイトからログアウトを実行する
- private/sns/webapp/modules/pc/do/o_logout.php (追加)
[編集]
メリット
- ユーザはOpenPNEだけの登録処理になる
- OpenPNEを招待制にできる。Open制も可
- メールアドレス、ニックネーム(Geeklogでは本名)が一元管理できる
[編集]
デメリット
- 初期導入が煩わしい
- シングルサインオンはPCのみ(携帯はOpenPNEのみログイン)




