2011-08-09 9 views
1

私は透明なSSOを行うためにJespaを使用するアプリケーションに取り組んでいます。私はNtlmSecurityProviderを使用しています。私のコードでは、ユーザー名を次のように表示します。 "DOMAINNAME \ username"Windowsドメインのユーザー名

<% out.println(request.getRemoteUser()); %> 

版画この:ここではMYDOMAIN \のmyusernameと指定

は私の質問です:

は、それは常にドメイン名ユーザ名で、そのように見えるのでしょうか?それとも、ドメイン内のユーザーアカウントが設定されているかのようなものですか?同様に、別のWindowsドメインに切り替えた場合、ドメインとバックスラッシュのないユーザー名を取得できる可能性がありますか?

ありがとうございます!

答えて

1

私はserverfault.comでこの質問をしました。私はSquillmanから本当に良い答えを得ました。 (ありがとうございます!)ここでは、次のとおりです。

は、「これはおそらくよりJespaの人々のためのサポートの質問である出力は、彼らのAPIの動作に依存している一般的に

、しかし、Windowsのためのベストプラクティスを。

フォーマットが変更されることが心配な場合は、getRemoteUser()の結果を解析する方法を知っているクラス/メソッド/ユーティリティを記述することをお勧めします。必要に応じてその部分をあなたのアプリに返します。それが変わった場合は、あなたのアプリを修正するためにコードを変更するだけです。

私は提案したようにgetRemoteUser()の結果を解析するメソッドを作成しました。これまでのところうまくいきました。

1

これは高度に構成可能です。 「Jespa Operator's Manual」の「NtlmSecurityProviderのプロパティ」セクションのaccount.canonicalFormプロパティを参照してください。あなたはBUSICORP \ sbackusや[email protected]のようなユーザー名を作ることもできますし、sbackusやブラウザが提供したもの(正規化なし)を作ることもできます。

たとえば、getRemoteUserに、ドメイン・セットではなくユーザー名のみを戻す場合は、HttpSecurityServiceプロパティー・ファイルでjespa.account.canonicalForm = 2と設定します。しかし、マルチドメイン環境では、修飾されたアカウント名を使用することが重要です。

関連する問題