서비스 계정을 사용하여 O365 사용자의 일정을 읽고 업데이트하고 싶습니다. 액세스하려는 모든 사용자가 자신의 캘린더를 내 계정에 공유했습니다.서비스 계정을 사용하여 O365 사용자의 일정을 읽거나 업데이트하십시오.
나는 AAD v2.0 MSAL for auth를 사용하는 앱을 가지고있다. 문제는이 사용자의 캘린더를 업데이트/읽기 위해 내 자격 증명을 사용하려고하지만이 계정으로 로그인하지 않으려 고합니다. 내 API 끝점을 호출 할 때 자격 증명을 저장하고 사용하고 싶습니다.
저장된 사용자로부터 이메일을 보내 교환 웹 서비스를 사용하여이의 예 :
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();
}
는 지금은 MSAL를 사용하여 읽기/업데이트 사용자 달력에 대한 동일한 작업을 수행합니다. 이 작업을 수행 할 수 있습니까? 그렇지 않다면 인증서를 사용하는 것과 같은 다른 방법이 있습니까?
이
public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);
나는 그래프 API로 그 일을하는 것에 대해 모른다. Exchange 웹 서비스 및 X.509 인증서로 가능합니다. Office 365 EWS가 사용자를 가장하여 자신의 일정을 읽고 쓸 수있게하려면 응용 프로그램에 대한 EWS 가장 인증을 추가하고 인증서를 사용하여 로그온해야합니다. ADAL을 사용하여 앱 토큰을 얻지 만 ClientAssertionCertificate를 사용하여 응용 프로그램을 식별하십시오. 그런 다음 반환 된 토큰을 후속 EWS 호출에 추가합니다. – RasmusW
고마워요.하지만 ADAL없이 가능하다면, MSAL이 가능한지 궁금합니다 :) –