さまざまな環境のMVCアプリで適切に機能するADFS2.0インストールがあります。「パッシブ認証」を使用していると思います(私はまだ適切な用語に慣れています)-ユーザーがログインしていない場合にユーザーをadfsプロキシにリダイレクトし、adfsがユーザーをMVCアプリにリダイレクトする場所ですログインしたら。
現在、いくつかのセキュリティで保護されたWebサービスを公開し始めており、この同じ認証システムを利用したいと考えています。ws2007FederationHttpBinding
私の理解では、これを行うためのバインディングとして使用したいと思います。私はWCFのweb.configをすべてセットアップしていると思いますが、今ではFederationMetadata.xml
ファイルを中心に苦労しています。
このファイルを見るentityID="http://localhost/UserServices"
と、証明書など、明らかに変更が必要なものがいくつかあります。それから、私にはそれらが何であるか、そしてそれらを変更する必要があるかどうかがわからないことがいくつかEntityDescriptor ID="_2b510fe8-98b8......
あり<ds:SignatureValue>CZe5mEu19/bDNoZrY8f6C559CJ.......
ます。
さまざまな環境でこのファイルをどのように管理する必要があるかについて、どこで理解を深めることができますか?これらのサービスをホストしている次の環境があり、何らかの方法でデプロイします。
- 個々の開発者ワークステーション(今のところ3倍、後でもっと)
- これらのサービスに対してアプリを作成するが、必ずしもサービスを変更する必要がない人々のための共有開発環境
- QA
- 演出
- 本番環境(証明書/ドメインなどが異なる3つの異なる環境)
そのため、変換を使用してさまざまな環境でweb.configファイルを管理し、特定のトークンを検索/置換するプロセスがかなり合理化されているので、このxmlファイルでも同じことを行いたいと思います。したがって、最終的に私が探しているのはFederationMetadata.xml
、さまざまな環境でこのファイルを管理するときにどのような変更が必要かを理解することだけです。
私の現在のFederationMetadata.base.xmlファイルは以下にあり、これはほぼ正しいと信じています(名前/ロールが必要です)~RootServiceUrlTokenToReplace~
。ここで、などのさまざまなトークンをインテリジェントに置き換える必要があります。
<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="~EntityDescriptorIdTokenToReplace~" entityID="http://~RootServiceUrlTokenToReplace~" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
<ds:Reference URI="#~ReferenceURITokenToReplace~">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<ds:DigestValue>~DigestValueTokenToReplace~</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>~SignatureValueTokenToReplace~</ds:SignatureValue>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>~CertificateTokenToReplace~</X509Certificate>
</X509Data>
</KeyInfo>
</ds:Signature>
<RoleDescriptor xsi:type="fed:ApplicationServiceType" protocolSupportEnumeration="http://schemas.xmlsoap.org/ws/2005/02/trust http://docs.oasis-open.org/ws-sx/ws-trust/200512" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706">
<KeyDescriptor use="encryption">
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data>
<X509Certificate>~CertificateTokenToReplace~</X509Certificate>
</X509Data>
</KeyInfo>
</KeyDescriptor>
<fed:ClaimTypesRequested>
<auth:ClaimType Uri="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />
<auth:ClaimType Uri="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" Optional="true" xmlns:auth="http://docs.oasis-open.org/wsfed/authorization/200706" />
</fed:ClaimTypesRequested>
<fed:TargetScopes>
<EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://~RootServiceUrlTokenToReplace~</Address>
</EndpointReference>
</fed:TargetScopes>
<fed:ApplicationServiceEndpoint>
<EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://~RootServiceUrlTokenToReplace~</Address>
</EndpointReference>
</fed:ApplicationServiceEndpoint>
</RoleDescriptor>
</EntityDescriptor>