我正在努力找出如何限制 Azure 应用程序注册调用 Microsoft Graph API(例如发送电子邮件)的权限。在这种情况下,电子邮件必须在无人值守的情况下(没有用户在场)由应用程序发送。
要调用 Microsoft Graph API,必须获得全局应用程序管理员的整个组织的同意。这通常是一个巨大的要求,要求管理员同意应用程序能够代表整个组织中的任何用户发送电子邮件!
有没有办法设置应用程序注册,以便能够通过应用程序仅向特定电子邮件地址发送电子邮件?例如,是否可以允许应用程序以 [email protected] 的形式发送电子邮件(无人值守,没有用户),但不像组织中的任何其他用户?
换句话说,我们如何设置应用程序注册,以便仅作为特定用户(即服务帐户)通过 Microsoft Graph API 发送电子邮件,而不需要授予应用程序代表任何用户发送电子邮件的权限在整个组织中?这可能吗?
最佳答案
目前无法通过在线门户进行操作,但您可以通过 PowerShell 进行操作。
• 创建群组
- 转到 Portal.office365.com 并连接管理员帐户
- 转到https://admin.exchange.microsoft.com/#/groups然后单击选项卡[启用邮件的安全性]
- 点击[添加群组]
- 选择[启用邮件的安全性],然后点击“下一步”
- 设置名称并单击“下一步”
- 设置群组名称并选择[批准],意思是(需要所有者批准才能加入群组)
- 然后下一步,然后创建。
• 将电子邮件添加到群组
- 转到https://admin.exchange.microsoft.com/#/groups然后单击选项卡[启用邮件的安全性]
- 点击群组并添加您想要允许 API 访问的电子邮件
• PowerShell
- 运行 PowerShell
- 运行:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- 运行:Install-Module PowerShellGet -Force
- 运行:Install-Module -Name ExchangeOnlineManagement -Force
- 运行:Get-Module ExchangeOnlineManagement
- 运行:Connect-ExchangeOnline -UserPrincipalName {ADMIN_EMAIL_ADDRESS_HERE}
- 在弹出窗口中以管理员身份登录
- 运行:New-ApplicationAccessPolicy -AppId {APPLICATION_ID_HERE} -PolicyScopeGroupId {GROUP_EMAIL_ADDRESS_HERE} -AccessRight RestrictAccess -Description“您的描述在此。”
• 测试
- 在同一个 PowerShell 中..
- 运行:Test-ApplicationAccessPolicy -Identity {AN_EMAIL_ADDRESS_HERE} -AppId {APPLICATION_ID_HERE}
- 查看 AccessCheckResult,应授予或拒绝
关于azure - 如何限制 Azure 应用程序注册的 Microsoft Graph 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64958009/