4

ログインしたユーザーがメールを表示できるプラグインを自分の Web サイトに作成しています。私が開発している電子メール サーバーは Zimbra です。これまでのところ、PHP の imap_open 関数を使用して、ユーザーのメールを正常に取得して表示することができました。

imap_open($server, $email, $password)

ユーザーが Web サイトの電子メール リンクをクリックすると、Zimbra Web クライアントに移動します。ただし、ユーザーはログイン資格情報をもう一度入力する必要があります。ブラウザの Cookie 情報を確認したところ、ユーザーがログインすると Zimbra が Cookie ZM_AUTH_TOKENを設定することに気付きました。Zimbra はこの Cookie を使用して、ユーザーが既にログインしているかどうかを検出していると思います。この再ログインの追加手順。オープンソースのソリューションがあれば、それについても知りたいです。

4

2 に答える 2

0

これは解決策の半分です。申し訳ありませんが、Zimbra でプログラミングしたことはありませんが、php プロジェクト全体でシングル サインオンを何度か実装しました。

あなたのドメインと Zimbra ウェブサーバーのドメインは同じですか? そうであれば、お互いの Cookie を確認して操作できます。ログインを処理し、Cookie を設定する zimbra コードを探してみてください。次に、小さな Web サービス Web ページを作成し、そのコードを呼び出して Cookie トークンを返す zimbra サーバーに配置します。Web サイトは、ユーザーがログインしたときに舞台裏で zimbra に curl を実行し、Cookie のトークン コンテンツを取得し、適切な Cookie を設定して Zimbra にログインできるようにします。プラグイン Web サイトだけが知っているパスワードで Web サービス Web ページを保護します。

それらが同じドメインでない場合でも、それを行うことができます。ただし、サーバーで curl を使用してこれを行う代わりに、クライアントでフレームまたは JavaScript を使用する必要があります。また、ログイン Web サービスを保護する単純なパスワードは機能しません。これは、ブラウザによってアクセスされ、誰もがパスワードを見ることができるためです。事前定義されたシークレットを使用してメール アドレスをハッシュする (両方のサーバーで同じであると仮定) など、パスワードをより安全にする必要があります。

于 2013-03-12T04:26:21.680 に答える