6

さまざまな環境の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.......ます。

さまざまな環境でこのファイルをどのように管理する必要があるかについて、どこで理解を深めることができますか?これらのサービスをホストしている次の環境があり、何らかの方法でデプロイします。

  1. 個々の開発者ワークステーション(今のところ3倍、後でもっと)
  2. これらのサービスに対してアプリを作成するが、必ずしもサービスを変更する必要がない人々のための共有開発環境
  3. QA
  4. 演出
  5. 本番環境(証明書/ドメインなどが異なる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>
4

2 に答える 2

1

WIFベースのアプリケーションFederationMetadata.xmlは、それが提供するクレームベースのWebサービスとは関係ありません。

(を指すURL)FederationMetadata.xmlは、AD FSによって使用され、証明書利用者の信頼で使用される情報を自動的に更新します。AD FSは、たとえば、このURLを定期的に照会し、それに応じて証明書利用者の信頼情報を更新できます。

Webサービスに関する情報(クレームベースまたはその他)、つまりそのメタデータは、WSDLドキュメントとして公開されます。WCFベースのサービスでは、これは多くの場合次のようなURLです:http://myhost.example.com/appName/serviceName.svc?wsdl。そのWSDLドキュメントは多くの場合、物理ファイルとして存在しませんが、WCFによって自動的に生成されます。

于 2011-10-06T19:40:49.457 に答える
0

私はこのブログ投稿で私の質問に対する部分的な答えを見つけました。これが私のすべての質問に答えるかどうかを発見するために、私はそれをさらに調査しています。見つけたばかりです。どうやら、これを別の環境に再デプロイするときに、EntityID(URLを含む)を変更する必要がありますが、SignatureValueにはそのURLのハッシュが含まれているため(とりわけ?)、URLを変更することにより、SignatureValueを無効にする必要があります。再生されます。どうやらこのFederationMetadataGeneratorはこれを手伝ってくれるようです。

于 2011-10-08T16:11:07.817 に答える