使用服务帐户 read/update 个 O365 用户的日历
Use a service account to read/update calendars of O365 users
我想使用服务帐户读取和更新 O365 用户的日历。我想要访问的所有用户都与我的帐户共享了他们的日历。
我有一个应用程序,它使用 AAD v2.0 MSAL 进行身份验证。问题是我想将我的凭据用于 update/read 这些用户的日历,但我不想使用此帐户登录,我希望在调用我的 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();
}
现在我想使用 MSAL 为 read/update 用户日历做同样的事情。
这可以做到吗?如果没有,是否有其他方法可以做到这一点,比如使用证书?
例如在 ADAL 中,我们有这些:
public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);
Microsoft 身份验证库 (MSAL) 目前不支持资源所有者密码凭据流程。您可以通过 UserCredential 查看
class 不提供密码 属性。
并且根据测试,注册Azure AD V2.0端点的应用程序也不支持此流程。如果使用流程获取访问令牌,我们将得到如下异常:
如果您希望 Azure AD V2.0 终结点支持此流程,您可以提交来自 here. And if you have any idea about the Microsoft authentication library, you can discuss from here 的反馈。
我想使用服务帐户读取和更新 O365 用户的日历。我想要访问的所有用户都与我的帐户共享了他们的日历。
我有一个应用程序,它使用 AAD v2.0 MSAL 进行身份验证。问题是我想将我的凭据用于 update/read 这些用户的日历,但我不想使用此帐户登录,我希望在调用我的 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();
}
现在我想使用 MSAL 为 read/update 用户日历做同样的事情。 这可以做到吗?如果没有,是否有其他方法可以做到这一点,比如使用证书?
例如在 ADAL 中,我们有这些:
public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);
Microsoft 身份验证库 (MSAL) 目前不支持资源所有者密码凭据流程。您可以通过 UserCredential 查看 class 不提供密码 属性。
并且根据测试,注册Azure AD V2.0端点的应用程序也不支持此流程。如果使用流程获取访问令牌,我们将得到如下异常:
如果您希望 Azure AD V2.0 终结点支持此流程,您可以提交来自 here. And if you have any idea about the Microsoft authentication library, you can discuss from here 的反馈。