1

Exchange Web サービス エンドポイントを使用して、NodeJS アプリのログインを会社の Active Directory に統合しています。このようにして、提供された資格情報 (ユーザー名とパスワード) が Active Directory ユーザーの資格情報と一致するかどうかを検証できます。

これまでのところ、ユーザー名とパスワードのペアが有効かどうかを正常に検証できました。私が解決策を見つけることができなかったのは、ユーザー名を指定して電子メール アドレスを取得することです。

NodeJS アプリは会社のネットワークの外部でホストされるため、LDAP を使用して Active Directory を直接クエリすることはできません。利用可能なオプションは、Exchange Web サービス (2010) エンドポイントを使用することです。

現在、ResolveNames 操作を行っていますhttp://msdn.microsoft.com/en-us/library/exchange/aa563518(v=exchg.150).aspx

問題は、ユーザー名を値として Resolvenames を実行すると、UnresolvedEntry複数の解決策が返されることです。たとえば、ユーザー名がjohnあり、ディレクトリに他のジョンも存在する場合、Resolvenamesクエリはそれらも返します。

ユーザー名に EWS を使用して電子メール アドレスを明確に取得する方法を探しています (これは、EWS SOAP サービスのクエリに使用される有効な資格情報に対応します)。

4

1 に答える 1

1

ログインしているユーザーの電子メールアドレスを与える直接的な方法に出くわしたことはありませんが、PostItem を作成し、その PostItem.getFrom() メソッドで電子メールアドレスを取得することで簡単なハックを行うことができます。

    PostItem postItem = new PostItem( service );
    postItem.setBody( MessageBody.getMessageBodyFromText("Test for email-address " ) );
    postItem.save();

    postItem = PostItem.bind( service , postItem.getId() ); 
    System.out.println( postItem.getFrom() );

    postItem.delete( DeleteMode.HardDelete );
于 2013-12-17T09:55:45.033 に答える