WebApiSecurity の Thinktecture.IdentityModel 4.0 サンプルを使用しています。ADFS サーバーを使用するように AdfsSamlClient を変更しました。を使用して ADFS サーバーから SAML トークンを取得できます
var channel = factory.CreateChannel();
var token = channel.Issue(rst) as GenericXmlSecurityToken;
次に、サービス呼び出しを試みます
var client = new HttpClient { BaseAddress = _baseAddress };
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("AdfsSaml", saml);
var response = client.GetAsync("identity").Result;
そして、401 - Not Authorized コールを受けます。
これをデバッグする方法がわかりません。Microsoft.IdentityModel のトレースがありますが、情報レベルのトレースのみで、エラーや警告はなく、デバッグに使用できるものはありません。
サービス トレースの興味深い部分:
1. 説明 OnEndRequest は IdentityProvider '/WebHost/api/identity' へのリダイレクトです 2. 説明 CreateSignInRequest BaseUri https://[ADFS...]/adfs/ls/ は wsignin1.0 wtrealm https://[ワークステーション...]/WebHost/ wctx rm=0&id=パッシブ&ru=%2fWebHost%2fapi%2fidentity 3. 説明 IdentityProvider にリダイレクトしています: 'https://[ADFS...]/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2f[WorkStation...]%2fWebHost%2f&wctx=rm%3d0% 26id%3dpassive%26ru%3d%252fWebHost%252fapi%252fidentity&wct=2013-09-30T17%3a35%3a04Z'
洞察をありがとう。