web-dev-qa-db-ja.com

イントラネットでクロスドメイン認証を処理する最良の方法

最初に、これがこの質問をするのに有効なボードであるかどうかわかりません-多分それはStackOverflowで尋ねられるべきですか?

ユースケースの概要、達成しようとしていること:

2つの異なるドメインにある2つのサーバー。内部からのみ利用可能(イントラネット)

ユーザーはSharePointにログインし、ボタンをクリックします-api.mydomain.comへのCORS Ajaxリクエストを呼び出します。

問題は、Web APIのどの認証を使用する必要があるかです。ユーザーは2つのログインプロンプトを入力する必要はありません...候補がいくつかあります。

  1. Kerberos-ただし、私の知る限り、エンドユーザーは、サーバーを「信頼済みサイト」として設定する必要があります。これは、Firefox、IE/Chrome、およびChromeでのいくつかのregeditの変更です。おそらく、このような複雑な設定を回避する方法があるかもしれません。エンドユーザー向け?
  2. OAuth2-ActiveDirectoryで使用する方法がわかりませんが
  3. SharePointのクレームベースの認証を使用します-STSからAJAXトークン内に配置できるため、トークンはJSから利用可能になります-セキュリティ上の問題ではありませんか?
  4. カスタム認証(これを絶対に避けたい)
  5. あなたの案?

SharePoint 2013で問題が発生しているため、ADFSを使用できません。

あなたはそれについてどう思いますか?私たちとエンドユーザーに最適なオプションはどれですか?

1
ppatalong

カスタムOAuth2認証プロバイダーを使用しました。

フロー:

  1. ユーザーアクセスSharePoint
  2. SharePointがwebApi/token OAuth2を呼び出して現在のユーザーになりすましている
  3. WebApiがトークンを返す
  4. トークンがユーザーに返され、API呼び出しに使用できるようになりました
  5. / tokenへのSharePoint呼び出しのみが許可されます(SSLのみ)

かなりうまくいきます。

1
ppatalong