Mat*_*han 3 c# azure azure-active-directory azure-web-app-service
我正在尝试在我的应用程序中使用 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"
Run Code Online (Sandbox Code Playgroud)
在应用程序注册中,我添加了回复 URL,它是来自 appservice 的应用程序 URL,我还添加了
https://xxxxx.me/yyyyyBackend/signin-oidc
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用所以我现在有点困惑
我必须添加另一个回复 URL 吗?
* 编辑 *
使用 fiddler 并在应用程序尝试进行身份验证时查看回调 URL 后,发现它发送以下重定向 URL
https://xxx.azurewebsites.net/.auth/login/aad/callback
Run Code Online (Sandbox Code Playgroud)
我没有在我的项目中指定 /.auth/login/aad/callback ,如果我在 VS 中搜索整个项目,该字符串不会出现在任何地方,所以我完全不知道它为什么发送该重定向 URL?它永远不会工作,因为我的代码中没有任何地方
将该 URL 添加到我在 appservice 中的回复 URL 后,我在部署时收到以下错误消息
You do not have permission to view this directory or page.
Run Code Online (Sandbox Code Playgroud)
根据您的描述,我假设您使用 OpenID Connect 中间件从 AAD 租户登录用户,这里是将 Azure AD 集成到 ASP.NET Core Web 应用程序的详细教程。为了在本地运行,您可以为您的 AAD 应用添加以下回复 url:
http(s)://localhost:{port}/signin-oidc
Run Code Online (Sandbox Code Playgroud)
当部署到 azure web 应用程序时,您可能还需要添加以下 URL,正如 Wayne Yang - MSFT 评论的那样:
https://{your-webapp-name}.azurewebsites.net/signin-oidc
Run Code Online (Sandbox Code Playgroud)
使用 fiddler 并在应用程序尝试进行身份验证时查看回调 URL 后,发现它发送以下重定向 URL
根据您的更新,您还可以在 Azure 应用服务中启用内置身份验证和授权,通过在 MVC 应用程序中编写最少或不编写代码来帮助您登录用户和访问数据。对于您的情况,由于您的应用程序中使用了 OpenID Connect 中间件进行身份验证,因此您需要禁用 App Service 身份验证,否则可能会遇到意外错误。
此外,为了对详细错误进行故障排除,您可以在 Azure 应用服务中为 Web 应用启用诊断日志记录。
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |