私はIdentityServer MVC walkthrough in the documentationを使用しています。パート2でMVCアプリケーションから別のAPIを呼び出すまでは素晴らしいです。私のよう IDX10803: Unable to create to obtain configuration from: 'http://localhost:44300/identity/.well-known/openid-configuration'.
callapi/clientcredentialsを呼び出すときにIdentityServer MVCウォークスルーでブラウザがハングアップする
:ここでは、ブラウザは、最終的にタスクをキャンセルエラーでタイムアウトし、VSのデバッガが内部例外とapp.UseIdentityServerBearerTokenAuthentication(...)
でのAPIのスタートアップクラスの無効演算例外をスローするまで/ callApi/ClientCredentialsへの呼び出しでハングすべてが今までのウォークスルーですごくうまくいっていたと言いました。ディスカバリ文書は、ブラウザからそのアドレスから問題なく取得できます(SSLエラーなし - サイト証明書は信頼されています)。
これはhereと似ていますが、この構成では、identityserverとアクセストークンの検証ミドルウェアが別々のプロセス(iis expressとmy accountの両方で実行されているため)で異なるためです。とにかくDelayLoadMetadata
を設定しようとしましたが、ブラウザはタスクキャンセル例外を返し、Visual Studioは例外をスローしません。
ログを追加しても問題は見られませんでした。つまり、MVCクライアントがアクセストークンを取得していることを示しています。
また、すべてのアプリケーションとSSLポートを「実際の」ホスト名と証明書を使用するように再設定したので、Fiddler経由ですべてを見ることができました。それはウォークスルー全体(そして前のものも)にはうまくいきましたが、この時点でまだまだ立ち往生しています。私は、発見のドキュメントを照会するAPIアプリケーションを参照して、それは決して応答を取得します。
私には何が欠けていますか?
単純なコンソールアプリケーションを作成し、ディスカバリエンドポイントに対してpingを実行し、それをmvcクライアントを実行しているサーバで実行するとします。何が起こるのですか?同じ? –
SSL検証を無効にすると、何が起こりますか? 両方のアプリケーションで、global.asaxまたはstartup.csに入れてください。 ServicePointManager。ServerCertificateValidationCallback = delegate {trueを返します。 }; –
まだコンソールアプリケーションを試していませんが、mvcクライアントがapiの応答を待っている間に、ブラウザからディスカバリドキュメントを取得できます。 SSL検証に関して、私は過去に信頼されていないエラーを受け取りました(そしてそれらを修正しました)。 –