【问题标题】:Adding an additional Windows Azure AD delegated permission to an existing grant向现有授权添加额外的 Windows Azure AD 委派权限
【发布时间】:2015-06-25 07:26:36
【问题描述】:

我有一个生产中的 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 实现的广告。

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

【问题讨论】:

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


    【解决方案1】:

    Azure 人员正在努力在每个请求中实现传递范围。同时,他们给出的指导是您不要在每个请求中都包含prompt=consent。相反,如果您收到未经授权的错误,那么您将使用prompt=consent 重新请求。

    【讨论】:

    • 只是为了补充杰森的回答,我完全同意。如果您知道呼叫是您在应用中添加的新功能的一部分,则返回到使用 prompt=consent 再次请求授权。
    • 谢谢两位。这就是我所做的,但最终能够通过初始授权的范围将最适合我的应用程序流程。期待在未来看到对此的支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多