web-dev-qa-db-ja.com

ADFS 2.0の「証明書利用者信頼」および「クレームプロバイダー信頼」のフェデレーションメタデータXMLを作成する方法

Webアプリの1つがADFS 2.0サーバーに接続して、資格情報トークンを取得し、それに基づいてユーザーロールを確認したいと考えています。 ADFSサーバー管理者は、フェデレーションメタデータXMLファイルを提供して、証明書利用者の信頼を作成できるように依頼しました。私はグーグルで、URLを使用してADFSサーバーのフェデレーションメタデータXMLをダウンロードする方法を見つけます-https://[adfs server name]/ federationmetadata/2007-06/federationmetadata.xmlしかし、「Relying Party Trust」を作成するためのfederationメタデータXMLを作成するためのガイドが見つかりませんでした。 「Claims Provider Trusts」。これらのメタデータファイルを作成するためのツールはありますか?作成方法についてのアイデアを共有してください。

ありがとう

ルー

私自身の質問に答えてください:

http:/でWindowsIdentityFoundation-SDK-4.0Federation Utilityツールが見つかりました/www.Microsoft.com/en-ca/download/details.aspx?id=4451 が実行します。

21
Yadong

実際にはURLは

https://server/federationmetadata/2007-06/federationmetadata.xml

私が知っているツールはありません。

Microsoft.IdentityModel.Protocols.WSFederation.Metadata クラスを使用するか、 フェデレーションメタデータを動的に生成する を参照できます。

Thinktecture.IdentityServer.v2 で「Thinktecture.IdentityServer.v2/src/Libraries/Thinktecture.IdentityServer.Protocols/FederationMetadata」をご覧ください。

または、アプリケーションがWIFを使用する場合、メタデータディレクトリにあります。

更新:

WIFでは、トークンを暗号化する場合を除き、証明書は必要ありません。トークンとアプリに署名する必要があるので、ADFS側にとってはそれ以上です。確認するには公開鍵が必要です。

例:

<?xml version="1.0" encoding="utf-8"?>
<EntityDescriptor ID="_5b6cd05c-a5e3-470d-a2fc-6c6f66633d1b" entityID="http://localhost/app/" xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
    <RoleDescriptor xsi:type="fed:ApplicationServiceType" xmlns:fed="http://docs.oasis-open.org/wsfed/federation/200706" protocolSupportEnumeration="http://docs.oasis-open.org/wsfed/federation/200706" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <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://localhost/app/</Address>
            </EndpointReference>
        </fed:TargetScopes>
        <fed:PassiveRequestorEndpoint>
            <EndpointReference xmlns="http://www.w3.org/2005/08/addressing">
                <Address>http://localhost/app/</Address>
            </EndpointReference>
        </fed:PassiveRequestorEndpoint>
    </RoleDescriptor>
</EntityDescriptor>

localhost\app \はアプリのURLである必要があります。スラッシュに注意してください!

30
nzpcmad

私は最近、これを行う必要がありました。これまで.NetまたはADFSを使用したことがなく、統合しようとしているサーバー(STS)メタデータURLのみがありました。私は基本的なWindows 10 PCを持っていて、Node.js webappをRPとしてセットアップしようとしていました。これは私がやったことです:

  1. Win 10 PCで、[コントロールパネル]-> [プログラムと機能]-> [Windowsの機能の有効化または無効化]-> [Windows Identity Foundation 3.5を有効にする]に移動しました

  2. インストールされたWindows Identity Foundation SDK 4.0(元の作成者が参照)。

  3. 以下を含む基本的なWeb.configファイルを作成しました。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.web>
    
      </system.web>
    </configuration>
    
  4. SDKインストールディレクトリに、FedUtil.exeとFedUtilSampleUserInput.xmlが見つかりました。サンプルファイルには、FedUtil.exeが要求するすべてのパラメーターが説明されており、非常に役立ちました。

  5. 管理者としてFedUtil.exeを起動し(エクスプローラーで右クリック)、作成したばかりのWeb.configファイル、webapp URL、サーバー(STS)メタデータURLを「既存のSTS」として提供し、新しいデフォルトの作成を選択します。証明書。

  6. 見よ、FederationMetadata.xmlファイルが生成され、Web.configファイルが自動的に更新されました。

  7. 次に、更新されたWeb.configファイルの一部のクレームタイプのコメントを解除し、FedUtil.exeを再実行しました。その後、STSから必要な追加のクレームタイプ(たとえば、メール、名前、姓)

  8. FederationMetadata.xmlをSTS管理者に提供しました。

唯一の欠点は、これにはすべてWindowsマシンが必要だったということです... MacまたはLinuxで何をしたのかわかりません

12
Richard G

SAML RPメタデータを作成するための samltool.com で利用可能なWebベースのツールがあります。フェデレーションユーティリティ以外のWSフェデレーション用のものは見つかりませんでした...

また、最近サイトを発見しました rcFederation ADをサポートしていますFS/WS-Federation

3
Dscoduc

「依存パーティの信頼」を作成するためのメタデータxmlはADFSフェデレーションメタデータではなく、SP(Saml発行者)のメタデータxmlです。

0
AfjLee