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