2013-04-01 5 views
2

Azure ACS를 구성하여 개발 패브릭에서 로컬로 실행할 때 여전히 인증 할 수 있도록하는 가장 좋은 방법은 무엇입니까?로컬 및 프로덕션을위한 Azure ACS 구성

구성을 변경하지 않고도 한 번 구성하여 로컬로 개발하고 푸른 색으로 게시하고 싶을뿐입니다. 필자가 어떻게 든 주장을 제기 할 수있는 한 로컬로 개발할 때 연합 인증을 사용하지 않을 수도 있습니다.

답변

4

Web.ConfigWeb.Release.Config (빌드 구성 당 변환 파일)을 가질 수 있습니다. Web.Config는 로컬 개발을위한 영역입니다. 잠재 고객 URL은 로컬 주소 (예 : 127.0.0.1)를 가리 킵니다. 그러면 Web.Config에 대한 변환 파일을 작성할 수 있습니다. Web.Release.Config 위의 값을 실제 배포 URL로 바꾸려면 변환을 작성하십시오. 하늘에 배포하기 위해 릴리스 빌드를 사용한다고 가정합니다.

이것은 당신의 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

이것은 방법입니다. 그리고 그것은 "work-around"가 아닙니다. 이것은 당신이 지역 생산 딜레마를 해결하는 방법입니다. – astaykov

+0

@astaykov 로컬 STS 사용은 어떻습니까? 나는 주변을 검색해 보았으나 그것에 대한 많은 정보를 찾지 못했다. – Zoltan

2

가장 쉬운 방법은 bhavesh 말했듯이 그가 게시의 web.config가 NET 4.5 이후 오래된되지만, 설정 변환을 사용하는 것입니다.

로컬 개발 구성을 web.config, 클라우드 개발 구성을 web.Debug.config, 생산 구성을 web.Release.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 포털의 각 구성의 신뢰 당사자를 구성하는 것입니다 :

여기에 예를 들어 web.Debug.config (만 관련 부분)입니다.

실제로 모든 세 가지 구성에 대해 단일 RP를 구성 할 수 있지만이를 구현할 수있는 유일한 방법은 서비스 관리 API를 프로그래밍 방식으로 사용하는 것입니다. 포털에서는 신뢰 당사자 당 하나의 영역/반환 URL 값만 구성 할 수 있기 때문입니다.

이렇게하기로 결정한 경우 web.config (reply 속성)에 반환 URL을 설정해야합니다. 그렇지 않으면 ACS가 항상 첫 번째 구성된 반환 URL (사용자가 볼 수있는 URL)로 덮어 씁니다. 문).

관련 문제