2013-04-01 21 views
2

配置Azure ACS的最佳方式是什麼?當我在開發結構中本地運行時,我仍然可以進行身份​​驗證?用於本地和生產的Azure ACS配置

我只想配置一次,並且能夠在本地開發併發布到天藍色,而無需對配置進行更改。我甚至可以開放在本地開發時不使用聯合身份驗證,只要我能以某種方式僞造索賠。

回答

4

你可以有Web.ConfigWeb.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> 
+0

感謝您的回答。我已經嘗試過這個解決方案,但我想知道是否有其他方法可以解決這個問題。我應該在帖子中提到這一點。 – Zoltan

+0

這就是這樣。這不是一個「解決方法」。這是解決當地生產難題的方法。 – astaykov

+0

@astaykov如何使用本地STS?我試着四處搜尋,但還沒有找到關於它的很多信息。 – Zoltan

2

最簡單的方法是使用配置轉換爲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覆蓋它(您在門戶)。