2011-08-05 21 views
4

私は銀行で働いていましたが、イントラネットには非常にクールな機能がありました。いったんコンピュータにログインすると、Apacheを介してPHPにグローバル変数が設定され、それらにはコンピュータにログオンしていたユーザーのIDが含まれていました。今私は新しい仕事に就いています。私はこの仕事がどのように機能しているのか疑問に思っています!このようなことをもう一度やり直したいと思います。ブラウザからユーザーIDを取得する

私はここで働いている:

  • FreeBSDのサーバー、バージョンは私には不明です。
  • Apache 2.2 Webサーバー
  • PHP 5、いくつかのカスタムコンパイルは、さまざまな理由で、私はアップグレードや変更できません。
  • MS AD
  • コンピュータにログオンしているすべてのユーザーは、アクティブディレクトリを使用しています。これらはすべて同じドメインにあります。私が持っていたことは、このようなものだった

:現在ログインしているユーザのユーザ名を印刷し

echo $_SERVER['username'] 

誰かがこれを行うことができるか、説明してもらえますか?

P.S.私のサーバー設定のいずれかが必要なものでない場合は、そう言いましょう。なぜなら、上司に私に自分のものを与えるように依頼する理由があるからです。あなたが認証Apacheを使用することができ

+0

私は、これはシングルサインオンと呼ばれ、一般的にはケルベロスサーバーが関わっていると言えます。 SSOを稼働させることが@ $$の痛みであるという個人的な経験を伝えることもできます。あなたに最高の運があります。 –

+0

[adLDAP](http://adldap.sourceforge.net/)が役に立ちますが、再コンパイルする必要があります。 – Shef

答えて

2

による認証を行うことができますがたくさんありますこれを実現する方法。しかし、それらの多くは、クライアントとサーバーを制御することに依存しています。データの

明白なソースが含まれます:

  • NTLM
  • Client side certificates
  • (暗号化の拡張機能なしの非常に安全ではありません)Identプロトコル
  • 長期的なクッキーを(再び、安全ではありません)
  • HTTP認証方法

しかし、どれもこの値がセッションでどのように現れたか説明していません。これはPHPコード内で実装されていなければなりません。

だからそれはあなたの以前のサイトで実施された方法を知らなくても、私たちはあなたを伝えることはできません。

  • それが安全だったし、正しく行動を考える

を複製する方法

  • を実施していますかあなたのリソースリストは、直接LDAP呼び出しに基づいて認証を実装することは可能ですが、あなたのアプリケーションにユーザー名とパスワードを渡すと、openIdを使用することを強くお勧めします。 vider - MSADをバックエンドとして使用します。

  • +0

    ありがとう、私が探していた情報。 –

    -3

    私が正しく質問を理解していなかったので、私は自分の投稿を編集...

    、あなたがIPのまたはホスト名

    http://httpd.apache.org/docs/2.0/en/howto/auth.html

    +0

    これは私が求めていたものではありません。これは、ユーザーがどこかにログインして、自分のIDをブラウザに手動で渡す必要があることを意味します。私は自動化に全力を尽くしたい。 –

    +0

    次に、apache authまたはmod_auth_ldapのようなものが必要です。 –

    関連する問題