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」。これらのメタデータファイルを作成するためのツールはありますか?作成方法についてのアイデアを共有してください。
ありがとう
ルー
私自身の質問に答えてください:
実際には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である必要があります。スラッシュに注意してください!
私は最近、これを行う必要がありました。これまで.NetまたはADFSを使用したことがなく、統合しようとしているサーバー(STS)メタデータURLのみがありました。私は基本的なWindows 10 PCを持っていて、Node.js webappをRPとしてセットアップしようとしていました。これは私がやったことです:
Win 10 PCで、[コントロールパネル]-> [プログラムと機能]-> [Windowsの機能の有効化または無効化]-> [Windows Identity Foundation 3.5を有効にする]に移動しました
インストールされたWindows Identity Foundation SDK 4.0(元の作成者が参照)。
以下を含む基本的なWeb.configファイルを作成しました。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
</system.web>
</configuration>
SDKインストールディレクトリに、FedUtil.exeとFedUtilSampleUserInput.xmlが見つかりました。サンプルファイルには、FedUtil.exeが要求するすべてのパラメーターが説明されており、非常に役立ちました。
管理者としてFedUtil.exeを起動し(エクスプローラーで右クリック)、作成したばかりのWeb.configファイル、webapp URL、サーバー(STS)メタデータURLを「既存のSTS」として提供し、新しいデフォルトの作成を選択します。証明書。
見よ、FederationMetadata.xmlファイルが生成され、Web.configファイルが自動的に更新されました。
次に、更新されたWeb.configファイルの一部のクレームタイプのコメントを解除し、FedUtil.exeを再実行しました。その後、STSから必要な追加のクレームタイプ(たとえば、メール、名前、姓)
FederationMetadata.xmlをSTS管理者に提供しました。
唯一の欠点は、これにはすべてWindowsマシンが必要だったということです... MacまたはLinuxで何をしたのかわかりません
SAML RPメタデータを作成するための samltool.com で利用可能なWebベースのツールがあります。フェデレーションユーティリティ以外のWSフェデレーション用のものは見つかりませんでした...
また、最近サイトを発見しました rcFederation ADをサポートしていますFS/WS-Federation
「依存パーティの信頼」を作成するためのメタデータxmlはADFSフェデレーションメタデータではなく、SP(Saml発行者)のメタデータxmlです。