配置Azure ACS的最佳方式是什麼?當我在開發結構中本地運行時,我仍然可以進行身份驗證?用於本地和生產的Azure ACS配置
我只想配置一次,並且能夠在本地開發併發布到天藍色,而無需對配置進行更改。我甚至可以開放在本地開發時不使用聯合身份驗證,只要我能以某種方式僞造索賠。
配置Azure ACS的最佳方式是什麼?當我在開發結構中本地運行時,我仍然可以進行身份驗證?用於本地和生產的Azure ACS配置
我只想配置一次,並且能夠在本地開發併發布到天藍色,而無需對配置進行更改。我甚至可以開放在本地開發時不使用聯合身份驗證,只要我能以某種方式僞造索賠。
你可以有Web.Config
和Web.Release.Config
(轉換文件每個版本配置)。 Web.Config適用於您的本地開發,其中您擁有領域,受衆URL指向您的本地地址,即127.0.0.1。 然後,您可以編寫Web.Config
的轉換文件,例如Web.Release.Config
您可以在其中編寫轉換以將上述值替換爲實際的部署URL。我假設您將使用發佈版本部署到Azure。
這是你的web.config.release會怎樣看?
<microsoft.identityModel>
<service>
<audienceUris>
<add value="https://abc.cloudapp.net/" xdt:Transform="Replace" />
</audienceUris>
<serviceCertificate xdt:Transform="Insert">
<certificateReference x509FindType="FindByThumbprint" findValue="AAAAAAAAAAAAAAAAAAAAAAAAAAA" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
<federatedAuthentication>
<wsFederation passiveRedirectEnabled="true" issuer="https://myacs.accesscontrol.windows.net/v2/wsfederation" realm="https://abc.cloudapp.net/" requireHttps="true" xdt:Transform="Replace" />
<cookieHandler requireSsl="true" xdt:Transform="Replace" />
</federatedAuthentication>
</service> </microsoft.identityModel>
最簡單的方法是使用配置轉換爲bhavesh說,雖然自從NET 4.5他發佈的web.config文件已經過時。
您可以在web.config
,您的雲開發配置web.Debug.config
和您的生產配置web.Release.config
您的本地開發配置。
下面是一個例子web.Debug.config(僅相關部分):
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add xdt:Transform="RemoveAll" />
<add value="http://myinstance.cloudapp.net/" xdt:Transform="Insert" />
</audienceUris>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration >
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="https://mynamespace.accesscontrol.windows.net/v2/wsfederation" realm="http://myinstance.cloudapp.net/" reply="http://myinstance.cloudapp.net/" requireHttps="false" xdt:Transform="Replace"/>
</federationConfiguration>
</system.identityModel.services>
現在所有剩下要做的就是配置依賴方在您的ACS門戶網站的每個配置。
實際上,您可以爲所有3種配置配置單個RP,但實現此目的的唯一方法是使用Service Management API以編程方式進行配置,因爲門戶只允許您爲每個依賴方配置一個Realm/Return URL值。
請注意,如果您決定執行此操作,則必須在web.config(reply
屬性)中設置返回URL,否則ACS將始終使用第一個配置的返回URL覆蓋它(您在門戶)。
感謝您的回答。我已經嘗試過這個解決方案,但我想知道是否有其他方法可以解決這個問題。我應該在帖子中提到這一點。 – Zoltan
這就是這樣。這不是一個「解決方法」。這是解決當地生產難題的方法。 – astaykov
@astaykov如何使用本地STS?我試着四處搜尋,但還沒有找到關於它的很多信息。 – Zoltan