从 Office365 API 检索授权和令牌服务

Retrieving Authorization and Token service from Office365 APIs

我目前正在开发一个应用程序,它将使用我们可以从 Discovery 服务端点检索的 URL 进行身份验证。我们检索这些的当前方法是使用初始登录行为,记录在案 here。我们实际上是在使用重定向 uri 查询 https://api.office.com/discovery/v1.0/me/FirstSignIn?redirect_uri={0}&scope={1}

问题在于,这会将用户带到一个页面,该页面要求他们输入电子邮件,使用令牌和授权服务重定向回我们,然后我们必须使用该服务对他们进行身份验证。有没有什么方法可以绕过这个初始登录,我们强制用户转到一个单独的页面来获取这些端点?

我发现这个端点环顾四周 https://api.office.com/discovery/emailhrd/getfederationprovider?domain=<domain>,但我没有在任何地方看到这个记录。谁能给我指点一些文档?

如果应用程序知道它只支持特定帐户类型,则可以跳过第一个登录端点。 /FirstSignIn 重定向到正确的用户身份验证端点,具体取决于帐户是否为 Microsoft 帐户(...@live.com、...@outlook.com、...@hotmail.com 等)或者如果该帐户是 Microsoft 工作或学校帐户(又名 Office 365 帐户,...@tenant.onmicrosoft.com)。如果应用程序只支持一种类型的账户,不需要消歧,则应用程序可以选择绕过/FirstSignIn,直接进入其支持的账户类型的认证端点。

你应该看看Client Credentials Grant Flow。 如果您这样设置,Office 365 组织的管理员需要一次性登录并授予您在 Azure Active Directory 中设置的权限,之后就无需再登录了。

另请参阅此 link,其中对此进行了详细解释 Building Daemon or Service Apps with Office 365 Mail, Calendar, and Contacts APIs (OAuth2 client credential flow)