2

ユーザーが Viz を登録するためのさまざまなメソッドを使用する API を開発しています。Facebook、Twitter、Google、および独自のメンバーシップ システム (ASP.NET Identity を使用して構築)。

私たちのプラットフォームを使用しようとする多くの大規模な顧客がいて、OAuth プロバイダーとしてそれらと統合することを許可するように私たちに要求してきました。これにより、ユーザーはシステムに対して認証され、外部アカウントとしてシステムにリンクされるようになります。私たちのシステム内の別の「Facebook」タイプのプロバイダーになります。

これが単一の顧客である場合は、OpenIdConnect を使用してシステムにセットアップするだけで済みます。使用する client_id とメタデータ URL が提供され、これらのユーザーをシステムにリンクすることができます。

私の質問は、それぞれが独自の OpenIdConnect client_id と Metadata を持つ複数のそのような顧客に対して、どのようにこれを行うのでしょうか? Web API で app.UseOpenIdConnectAuthentication 設定の複数のインスタンスを使用できますか?

クレームから tenant_id を取得して統合する MultiTenant Windows Azure AD のサンプルをいくつか見てきましたが、この場合、Windows Azure AD を実際に使用することはできません。

誰かが私の実装戦略を理解するのを手伝ってくれませんか?

どんな助けでも大歓迎です。

アヌプ

4

1 に答える 1

0

あなたの「大口顧客」の数が限られているという前提で、ここに私が提案するものがあります。これらの顧客はそれぞれ、ログインするための独自のランディング ページを取得します。これはほとんどの場合理にかなっていて、大きな顧客の x ボタンが表示されたログインが表示されます。

それが機能する場合は、owin-middleware github プロジェクト ( https://github.com/owin-middleware/OwinOAuthProviders ) を参照してください。

私は追加の oauth プロバイダー (Azure Active Directory の oauth2) を非常に迅速に作成することができましたが、これらの大口顧客のそれぞれは、oauth の実装方法に何らかのニュアンスを持っている可能性があります。そのため、顧客ごとにカスタム プロバイダーを作成すると、config を使用して簡単にテナント、クライアント ID、およびシークレットを分離できます。

于 2014-08-25T14:57:34.697 に答える