セットアップと概要

新しいIdentityServerプロジェクトを開始するには、基本的に2つの方法があります。:

  • ゼロから始めます
  • Visual StudioでASP.NET IDテンプレートを使い始める

「ゼロから始めます」から始めれば、いくつかのヘルパーとメモリ内のストアが提供されるので、最初から永続性について心配する必要はありません。

ASP.NET Identityを使い始めると、簡単に統合することができます。

クイックスタートは、さまざまな一般的なIdentityServerシナリオのためのステップバイステップの指示を提供します。彼らは絶対的な基本から始まり、より複雑になります - あなたがそれらを順番に行うことが推奨されます。

すべてのクイックスタートには参照ソリューションがあります。このコード は、quickstartsフォルダの IdentityServer4.Samples リポジトリにあります。

基本設定

スクリーンショットにはVisual Studioが表示されます。 - これは必須条件ではありません。

Creating the quickstart IdentityServer

まず、新しいASP.NET coreプロジェクトを作成します。

../_images/0_new_web_project.png

「Empty」オプションを選択します。

../_images/0_empty_web.png

次に、 IdentityServer4 nuget パッケージを追加します。:

../_images/0_nuget.png

別の方法として、パッケージマネージャコンソールを使用して、次のコマンドを実行して依存関係を追加することもできます。:

"Install-Package IdentityServer4"

注釈

IdentityServerビルド番号1.xターゲットASP.NETコア1.1、およびアイデンティティサーバービルド番号2.xはASP.NETコア2.0をターゲットとしています。

IdentityServerは、通常のパターンを使用してASP.NETコアホストにサービスを設定し、追加します。 ConfigureServices 必要なサービス構成され、DIシステムに加え。では Configure ミドルウェアHTTPパイプラインに追加されます。

Startup.cs ファイルを次のように変更します。:

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddDeveloperSigningCredential();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseIdentityServer();
    }
}

AddIdentityServer DIにIdentityServerサービスを登録します。また、実行時状態のインメモリ・ストアも登録します。これは開発シナリオに役立ちます。実動シナリオでは、データベースまたはキャッシュのような永続ストアまたは共有ストアが必要です。詳細については、 EntityFramework のクイックスタートを参照してください。

AddDeveloperSigningCredential拡張子は、署名トークンのための一時的なキーマテリアルを作成します。これはやり直すのにも役立つかもしれませんが、実動シナリオのためのいくつかの永続的なキーマテリアルに置き換える必要があります。詳細については、cryptography docs のドキュメントを参照してください。

注釈

IdentityServerはまだ起動する準備ができていません。以下のクイックスタートで必要なサービスを追加します。

ホスティングの変更

既定では、Visual StudioはIIS Expressを使用してWebプロジェクトをホストします。コンソールにリアルタイムのログ出力を見ることができないことを除いて、これはまったく問題ありません。

IdentityServerはロギングを大量に使用しますが、UIの「表示可能な」エラーメッセージまたはクライアントに返されるエラーメッセージは意図的に曖昧です。

コンソールホストでIdentityServerを実行することをお勧めします。これは、Visual Studioで起動プロファイルを切り替えることで実行できます。また、IdentityServerを起動するたびにブラウザを起動する必要はありません。これをオフにすることもできます。:

../_images/0_launch_profile.png

さらに、これらのクイックスタートの一貫したURLでIdentityServerを実行すると便利です。また、上記の起動プロファイルダイアログでこのURLを設定し、使用する必要があります http://localhost:5000/ 。上のスクリーンショットでは、このURLが設定されていることがわかります。

注釈

IIS Expressと自己ホスティングに同じポートを設定することをお勧めします。この方法で、クライアントの設定を変更することなく、2つの間で切り替えることができます。

起動時にコンソールホストを選択するには、Visual Studioの起動メニューでコンソールホストを選択する必要があります。:

../_images/0_choose_launch.png

クイックスタートの実行方法

前述のとおり、すべてのクイックスタートには参照ソリューションがあります。このコード は、quickstartsフォルダの IdentityServer4.Samples レポで見つけることができ ます。

クイックスタートソリューションの個々の部分を実行する最も簡単な方法は、起動モードを「現在の選択」に設定することです。ソリューションを右クリックし、[Startup Projectsを設定]を選択します。:

../_images/0_startup_mode.png

通常、まずIdentityServerを起動してから、APIを起動してから、クライアントを起動します。実際にデバッグしたい場合は、デバッガでのみ実行してください。それ以外の場合は、プロジェクトを実行するにはCtrl + F5を使用するのが最善の方法です。