我们想在Azure中创建一个API应用程序(主要目的是联系我们的组织Office 365 Graph端点并发送电子邮件)。但是我们的前端网站并没有使用Azure AD进行用户身份验证..但是我们希望我们的后端APi能够通过以下方式之一发送电子邮件 1)以任何用户身份发送电子邮件 2)代表服务帐户发送电子邮件
我们正在尝试探索可能的选项,并根据目前为止所做的调查,这个(选项1)可以使用admin_consent完成 - 有人可以帮助我们创建此类应用和部署所需的步骤。
另外还有一种方法可以在API执行期间创建一个没有登录屏幕的API应用程序 - 同时使用user_consent?
答案 0 :(得分:0)
选项1
为了让app / daemon以任何用户身份发送电子邮件,它必须具有以任何用户应用程序权限发送邮件。
将Microsoft Graph API的权限授予应用程序,然后通过单击门户中的“授予权限”按钮或通过管理员同意流程来授予权限。
然后,您的API可以使用其客户端凭据进行身份验证,并获取访问令牌以发送电子邮件。
此方法的不好之处应该是显而易见的,应用程序有权在您的组织中以任何人的身份发送电子邮件。
选项2
您也可以为API创建帐户,然后使用资源所有者密码授予流程进行身份验证。然后,您将授予以签名用户身份发送电子邮件的委派权限。
这方面的不好的一面是验证流程。如果帐户的密码过期,则无法从那里重置密码,您必须进行干预以解决问题。
<强>同意强>
如果没有浏览器用户界面,则无法通过同意。