0

ACS でログインするように構成された SharePoint 2010 サイトがあります。そして、独自の ID プロバイダーを使用するように構成された ACS。また、クレーム対応で、認証に ACS を使用する MVC Web アプリケーションもあります。アイデアは、私が構築したWebサービスを使用して、特定のサービスをsharepointからMVCサイトに公開することです。

アイデアの図は次のとおりです。

私の考えは、MVC サイトにログインすると、その SAML トークン (ID) を使用して SharePoint にログオンできるというものでした (SAML トークンを Web サービスに渡すだけで、サービスはそのトークンを使用して SharePoint にログインしようとします)。 )。署名に同じ証明書を使用するように ACS で Relying Party(MVC サイト、SharePoint) を構成したので、別の領域からのものであってもトークンを受け入れることを望んでいました。しかし、そうではありません。そのため、Web サービスがどのようにして自分のクレームでユーザーを偽装できるのか疑問に思っていました。私は無限の研究を行ってきましたが、これは不可能だと確信しています。本当の問題は、STS 全体を構築して SharePoint にそれとの信頼関係を持たせることなく、SharePoint が MVC サイトで取得したトークンを信頼する方法があるかどうかです。ヘルプやアイデアをいただければ幸いです。

4

1 に答える 1

0

MVC または SharePoint 用に作成されたトークンを信頼している場合、Web サービスはその「領域」の一部であるため、その領域を有効なものとして追加しても問題ありません。オーディエンス URI の検証は、構成またはコードから変更できます。WCFを使用していますか?WCF で WIF を使用していますか?

<audienceUris>
   <add value="your:sharepoint-and-mvc:realm" />
   <add value="http://webservice" />
</audienceUris>

編集: 質問をもう一度読み、あなたが行った説明を読むと、元の ACS トークンにいくつかの変換を行い、独自のキーで再度署名する STS があるため、SharePoint で問題が発生します。元の ACS トークンにアクセスできないことを意味します。ここに 2 つのオプションがあります。

  • サービスを使用する前に独自のトークンを作成します (実装がより簡単な SimpleWebTokens または JsonWebTokens と共有対称キーを使用できます)。
  • ACS または SharePoint キーによって署名された SAML トークンと対象ユーザー URI を信頼するようにサービスを構成します。

これは REST サービスであるため、オプション 1 を使用します。元のトークンを JSON Web トークンに変換し、独自のキーで署名して、トークンを Authorization ヘッダーに添付します。

ここに JsonWebTokens (JWT) http://nuget.org/packages/JWTの実装があります。

SimpleWebTokens http://nuget.org/packages/netfx-Microsoft.IdentityModel.Swtの実装を次に示します。

x509証明書を使用した非対称暗号でもJWTを使用できます(ただし、そのパッケージには実装されていません)

于 2012-09-13T20:02:11.013 に答える