Webメールでシングルサインオンのようにログインをスキップするには?
【ご質問】
SSL-VPN機器からWebmailへログイン情報を渡し、都度ログインIDとパスワードを入力せずに済むような運用を検討しています。
ユーザー名やパスワード情報をURLへ付与すれば可能かと思うのですが、この辺りの情報の提供をお願いします。
【回答】
はい、ユーザー名やパスワードを次の通りURLへ付与する事でログインページをスキップできます。
http://WorldClientのURL/WorldClient.dll?user=ログインID&Password=パスワード&View=Main&Frames=Yes
赤字の部分は環境に合わせて書き換えてください。
上記のURLを使用したアクセスは、ログインIDとパスワードがログへ残ってしまう事と、認証情報が流出しやすくなる事から、運用はお勧めしておりません。上記URLに代わる方法を3つご紹介いたします。
以下の内容は正式サポート対象外となります。ご参考までにお読みください。
セッションIDを取得してURLにて使用
以下のURLでSessionIDを取得できます。
http://WorldClientのURL/WorldClient.dll?View=StatusCheck&GetSession=Yes&user=ログインID&Password=パスワード
SessionIDを使ってURLを指定します。
http://WorldClientのURL/WorldClient.dll?Session=SessionID&View=Main&Frames=Yes
認証情報を埋め込んだログインフォーム ① (JavaScript使用)
JavaScriptで認証情報を埋め込んだフォームを用意します。ご利用の際にはSSLを使用してください。以下がサンプルです。
<!DOCTYPE html>
<html>
<head>
<title>WorldClient Logon Method 1</title>
</head>
<body>
<!--
We'll put the form at the bottom of the page, but for now we'll add a
link to WorldClient into a list of links, but the form could be placed
anywhere
-->
<ul>
<li><a href='javascript:document.forms['webmail'].submit();return false;'>Webmail Logon</a></li>
</ul>
<!-- This is just like the WorldClient logon form, only we've pre-populated the data. You will need to change your action to point to the proper URL. It would be best to be using SSL. -->
<form method='post' name='webmail' action='http://WebmailのURL/WorldClient.dll?View=Main'>
<!-- replace the username field's value with that of the username you have from your highly unsecure database/file -->
<input type='hidden' name='User' value='ログインID(メールアドレス)' />
<!-- replace the password field's value with that of the password you have from your highly unsecure database/file -->
<input type='hidden' name='Password' value='パスワード' />
<!-- submit the form with the Logon command, it's the right thing to do -->
<input type='hidden' name='Logon' value='Because it's the right thing to do' />
</form>
</body>
</html>
認証情報を埋め込んだログインフォーム ② (JavaScript未使用)
JavaScriptを使用しない場合のフォームを用意します。CSSの指定が必要です。ご利用の際にはSSLを使用してください。以下がサンプルです。
<!DOCTYPE html>
<html>
<head>
<title>WorldClient Logon Method 2</title>
<style>
*{font-family: Helvetica, Arial, Sans-serif;}
/* style the form to hide it from messing with layout */
.webmail-logon, .webmail-logon input{display: inline;white-space: normal;}
.webmail-logon .logon-as-link
{
border: 0px none;
background:transparent;
color: blue;
text-decoration: underline;
line-height: 1em;
height: 1.25em;
font-size: 1em;
padding: 0px;
margin: 0px;
}
</style>
</head>
<body>
<ul>
<!-- This is just like the WorldClient logon form, only we've pre-populated the data. You will need to change your action to point to the proper URL. It would be best to be using SSL. We've made it one line to help reduce layout issues in older browsers
1) replace the username field's value with that of the username you have from your highly unsecure database/file
2) replace the password field's value with that of the password you have from your highly unsecure database/file
3) You can change the 'link' text by adjusting the value field of the submit element
-->
<li><form class='webmail-logon' method='post' name='webmail' action='http://WebmailのURL/WorldClient.dll?View=Main'>
<input type='hidden' name='User' value='ログインID(メールアドレス)' />
<input type='hidden' name='Password' value='パスワード' />
<input type='submit' class='logon-as-link' name='Logon'value='Webmail' /></form></li>
</ul>
</body>
</html>