2017-10-16 2 views
2

編集:SSLオフロードを行うように設定さセットアップのIdentity Server 4リバースプロキシ

  1. nginxのリバースプロキシ:より詳細な説明

    我々は次のセットアップを持っています。すべての内部 の通信はHTTPを経由します。リダイレクトの設定は このようなものです:

    proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Original-For $proxy_add_x_forwarded_for; proxy_set_header X-Original-Proto $scheme; proxy_cache_bypass $http_upgrade;

  2. IS4は

    FALSEに設定されているクライアント側のRequireHttpsMetadataでapp.UseIdentityServer

    var fordwardedHeaderOptions = new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }; fordwardedHeaderOptions.KnownNetworks.Clear(); fordwardedHeaderOptions.KnownProxies.Clear(); app.UseForwardedHeaders(fordwardedHeaderOptions);

  3. 前に、次のセットアップを持っています

  4. IS4側では、すべてのクライアントが「リダイレクト」のHTTPSアドレスを持つように設定されています「Uris」と「PostLogoutRedirectUris」を選択します。クライアント側IdentityServerAuthenticationOptionsで

  5. は、次のように構成されています

    new IdentityServerAuthenticationOptions { Authority = "https://[OAUTH_ADDRESS]", ApiName = "[API_NAME]", ApiSecret = "[API_SECRET]", RequireHttpsMetadata = false }

実際に何が起こるかである私たちは、登録IS4内のクライアントのいずれかを訪問しようと要求がリダイレクトされているとき私たちは "Unauthorized client"というメッセージ画面を持っています。さらに、リダイレクトされたリクエストのクエリ文字列を調べた後、戻りURLはHTTPSではなくHTTPであることがわかります。

お知らせください。

+0

NGINXなどのHTTPSフロントエンドの場合、NGINXでSSL/TLSの「終了」をオフにするときに、IS4にHTTPを必要としません。セキュリティに影響を与えずに不要な複雑さとパフォーマンスの低下を避けるために、バックエンド用のSSLオフロードを行うことはよく知られています。 MS Azureは、同様のアーキテクトの概念を適用します。詳細はこちら:https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction?tabs=aspnetcore2x#why-use-a-reverse-proxy-server –

答えて

0

Identity Serverの検出エンドポイントのデフォルトの動作は、エンドポイントに対して行われた要求から (Http対Https)方式を使用することです。

IDサーバーはHTTPを使用してヒットしているため(リバースプロキシの背後にあるため)、HTTPが使用されます。

あなたは、Identity Serverの最新バージョンがHTTPSにベースURLを強制することができます起源オプションが含まれhttp://[OAUTH_ADDRESS]/.well-known/openid-configuration

に移動して、自分のためにこれを見ることができます。

+0

バージョン1.5.2を使用しています。 "PublicOrigin"プロパティはありません。おそらく、> 2というバージョンを参照していると思います。これは、.NET Core 2.0が必要なものです。 私たちは現在次のようにしています: services.AddIdentityServer(options => { options。IssuerUri = "https:// [OAUTH_ADDRESS]"; }) しかし、明らかに動作しません。 – Treach

+0

これはv2でのみ追加されました。私は現在、.net core 2にすべてをアップデートしています。大きな問題がある場合はお知らせします。これまであなたを止めているものは何ですか? –

関連する問題