我有一个Windows服务应用程序,该服务需要使用Azure AD对多个服务帐户进行身份验证...每个实例将具有一个不同的服务帐户。 (例如,我在3个不同的服务器上有3个实例,这些服务器具有3个不同的服务帐户-S1,S2,S3)。此服务使用Microsoft Graph API从共享的电子邮件地址(每个实例具有自己的共享电子邮件E1,S1,E2用于S2和E3用于S3)中读取。
[Azure App注册中需要什么类型的权限或设置才能使S1读取E1(并且不能读取其他内容),S2仅用于E2,S3仅用于E3。
我正在考虑在单个租户中注册该应用,并添加3个所有者S1,S2,S3。因此,服务帐户使用user \ pass进行静默身份验证并从共享电子邮件中读取。范围应设置为Mail.Read.Shared。
管理员用户将同意所需的权限...因为没有用户界面。
这是正确的设置吗?
从设计的角度来看,您的想法是正确的。
除了Mail.Read.Shared
,您可能还需要基本的委托权限Mail.ReadBasic
和Mail.Read
来阅读电子邮件。
由于您希望S1读取E1(并且不能读取其他内容),因此应实现Get access on behalf of a user。因此,S1只能访问自己的共享电子邮件。
当然password flow也应该适合这种情况。