2016-04-13 7 views
2

MicrosoftがActiveDirectory GraphClientライブラリを使用してAzure ADにアクセスしています。Azure Graph API - ユーザーがO365メールボックスに完全にアクセスできることを確認します。

私の問題は、次のとおりです。

たIUserオブジェクトは、別のユーザーのOffice 365のメールボックスへのフルアクセス権を持っている場合、私は知られているに取得したいのですが。

void bool HasFullAccess(IActiveDirectoryClient client, IUser currentUser, IUser otherUser) 
{ 
    if (currentUser.ObjectId == otherUser.ObjectId) 
    { 
     return true; 
    } 

    //TODO: HOW-TO CHECK IF 'currentUser' HAS FULL ACCESS 
    //  TO MAILBOX OF 'otherUser' 
} 

答えて

0

本当に良い質問、あなたはあなたのシナリオに応じてfull_access_as_userfull_access_as_appの両方を見ていることにしたいです。ユーザーのアクセストークンを取得したら、Outlook REST APIに記載されているいくつかのAPI呼び出しを調べる必要があります。

0

ユーザーが別のユーザーのメールボックスにアクセスできるかどうかを確認するには2つの方法があります。

  1. EWSマネージAPI

    あなたが別のユーザーのメールボックスにアクセスする権限を持っている場合は、経由してデータを得ることができます:あなたは、ターゲットユーザーのメールボックスにアクセスする権限がありません.IF

    コードの上
    ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
    
        service.Credentials = new WebCredentials("[email protected]", "PASSWORD"); 
    
        service.TraceEnabled = true; 
        service.TraceFlags = TraceFlags.All; 
    
        service.AutodiscoverUrl("[email protected]", RedirectionUrlValidationCallback); 
    
        var userMailbox = new Mailbox("[email protected]"); 
        var folderId = new FolderId(WellKnownFolderName.Inbox, userMailbox); 
    
        var itemView = new ItemView(20); // page size 
        var userItems = service.FindItems(folderId, itemView); 
    
        foreach (var item in userItems) 
        { 
         // do something with item (nb: it might not be a message) 
        } 
    

    は、ユーザーの資格情報を必要とし、コードの上にプロセスへ」のようなエラーを投げますsは正しいプロパティを取得できませんでした "。

  2. PowerShellの

    は、Exchange内の他のメールボックスにアクセスする権限の種類を持っているユーザー/メールボックスをチェックすることができますは、Get-MailboxPermissionコマンドレットを実行することにより:

    Get-Mailbox <Mailbox> | Get-MailboxPermission -User <AD User> 
    

    をあなたはそれをチェックインするPowerShellを呼び出すことができますあなたの申請 。

関連する問題