应用程序登录失败时在 Azure AD 更改答复 URL

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 3089309
症状
假定您生成使用 Azure AD 用户进行身份验证的 web 的多租户应用程序。如果要更改应用程序的答复 URL,这可能会促使已经同意该应用程序的用户登录失败。同意这种 URL 更改后的用户不受影响。
原因
当应用程序开发人员更改通过 Azure 管理门户网站的回复 URL 时,则部署 web 应用程序与新的终结点,以匹配新的回复 URL。Web 应用程序不能再旧的回复 URL 端点到任何请求提供服务。

在以下情形中会出现此问题:
  • Web 应用程序使用 Azure 广告 – 支持的身份验证任何的协议 (连接 OpenID,WS 联合身份验证或者 SAML 2.0)。
  • 在 Azure AD 具有单个回复 URL 配置关联的应用程序对象。
  • 当服务提供商 (web 应用程序) – 启动身份验证的登录请求,web 应用程序不在请求中指定可选的"答复 URL"查询字符串参数。
注意:此查询字符串参数,如下所示为每个支持的协议,不同:

协议可选参数
OpenID 连接redirect_uri
WS 联合身份验证wreply
SAML 2.0AssertionConsumerServiceURL
相反,应用程序依赖于 Azure 广告通过使用从应用程序对象 (如前面的项目符号列表中的第二项) 的配置的回复 URL 身份验证请求未指定答复 URL。

然后,应用程序开发人员进行更改 (通过 Azure 管理门户) 的 web 应用程序配置更改答复 URL。应用程序开发人员还部署了 web 应用程序在新的终结点 (以匹配新的回复 URL) 和不再服务到旧的回复 URL 终结点的任何请求。在这种情况下,已同意该 web 应用程序的所有现有客户现在可能无法登录到 web 应用程序。
解决方案
若要修复此问题,请使用下列方法之一:

  • 在应用程序代码中显式指定的回复 URL。这是推荐的解决方案。应用程序开发人员应更新显式指定的回复 URL (具体取决于使用"原因"一节中所述的协议) 的身份验证请求的代码。
  • 使用 PowerShell 覆盖的回复地址。公司管理员应运行以下的 Azure AD PowerShell cmdlet,用新的答复地址覆盖旧的回复地址:
    1. 连接 MsolService
    2. $r = New MsolServicePrincipalAddresses- <app’s_new_reply_address>-地址"答复"</app’s_new_reply_address>地址
    3. 组-MsolServicePrincipal-AppPrincipalId <app’s_clientId>-地址 $r</app’s_clientId>

属性

文章 ID:3089309 - 上次审阅时间:08/29/2015 02:23:00 - 修订版本: 1.0

Microsoft Azure Active Directory

  • kbexpertiseadvanced kbtshoot kbsurveynew kbmt KB3089309 KbMtzh
反馈