あなたが記載されている4つのアプリケーションを持っています。
アイデンティティとアクセス制御のためのIdentityServer4アプリケーション。これは、SSOサービスとSTS(セキュリティトークンサービス) - 権限です。今日の時点で、ASP.NETコア1.1でこれを構築します。もちろんSSOになるには、ユーザーデータベースが必要です。 ASP.NET IDを使用するとうまく動作し、IdentityServerとうまく統合されます。
あなたのWeb APIはASP.NET Core 1.1を実行しています。これは、OAuthの用語では、APIリソースと呼ばれています。このAPIを、APIスコープと呼ばれる個別に安全なセクションに細分することができます。
ASP.NET IDで現在のユーザーデータベースを使用している既存のMVC Webアプリケーション。これは、のクライアントのIdentityServer権限(上記の#1)になります。認証コードフロー(より安全)を使用するか、暗黙またはハイブリッドフローを選択することができます。 ASP.NET MVC WebアプリケーションをIdentityServerインスタンスのクライアントとして設定する方法の例は、公式ドキュメントのhttp://docs.identityserver.io/en/latest/quickstarts/3_interactive_login.html#creating-an-mvc-clientにあります。
基本的に、あなた
(a)は、その後、IdentityServerとクライアントを登録
(b)はauthentication-何かのためIdentityServerを使用することを教えてくれます、クライアントアプリでいくつかのスタートアップコードを追加しますこのように...
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
{
AuthenticationScheme = "oidc",
SignInScheme = "Cookies",
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ClientId = "mvc",
SaveTokens = true
});
あなたが外部IdentityServer-と同様にログインするための内部ユーザデータベースの両方その時点での使用で、あなたは私をログに記録可能性ができましたMVC Webアプリには2つの異なる方法があります。 IdentityServerアプリケーションは、MVC Webアプリケーションの「外部プロバイダ」とみなすことができます。
既存のユーザー名とパスワード(およびロールなど)を新しいIdentityServerインスタンス/データベースに移行しますか? SSOと共有アイデンティティとアプリケーション間のアクセス制御を実現するには、この回答が「はい」になる必要があります。
SSOは、ユーザーがIdentityServerアプリケーションでログインする場合にのみ可能です。しかし、実際にSSOを達成することはないでしょう。デスクトップマシンのブラウザと携帯電話のモバイルアプリで、デバイス間でクッキーやトークンを本当に共有できないからです。
- モバイルクライアント。これは、暗黙のフローを確実に使用する以外は、MVC Webアプリケーションのような別のクライアントになります。再度、クライアントを登録し、アプリケーションをコーディングします。
asp.net MVCアプリケーションの認証にID 2.0を使用するとします。 Googleのような外部のアイデンティティプロバイダですか? Identity Server 4に切り替えた後もそのまま使用しますか? – Ignas
いいえ、すべての認証は内部で、外部プロバイダはありません。私は交換後にそれを使い続ける必要はない –