2016-10-26 9 views
0

私はサーバー側のC#アプリケーションで以上の他のユーザーのカレンダーに編集者権限があることを確認しようとしています。どのように他のユーザのカレンダーを編集することができますか?

私が書いているWebアプリケーションでは、ユーザーが別のユーザーに対して「カレンダー編集」アクセス許可を持っている場合、顧客はアプリケーション内で他のユーザーの構成を変更できるようにしたいと考えています。その結果、ユーザーがWebアプリケーションにログインするときに、そのユーザーを対象ユーザーに表示するユーザーを取得する必要があります。

私は「このメールボックスの予定表の編集者権限を持つユーザーの一覧」を取得できるEWSとPowerShellコマンドレットを調べましたが、「このユーザーが編集できる予定表の一覧」は処理できません。ファイルシステムの権利を判断するのと同様の問題だと私は思っています(つまり、アクセス可能なユーザにこの特定のファイルシステムフォルダを尋ねる呼び出しですが、のすべてをの列挙/ファイルシステム内のACLが「このユーザーがアクセスできるすべてのフォルダを私に渡す」と答えます)。

"すべてのメールボックスの既定の予定表のアクセス許可を取得"し、アプリケーション内のユーザーにマップすることができますが、アクセス許可が与えられてからアプリケーションがそのアクセス許可を知るまでに時間がかかることがあります。

私はこのためにEWSとPowerShellを見てきましたが、私はこれらのAPIに制限されていません。アプリケーションはWindows Server 2012以降で動作し、この情報を取得するために必要な権限を割り当てられます(はユーザーとして実行されているのではなく、サービスアカウントです)。しかし、私は API /メソッドにオープンしています。このAPI /メソッドは、大きなメールボックスACL列挙操作よりも速いという条件でこの情報を得ることができます。

PowerShellコマンドまたはEWSメソッドを使用すると、ユーザーがアクセスできるExchange環境内のすべてのメールボックスにあるすべてのフォルダを取得できますか?

編集:答えは私が疑った通りです:いいえ、ありません。唯一のオプションは、メールボックスのアクセス許可を列挙することです。

答えて

1

すなわち、それは/「私にこの特定のファイルシステムのフォルダにアクセスできるユーザーを与える」聞いて1つのコールだが、列挙の操作(私はそれがファイルシステムの権限を決定する同様の問題になると思い作っていますファイルシステム内のすべてのACLを評価して、「このユーザーがアクセスできるすべてのフォルダを私に渡す」と答えます。

それはまさに、ユーザーが別のユーザーのメールボックス内の特定のフォルダへのアクセス権を付与されているかどうかを知るのACLのように、あなたの唯一の方法のないバックリンクが存在しない同じ問題がすべてのターゲットメールボックスを列挙することです(もしOutlookデリゲートを介して許可が与えられました。デリゲートのバックリンクがあるため、別の話です)。一般的に、最も簡単な方法は、予定表フォルダにGet-MailboxFolderPermission https://technet.microsoft.com/en-us/library/dd335061(v=exchg.160).aspxを使用することです。このコマンドレットは、メールボックスAPIのいずれかが必要とする明示的な権限またはEWS偽装を必要とするのではなく、委任されたRBAC権限(より安全な方法)で実行されます。

関連する問題