次のシナリオがあります。
- Sharepoint 2010 とクレーム ベース認証 Web アプリケーション。
- ThinkTecture IdentityServer に対するクレーム プロバイダーの信頼を構成した ADFS 2.0。
- ADFS 2.0 を証明書利用者として構成した ThinkTecture IdentityServer。
- Sharepoint 2010 には、ADFS 2.0 を指すように構成された SPTrustedIdentityTokenIssuer があります。
Sharepoint にログインしているときに、ID プロバイダーを選択すると、ADFS 2.0 ホーム領域ページにリダイレクトされます。次に、ThinkTecture IdentityServer にリダイレクトされます。次に、IdentityServer からの資格情報でログに記録され、ADFS にリダイレクトされてから、Sharepoint にリダイレクトされます。問題は、sharepoint がエラー メッセージを表示することです。SharePoint からログ レコードを追加しています。
ログイン プロバイダーで認証されます。リクエスト セキュリティ トークンを検証しています。
信頼されたログイン プロバイダー 'SAML2 プロバイダー' は、構成された入力 ID クレーム タイプ 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress' を送信していません
SPSecurityTokenService.Issue() が失敗しました: System.ServiceModel.FaultException: 信頼されたログイン プロバイダーは、このファームで受け入れられるトークンを提供しませんでした。
Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo.ValidateTrustedLoginRequest() で
アクセスが拒否されました: 認証が必要です。
Identity Server から ADFS に返されたトークンには emailaddress クレームが含まれていることがわかりましたが、ADFS から SP に返されたトークンには含まれていません。すべてのクレームに対してパススルーする電子メール アドレスをサポートするように ADFS を構成しているため (ID サーバーのクレーム プロバイダー信頼で)、これは奇妙です。別の場所で adfs をセットアップする必要がありますか? 私はadfsの初心者です。
私が達成したいのは、ADFS を介して要求を IdentityProvider (この場合は ThinkTecture IdentityServer) に転送し、IdentityProvider からトークンを取得することです。ThinkTecture IdentityServer は、実際の環境の私のテスト環境にのみあり、Oracle Identity Federation に置き換えられます。
ターゲットの問題は、Sharepoint 2010 を Oracle Identity Federation と統合することです。しかし問題は、Sharepoint が、OIF が排他的なエンドポイント バインディングとして提供する SAML 2 プロトコルをサポートしていないことです。そのため、一方の側では SAML 1.1 に基づく Sharepoint と、もう一方の側では SAML 2 に基づく OIF と通信する ADFS (somethinkg のようなプロキシとして) でハッキングしようとしています。
これは、IdP メタデータからの次の抜粋です。
<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">...
したがって、WS-Federation を使用するオプションはありません。
これが必要な動作を達成するための良い方法であるかどうか、アドバイスをいただければ幸いです。
ありがとう