Azure Active Directory 中的 URL 重定向

Posted

技术标签:

【中文标题】Azure Active Directory 中的 URL 重定向【英文标题】:Url Redirection in Azure Active Directory 【发布时间】:2019-12-21 10:51:15 【问题描述】:

所以我创建了一个使用 Microsoft 图形 api 的 MVC 应用程序 .net 框架。它使用 Azure 重定向 uri 进行身份验证。我有http://localhost:####,它在本地运行良好。现在我在 IIS 中发布了应用程序,需要更改重定向 URI。 Azure 只接受以 localhost 或 https 开头的内容。我在 IIS 中没有 SSL 证书来执行 https,所以我想让它与 http 一起使用。 singon url和redirect url都是http?

我已经尝试 bit.ly 重定向到 http。我什至在 azure 中注册了新应用程序并提供了一个新的登录 url 并在 webconfig 上进行了更改。但是现在它说您要查找的页面无法显示http动词的无效方法。

【问题讨论】:

Web 应用程序和服务的重定向 URL必须以方案 https 开头。参考这个article。 【参考方案1】:

即使不是,您也可以将用于身份验证的 Azure 重定向 uri 设置为“https://yourdomain.com”。然后在您的应用程序中启动:

if (environment.production) 
      if (location.protocol === 'https:') 
        window.location.href = location.href.replace('https', 'http');
      
    

这适用于我的 Angular SPA 应用程序

【讨论】:

【参考方案2】:

是的。 Azure AD 有Restrictions on redirect URLs。

如果您没有 SSL 证书,最好为 https 域创建自签名证书。

您可以参考之前的帖子:Trust a self signed cert from IIS

【讨论】:

我将自签名证书添加到 azure 门户,但现在错误为“IDX10311:RequireNonce 为 'true'(默认)但 validationContext.Nonce 为空。无法验证随机数。如果你不这样做”不需要检查 nonce,将 OpenIdConnectProtocolValidator.RequireNonce 设置为 'false'。 这应该是另一个问题。此问题及其可能的解决方案已在此线程***.com/questions/39412570/… 中进行了讨论。顺便说一句,您是否修改了 Azure 活动目录中的回复 URL? 感谢您的提示响应,但看起来我可以使重定向 uri 工作的唯一方法是为已发布的应用程序获取合法的 SSL 证书。自分配证书无效。 Azure 会知道 url 不是合法的证书 URL。一旦我用合法的 SSL 证书完成这个过程,我会回来的。 是的,自分配证书用于测试目的。如果应用程序在生产环境中运行,则应由受信任的证书颁发机构签名。了解更多详情:docs.microsoft.com/en-us/azure/app-service/…。 我仍在等待我的系统管理员为我提供证书,截至目前,我在 azure 广告上有 localhost 用于重定向。 @艾伦吴

以上是关于Azure Active Directory 中的 URL 重定向的主要内容,如果未能解决你的问题,请参考以下文章

Azure Active Directory RBAC 不返回承载令牌中的角色

Azure Active Directory B2C 中的按组授权

Azure B2C 来宾(外部 Azure Active Directory)X 成员(联合 Azure Active Directory)

如何从 Azure Active Directory 检索用户信息

访问Azure Active Directory用户和角色

由于现有应用程序,无法删除 Azure Active-Directory