討論區: ヘルプ (Thread #36878)

シングルサインオンについて (2015-06-17 17:36 by akawamoto #76367)

いつもお世話になっております。

2通りのログイン方法が実装可能かどうかについて教えてください。

現在、他のWebアプリからの連携要望(シングルサインオン)があるのですが、
出来れば下記↓のようなログインを実現したいといわれています。

他アプリからの連携の場合はユーザIDのみでログイン
通常のログイン画面からは、ユーザIDとパスワードでのログイン

両方を実現できる方法はありますでしょうか?

ユーザIDのみの自動ログインだけなら、TomcatのRealm設定と、JavaScriptを使って実装できると思うのですが。。。

回覆 #76367×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

Re: シングルサインオンについて (2015-06-18 12:32 by chatrun #76370)

[メッセージ #76367 への返信]
> 2通りのログイン方法が実装可能かどうかについて教えてください。

まず、openGionの認証方法を整理しますと、
1.認証は、Tomcatの機能を使用している。
xx/WEB-INF/web.xml の security-constraint タグの箇所
2.openGion本体は、ユーザーIDがあれば、動作する。
xx/jsp/index.jsp?USERID=XXXXX で、ユーザーIDを指定できます。

本物?のシングルサインオンは、「一度の認証処理によって複数の
コンピュータ上のリソースが利用可能になる認証機能のこと」で、
対応するのは、結構大変なのですが、

問合せの内容は、
A.通常のログインと、Webアプリからの連携で、シングルサインオンを
行ったうえで、ログインIDは同じで、パスワードが異なる。
B.通常のログインは、認証を行い、Webアプリからの連携は、
認証しない。(ただし、ログインIDでの識別は行う)

どちらのイメージでしょうか?

Aは、結構大変で、全く別にシングルサインオンの仕組みを用意して
そのうえで、パスワードを無視(または、仮想的に、ログインID
と同じにする)などの対応が必要になります。

Bは、Webアプリから連携する箇所のみ、Tomcatの認証を外せば、
動作させることができると思います。(引数の指定は必要です。)
ただし、認証を外すアドレスと外さないアドレスは、分ける必要が
ありますので、「Webアプリからの連携」の規模によります。

回覆: #76367

回覆 #76370×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

Re: シングルサインオンについて (2015-06-18 14:42 by akawamoto #76372)

> 1.認証は、Tomcatの機能を使用している。
> xx/WEB-INF/web.xml の security-constraint タグの箇所
はい、Tomcatの認証を使っていて、現在はRealmのFORM認証を設定しています。

> B.通常のログインは、認証を行い、Webアプリからの連携は、
> 認証しない。(ただし、ログインIDでの識別は行う)
> どちらのイメージでしょうか?
Bです!

> Bは、Webアプリから連携する箇所のみ、Tomcatの認証を外せば、
> 動作させることができると思います。(引数の指定は必要です。)
> ただし、認証を外すアドレスと外さないアドレスは、分ける必要が
> ありますので、「Webアプリからの連携」の規模によります。
URLに&を付けてのパラメータ渡しはしたくないので、Index.htmlと同じフォルダではなく、1つ上のフォルダにJSPを配置し、POSTしたIDを受け取ってセッション情報にセットする方法で渡すことを考えています。

まさにBそのままを実現したいのですが、どういった方法で実現するのが良いのでしょうか?
よろしくお願いします。
回覆: #76370

回覆 #76372×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

Re: シングルサインオンについて (2015-06-18 18:04 by chatrun #76373)

[メッセージ #76372 への返信]
> > B.通常のログインは、認証を行い、Webアプリからの連携は、
> > 認証しない。(ただし、ログインIDでの識別は行う)
> > どちらのイメージでしょうか?
> Bです!
>
> URLに&を付けてのパラメータ渡しはしたくないので、Index.htmlと同じフォルダではなく、1つ上のフォルダにJSPを配置し、POSTしたIDを受け取ってセッション情報にセットする方法で渡すことを考えています。
>

たぶん、jspなので、GETとPOSTは、どちらも同じように使えると思います。
先のログインIDも、キーに、"USERID" を指定して、値に、ログインIDを設定して、
POSTすれば、認識されると思います。
一度、認識されれば、ブラウザとTomcatの方で、セッションをキープしてくれる
はずなので、認証なしでアクセスできると思います。

で、まだよくわかっていませんが、Webアプリと連携する jsp のアドレス(連携後に使うアドレスも含む)と、通常画面からログインした後、使用するアドレスが、同じ場合は、認証エリア内に入ってしまい、やはり、ログインダイアログが出てしまうはずです。
全く重複しないなら、先のweb.xmlの設定で行けると思います。
回覆: #76372

回覆 #76373×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

Re: シングルサインオンについて (2015-06-19 10:44 by akawamoto #76375)

> POSTすれば、認識されると思います。
> 一度、認識されれば、ブラウザとTomcatの方で、セッションをキープしてくれる
> はずなので、認証なしでアクセスできると思います。
>
> で、まだよくわかっていませんが、Webアプリと連携する jsp のアドレス(連携後に使うアドレスも含む)と、通常画面からログインした後、使用するアドレスが、同じ場合は、認証エリア内に入ってしまい、やはり、ログインダイアログが出てしまうはずです。
> 全く重複しないなら、先のweb.xmlの設定で行けると思います。
なるほど・・・

ログイン用のプロジェクトを作ってログインしたら、現在のシステムに飛ばすようにして実装してみることにします。
ありがとうございましたm(_ _)m
回覆: #76373

回覆 #76375×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入