c# - 我的 AAD 身份验证回复网址有什么问题吗?

标签 c# azure azure-web-app-service azure-active-directory

我正在尝试在我的应用程序中使用 AAD 身份验证,当我在 VS 本地运行它时它工作正常并且可以登录,但是当我将其发布到 azure 应用程序服务并尝试访问该应用程序时,我收到错误消息:回复 URL 不匹配。

这是我的 appsettings.json 部分

 "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "xxxxx.me",
    "TenantId": "xxxxx",
    "ClientId": "xxxx",
    "CallbackPath": "/signin-oidc",
    "ClientSecret": "xxxxx",
    "AppIDURL": "https://xxxxx.me/yyyyyBackend",
    "ConfigView": "MVC"

在应用程序注册中,我添加了回复 URL,它是来自应用程序服务的应用程序 URL,我还添加了

https://xxxxx.me/yyyyyBackend/signin-oidc

但两者都不起作用,所以我现在有点困惑

我还需要添加另一个回复 URL 吗?

* 编辑*

使用 fiddler 并在应用程序尝试进​​行身份验证时查看回调 URL 后,发现它发送了以下重定向 URL

https://xxx.azurewebsites.net/.auth/login/aad/callback

在我的项目中没有指定/.auth/login/aad/callback ,如果我在 VS 中搜索整个项目,该字符串不会出现在任何地方,所以我完全不知道为什么它会发送该字符串重定向网址?它永远不会工作,因为我的代码中没有任何地方

将该 URL 添加到应用程序服务中的回复 URL 后,我在部署时收到以下错误消息

You do not have permission to view this directory or page.

最佳答案

根据您的描述,我假设您正在使用OpenID Connect中间件从AAD租户登录用户,这里是详细教程Integrating Azure AD into an ASP.NET Core web app 。要在本地运行,您可以为 AAD 应用程序添加以下回复网址:

http(s)://localhost:{port}/signin-oidc

部署到 Azure Web 应用程序时,您可能还需要添加以下 URL,如 Wayne Yang - MSFT 评论的那样:

https://{your-webapp-name}.azurewebsites.net/signin-oidc

After using fiddler and also looking at the callback URL when the applictions tries to auth it turns out that it sends the following redirect URL

https://xxx.azurewebsites.net/.auth/login/aad/callback

根据您的更新,您还启用内置 Authentication and authorization in Azure App Service它可以帮助您通过在 MVC 应用程序中编写最少的代码或不编写代码来登录用户并访问数据。对于您的情况,由于您的应用程序中使用了OpenID Connect中间件进行身份验证,因此需要禁用应用服务身份验证,否则可能会遇到意外错误。

此外,为了排除详细错误,您可以 Enable diagnostics logging for web apps in Azure App Service .

关于c# - 我的 AAD 身份验证回复网址有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50483483/

相关文章:

Azure 自动化 - 续订 RunAsAccount 证书

Azure AD 企业应用程序 - 回复 URL?

azure - 如何修复 'renew' Azure网站生产槽?

azure - Azure 应用服务上的 ActiveDirectoryMembershipProvider : Access Denied

c# - 在 C# 的方法链中选择两个不同方法之一

c# - 查询 TreeNodeCollection

c# - 在 C# 中调度定时器

json - 使用 ARM 模板为容器部署 Web 应用程序

Azure Bicep - 无法设置 ipSecurityRestrictions

c# - Linux 上的 ClientWebSocket 抛出 AuthenticationException (SSL)