2017-02-06 12 views
0

Я хочу использовать учетную запись службы, чтобы читать и обновлять календари пользователей O365. Все пользователи, к которым я хочу получить доступ, поделились своим календарем с моей учетной записью.Используйте учетную запись службы для чтения/обновления календарей пользователей O365.

У меня есть приложение, которое использует AAD v2.0 MSAL для auth. Проблема в том, что я хочу использовать свои учетные данные для обновления/чтения календарей этих пользователей, но я не хочу входить в эту учетную запись, я хочу, чтобы учетные данные сохранялись и использовались при вызове конечной точки API.

Примером этого с помощью Exchange, веб-сервисы для отправки электронной почты из сохраненного пользователя:

public Office365MailSender() 
     { 
      _credentials = new NetworkCredential(
       ConfigurationManager.AppSettings["ida:0365MailAddress"], 
       ConfigurationManager.AppSettings["ida:0365MailPassword"]); 
     } 

     public void Send(EmailDto email) 
     { 
      var service = new ExchangeService 
      { 
       Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"), 
       Credentials = new OAuthCredentials(_credentials) 
      }; 

      var message = new EmailMessage(service); 

      message.ToRecipients.Add(email.To); 
      message.Subject = email.Subject; 
      message.Body = email.Body; 
      message.Body.BodyType = BodyType.HTML; 

      message.SendAndSaveCopy(); 
     } 

Теперь я хочу сделать то же самое для чтения/обновления календаря пользователей, используя МГЮА. Можно ли это сделать? Если нет, есть ли другой способ сделать это, например, с помощью сертификата?

В Адал, например, у нас есть такие:

public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential); 
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential); 
+0

Я не знаю, как это сделать с графическим API. Это возможно с сертификатами Exchange Web Services и X.509. Вам необходимо добавить разрешение на выдачу EWS для приложения и войти в систему с использованием сертификата, прежде чем Office 365 EWS позволит вам олицетворять пользователей для чтения/записи своих календарей. Вы по-прежнему приобретаете токен для своего приложения с ADAL, но используете ClientAssertionCertificate для идентификации приложения. Затем добавьте возвращаемый токен к последующим вызовам EWS. – RasmusW

+0

Спасибо, но интересно, возможно ли это без ADAL, т. Е. С MSAL :) –

ответ

0

библиотека аутентификации Microsoft (МСДТ) does't поддерживают владелец ресурса Пароль Credential поток в настоящее время. Вы можете проверить это на UserCredential класс, который не предоставляет свойство пароля.

И на основании теста приложение, которое регистрируется для конечной точки Azure AD V2.0, также не поддерживает этот поток. Мы получим исключение, как показано ниже, если используется поток для получения маркера доступа:

enter image description here

И если вы хотите Azure AD V2.0 конечной точки, чтобы поддержать этот поток можно представить обратную связь от here. И если у вас есть представление об библиотеке проверки подлинности Microsoft, вы можете обсудить ее с here.

 Смежные вопросы

  • Нет связанных вопросов^_^