向现有授权添加其他Windows Azure AD委派权限

时间:2015-06-24 11:25:34

标签: ms-office office365 azure-active-directory

我有一个正在制作的Windows Azure AD应用程序,它通过OAuth2对用户进行身份验证。目前,它只请求一个委派权限 - “启用登录并读取用户的配置文件”。我正在为我们的应用程序添加一个新功能,该功能将使用Office 365 API,这显然需要应用程序请求其他委派权限。

我已更新了我们的应用清单,同意我们的应用的新用户同时授予了登录和Office 365委派的权限,并且令牌端点响应scope参数为UserProfile.Read Mail.Read正如所料。但是,对于仅在请求登录委派权限时同意我们的应用程序的现有用户,Windows Azure AD不会在下次登录时提示他们授予其他Office 365委派权限。对于这些用户,令牌端点响应scope参数仍以UserProfile.Read形式出现,即仅登录授权权限。

我知道我可以将?prompt=consent传递给https://login.microsoftonline.com/common/oauth2/authorize,这将强制用户授予所有请求的委托权限,但这是一个大锤的方法,因为它会问每个人,每次,所有我想要抓住这些用户,其中请求和授予的委派权限之间存在差异。它在我试图维护的SSO体验中不会很好。

使用Google OAuth,范围在授权请求中作为查询参数传递,并提示用户同意任何尚未授予的请求范围。对于将成为所有范围的新用户,对于将成为新添加的范围的现有用户,之后不需要额外的同意,因为所有范围都将被授予 - 这正是我尝试使用Windows Azure实现的目标AD。

是否有某种方法强制将应用程序清单中配置的委派权限强制执行,即如果未授予这些委派权限,登录将无法完成?

1 个答案:

答案 0 :(得分:2)

Azure人员正致力于在每个请求中实现传递范围。与此同时,他们给出的指导是,每次请求都不包括prompt=consent。相反,如果您收到未经授权的错误,则可以使用prompt=consent重新请求。