首页 文章

使用Microsoft Graph Api的Azure Active Directory用户和SaaS应用程序

提问于
浏览
0

我正在开发一个SaaS应用程序,该应用程序需要外部组织的AD用户将约会同步到Office 365日历事件 .

管理员用户场景:

  • Admin将所有AD用户导入应用程序 .

  • 该应用程序将管理员重定向到Microsoft登录和请求权限 .

  • Admin允许该应用访问用户的日历 .

普通用户场景:

  • 用户登录应用程序 .

  • 用户创建约会并同步到Office 365日历(无需请求权限) .

我在Microsoft Graph API中使用以下 endpoints :

Authority = "https://login.microsoftonline.com/common/oauth2/authorize"
Resource = "https://graph.microsoft.com/"

如果我想让普通用户访问他们的Microsoft数据,我是否需要将租户“常用”更改为他们的租户ID?

我的另一个问题是管理员同意如何根据我的方案工作?

1 回答

  • 1

    首先,我建议不要将所有用户导入您的应用 . 最好只在他们登录时以“及时”的方式配置您实际需要的用户 . 如果您的应用程序具有列出租户中其他用户(例如“人员选择器”)有用的场景,那么您可以按需使用Microsoft Graph API .

    接下来,回答您的一个问题:不,您不应将 Authority endpoints 切换到特定于租户的 endpoints . 继续使用 common endpoints ,确保您可以验证来自任何租户的任何用户 .

    通过在身份验证请求期间使用 prompt=admin_consent 查询参数,可以明确请求管理员同意 . 一种方法是让您的应用程序执行常规登录,然后,一旦用户登录,使用Microsoft Graph API检查用户是否是租户管理员 . 如果是,您可以重定向它们以重新进行身份验证,但这次使用 prompt=admin_consent 选项 . 或者,您可以为您的应用程序提供一个"sign-up"流程,该流程从一开始就使用 prompt=admin_consent (相应的说明只有租户管理员可以这样做,因为非管理员将从Azure AD收到他们可能不理解的错误) .

相关问题