我正在構建一個使用Azure Active Directory身份驗證的MVC應用程序。當我在本地開發時,我希望能夠登錄以進行測試/開發。而應用程序的網址就像http://localhost:43400
。這也在AD應用中編碼爲Sign-On Url
和Reply Url
。使用Azure Active Directory - 一個應用程序在本地登錄併發布時
當我將同一個應用程序部署到服務器時,應用程序url被更改 - 變成類似myappname.azurewebsites.net
的東西,我無法使用相同的AD應用程序登錄。我能做的最好的辦法是完成登錄過程,但是AD將我重定向回localhost:43400
這是錯誤的。
Startup.Auth.cs
有PostLogoutRedirectUri
屬性,我給了應用程序,但它沒有任何區別。
任何方式使本地應用程序和部署的應用程序使用相同的Azure AD?
我可以用不同的網址和密鑰做2個AD申請,並在部署時重寫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()
{
.....
}
});
查看完整的代碼清單here。
而在Azure的AD應用我想這兩個地址作爲回覆地址在同一時間:
但廣告只用了一個地址重定向,即使客戶端指定匹配一個重定向的記錄。
您不能在該Azure AD中創建2個獨立的應用程序嗎? –
我可以 - 這就是我問題的最後部分所說的。有沒有更好的辦法? – trailmax
對不起......沒有看過那部分!你可以做的另一件事是在同一個應用程序中爲兩個環境提供重定向URI。我試過的是在我的應用程序中使用同一個環境的多個重定向URI(一個用於註冊,另一個用於登錄),但是您可以嘗試一下。 –