tra*_*max 7 c# asp.net oauth azure azure-active-directory
我正在使用Azure Active Directory身份验证构建MVC应用程序.当我在本地开发时,我希望能够登录进行测试/开发.应用程序网址就像http://localhost:43400.这也被编码在AD应用Sign-On Url和Reply Url.
当我将相同的应用程序部署到服务器时,应用程序URL已更改 - 变得类似myappname.azurewebsites.net,我无法使用相同的AD应用程序登录.我能管理的最好的办法就是通过登录过程,然后AD将我重定向回到localhost:43400错误状态.
有一些PostLogoutRedirectUri属性Startup.Auth.cs,我给应用程序,但它没有任何区别.
有没有使用相同Azure AD的本地应用程序和已部署应用程序的方法?
我可以使用不同的URL和密钥执行2个AD Applica,并web.config在部署中重写值.但这听起来不是最好的解决方案.还有什么我能做的吗?
UPD
这是我所指的位Startup.Auth.cs:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = Authority,
PostLogoutRedirectUri = postLogoutRedirectUri, // <-- this is coming from web.config, different in dev and prod
Notifications = new OpenIdConnectAuthenticationNotifications()
{
.....
}
});
Run Code Online (Sandbox Code Playgroud)
请在此处查看完整代码.
在Azure AD应用程序中,我同时尝试将这两个地址作为回复URL:

但AD只使用其中一个地址进行重定向,即使客户端指定了与其中一个记录匹配的重定向.
小智 9
您可以将多个重定向uri添加到您的应用程序,这就是该属性作为列表实现的原因!您只需确保指定在运行时使用的URI.您可以通过多种方式执行此操作 - 您可以在中间件初始化时指定返回URI,也可以添加将在登录消息中注入重定向URI的动态代码.有关后一种方法的示例,请参阅https://github.com/AzureADSamples/WebApp-MultiTenant-OpenIdConnect-DotNet/blob/master/TodoListWebApp/App_Start/Startup.Auth.cs中的 RedirectToIdentityProvider.
| 归档时间: |
|
| 查看次数: |
3983 次 |
| 最近记录: |