2017-10-25 15 views
0

他のサードパーティのWebアプリケーションと統合する必要があるWebアプリケーションを開発します。 MainAppとThirdPartyAppとしましょう。 当社と第三者のアプリケーション所有企業との間には信頼関係があります。つまり、互いに知り合い、信頼し合っています。両方のアプリは同じクライアントによって管理されます。 両方のアプリケーションには、独自のデータベースとログインメカニズムがあります。 両方のアプリケーションが異なるサーバー上でホストされています。2つのWebアプリケーション間の信頼

お互いを呼び出すことができるようにするには両方のアプリが必要です(ウェブページと残りのAPI)。 両方のアプリケーション間のすべての通信は、ユーザーとのやりとりなしにシームレスでなければなりません。 一度ユーザーがあるアプリケーションにログインすると、他のアプリケーションにアクセスするために別のログインを促すべきではありません。 他のアプリケーションに対して要求が行われると、それ自身のデータベース内のユーザーにマップできる必要があります。 したがって、呼び出し元のアプリケーションに代わって要求が行われるのではなく、呼び出し元のアプリケーションに現在ログインしているユーザーに対して要求が行われます。 お手伝いできる場合は、両方のアプリケーションで同じUserCodeを使用することに同意しました。

質問2つのアプリケーション間でこの種の信頼を実装するベストプラクティスは何ですか? このシナリオに適合するOAuthグラントフローはありますか?

+0

oauth grant flowの部分についてはわからないが、SAMLは基本的にあなたが探しているものだと思う:https://en.wikipedia.org/wiki/SAML_2.0#Example_of_SAML_Assertion – Harry

+0

1 webApiから別の?なぜあなたは、他のAPIからのリクエストに対して各APIでユーザーを作成しないのですか? – Nikolaus

答えて

0

オンラインでのシングルサインオンの例があります。そのような例の1つ: https://www.codeproject.com/Articles/1140228/Implementation-of-Single-Sign-On-SSO-in-ASP-NET-MV

このアプローチでは、両方のアプリケーションで共通の構成を使用することで、探しているものを達成できます。

<machineKey validationKey="E4451576F51E0562D91A1748DF7AB3027FEF3C2CCAC46D756C833E1AF20C7BAEFFACF97C7081ADA4648918E0B56BF27D1699A6EB2D9B6967A562CAD14767F163" 
    decryptionKey="6159C46C9E288028ED26F5A65CED7317A83CB3485DE8C592" 
    validation="HMACSHA256" decryption="AES" /> 

は明らかにそれはフォーム認証が必要とされる言うまでもない:要件の1つは、configに同じマシンキー(記事の例)を持つことです。ユーザーが同じドメインにいる場合、潜在的にwindows/Forms Active Directoryを使用できますか?

+0

Webアプリケーションが同じドメインにない –

関連する問題