2017-04-13 94 views
0

我試圖讓IdentityServer 4在雙節點ARR設置中運行。我配置了其他雙節點Web應用程序,但IdentityServer不想玩得很好。服務器僅設置爲HTTPS。當我在一個站點中使用它時,一切正常,並且所有請求都是https:// ...但是在ARR設置中,請求的啓動方式如下:身份服務器4與ARR(應用程序請求路由)

https://identityserver.local/.well-known/openid-configuration http:/identityserver.local/connect/authorize? CLIENT_ID = ....

第二請求導致404。當我有它作爲常規的單中心,即第二請求是:

HTTPS:?/identityserver.local/connect/authorize CLIENT_ID = ....

爲什麼在使用ARR運行時,它代替https而不是https?

回答

1

爲這一個兩步驟的溶液: 首先我固定轉發標頭:

services.Configure<ForwardedHeadersOptions>(options => 
{ 
    options.ForwardedHeaders = ForwardedHeaders.XForwardedProto; 
}); 

接下來,配置數據保護,使得加密密鑰由該應用的不同實例共享。

services.AddDataProtection() 
     .SetApplicationName("MyAspNetCoreSample") 
     .PersistKeysToFileSystem(new DirectoryInfo(@"path\to\shared\folder")); 

希望這可以幫助別人。

相關問題