2017-02-02 15 views
3

以下のシナリオを考えます。あなたはasp.net webapiでAPIを実装するアプリケーションを持っています。.net 4.5.1上で実行されているWebApiアプリケーションで、.netコアで動作するIdentity Server 4を使用することはできますか?

インフラストラクチャで使用する新しいIdentity Server 4を設定しています。 IDサーバーで作業するには、apiが必要です。

IdentityServer 3の場合は、IdentityServer3.AccessTokenValidationを使用します。

あなたのAPIを使用すると、IdentityServer4.AccessTokenValidation

を使用する.NETコア上にあった。しかし、あなたのAPIがいなくてもowin、古いスタイルのasp.net WEBAPIを使用し、あなたのアイデンティティ・サーバーは、.NETのコア基づいていることを与えられた場合、あなたが持っていますそれを一緒に働かせるオプションはありますか?

答えて

6

はいこれは問題ありません。 IdentityServer3とIdentityServer4は、同じプロトコルに準拠した実装に過ぎません。それらのTokenValidationミドルウェアにも同じことが適用されます。

IdentityServer4.AccessTokenValidationを使用してIdentityServer3 WebApiプロジェクトからのトークンを検証するAspNetCore APIを使用できます。逆に、IdentityServer3.AccessTokenValidationを使用してIdentityServer4 AspNetCoreプロジェクトからのトークンを検証するAsp.Net 4.x WebApiを持つことができます。実際には、プロバイダが仕様どおりにOpenIDConnectを実装している限り、あらゆる言語/フレームワークで構築できるAPIに対して、ほとんどのOpenIDConnectプロバイダを使用することができます。

+0

ありがとうございます。あなたはそれが「理論的に」あるべきか、それを試してそれが効いていると言っていますか?少しでも実用的な詳細が役立ちます。どのようなライブラリを使用するか、参照トークン(自己完結型トークンとは対照的に)がIdentity Serverの互換性のないバージョンなどで有効になるかどうかを確認する方法などの仕様は、多くの実装の詳細、リフレッシュトークンはエンコードされています - 実装固有のものです。 –

+0

クライアントアプリケーションでASP.NETコアが使用されている場合は、IdentityServer4.AccessTokenValidationを使用します。クライアントアプリケーションがASP.NET 4.xを使用する場合は、IdentityServer3.AccessTokenValidationを使用します。どちらもIdentityServer 3または4と同じ方法で話します。非互換性はありません。これをテストするレポがあります:https://github.com/IdentityServer/CrossVersionIntegrationTests –

+0

@ScottBrady、これはとても役に立ちます。ありがとうございました!私はそれを試みます。 –

関連する問題