2016-10-08 53 views
0

我正在开发一个SaaS应用程序,要求外部组织的AD用户将约会同步到Office 365日历事件。Azure Active Directory用户和使用Microsoft Graph的SaaS应用程序Api

管理员用户场景:

  1. 管理员进口所有AD用户到应用程序。
  2. 该应用程序将管理员重定向到Microsoft登录和请求权限。
  3. 管理员可以让应用访问用户的日历。

普通usersScenario:该应用程式

  1. 用户登录。
  2. 用户创建预约并同步到Office 365日历(不询问权限)。

我使用以下端点中的Microsoft Graph API:

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

如果我想给正常用户访问他们的Microsoft数据,做我需要改变租户“共同”他们租户ID?

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

+0

当您说“AD用户”时,是指Azure AD(云)还是Windows Server AD(内部部署)。 –

+0

Azure Active Directory(云) – h3n

回答

1

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

接下来,回答您的其中一个问题:不,您不应该将Authority端点切换到租户特定端点。继续使用common端点,以确保您可以从任何租户身份验证任何用户。

可以通过在验证请求期间使用prompt=admin_consent查询参数明确请求管理员同意。一种方法是让您的应用执行常规登录,然后在用户登录后使用Microsoft Graph API检查用户是否为租户管理员。如果是,则可以重定向它们以重新进行身份验证,但这次使用prompt=admin_consent选项。或者,您可以为应用程序创建一个“注册”流程,从一开始就使用prompt=admin_consent(适当的注意事项是只有租户管理员可以这样做,因为非管理员会从Azure AD中收到他们可能不会理解的错误)。

相关问题