自動ログイン

NewPulsar > 自動ログイン @ 2018/7/10 11:59
お世話になっております。

ログインを自動で行う事は可能でしょうか?
SSOとまではいかないですが、とあるWEBシステムよりBaserCMSで作成したポータル画面へリンクを貼り、自動ログインさせたいです。

1.WEBシステムより、ポータルへのアクセスリンクを用意しておく。
2.リンクへアクセスすると、裏でポータルのログイン画面へユーザIDとPassを渡して自動ログイン行われる。
3.ユーザはリンクへアクセスすると、ログインされた状態でポータルのTOPページが表示されている。

ログインの仕組みについて理解しておらず、申し訳ありませんがご教授お願いします。
seto > Re: 自動ログイン @ 2018/7/11 12:52
こんにちは

baserにユーザーのIDとPWを渡すことによって自動ログインできるような仕組みは無いかと思います。

実現するのであれば、独自で実装することになります。
「cakephp 自動ログイン」などで検索すると参考になりそうな情報が見つかりますが、セキュリティ上の懸念はありますので、実装される場合は慎重に行われることをおすすめします。
NewPulsar > Re: 自動ログイン @ 2018/7/11 16:17
seto 様

情報提供有難うございます。
調査してみます。
NewPulsar > Re: 自動ログイン @ 2018/7/19 14:06
seto様

すみません、結局どうやれば良いのか判らなくなってしまい…。
考えたのですが、ログイン画面でログインボタン押下後に呼ばれる
画面(ファイル)に対し、規定の引数を渡すようなやり方(クッキー?)で
IDやパスを設定しても自動ログインしないのでしょうか?

自前が最善だと思いますが、下名がCakePHPに不慣れ(ラムダ式も)な為
既存のログイン画面をそもそもカスタマイズできないかと思いまして。

何か良い手があればご教授お願いします。
goichi > Re: 自動ログイン @ 2018/7/19 22:23
横槍ですが、通りかかったので回答してみています。

setoさんがコメントの中で「セキュリティ」について言及されているとおり、それっぽい事をするにはセキュリティの問題が付きまとうと思うのです。いま質問者さんが
引用:
規定の引数を渡すようなやり方

と仰っているように、URLにパラメータをつけてログインさせるような方法もありそうですが(もちろんbaserCMS側のカスタマイズが必要)、いかんせんURL中の文字列ですので、パラメータさえ分かってしまえば誰でもログインできてしまうなどの問題がありそうです。(パラメータの有効性が数秒おきに変わるワンタイムトークン的な仕組みがあれば軽減されるかも?)

あと、「自動ログイン」で検索して出てくる「クッキー」については、一度正常にログインしたユーザーに対して発行するものですので、いまの段階の話題じゃないかもです。
NewPulsar > Re: 自動ログイン @ 2018/7/20 9:11
goichi 様

助言有難うございます。
セキュリティ問題ですが、これはイントラで行っており非公開なので問題ないと考えております。
(すみませんイントラ前提の説明が抜けておりました)

baserCMSのログイン部分をカスタマイズして、自動ログイン化できればと考えております。
seto > Re: 自動ログイン @ 2018/7/20 10:39
今の仕組みを活かしつつ、セキュリティ面も考慮しないということであれば、以下の方法が考えられます。

1. ログインしたいbaserのフォルダに、app/Plugin/DisableLoginSecurity/Event/DisableLoginSecurityControllerEventListener.phpを作成し、以下の内容を記載する

<?php
class DisableLoginSecurityControllerEventListener extends BcControllerEventListener {
	public $events = [
		'startup'
	];

	public function startup(CakeEvent $event) {
		$Controller = $event->subject();
		if ($Controller->name == 'Users' && $Controller->request->params['action'] == 'admin_login') {
			$Controller->Security->csrfCheck = false;
		}
	}
}


2. プラグイン管理ページで「DisableLoginSecurity」プラグインを有効化する

3. 任意のサイトに、以下のログインボタンを設置する
<form action="<baserを設置したURL>/admin/users/login" method="post">
<input name="data[User][name]" type="hidden" value="<ログインユーザーID>">
<input name="data[User][password]" type="hidden" value="<ログインユーザーPW>">
<input type="submit" value="login">
</form>


baserのログインページのセキュリティ機能を外し、外部からログインできるようにしています。
NewPulsar > Re: 自動ログイン @ 2018/7/20 15:58
seto 様

ご教授頂いた方法で、仮に動かして自動ログイン出来る事を確認しました。
素晴らしいです、自分の期待していた通りの動きになりました。

色々とご教授頂き、有難うございました。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
24 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 24