問題タブ [thinktecture-ident-model]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1774 参照

asp.net - 自分のコンテキストがありません

Thinktecture.IdentityModelResourceAuthorizeの属性を使用しようとしていますが、owinコンテキストがないため、すべてが停止します。

認証マネージャーをセットアップするowinスタートアップクラスがあります

そして、それが検出され、呼び出されることを知っています。しかし、後で、から次のコードをヒットするIdentityModelと、null ポインター例外が発生します。

MS_OwinContext私がステップスルーしたところ、リクエストにプロパティまたはプロパティがないため、GetOwinContext() が null を返すことが原因であることがわかりMS_OwinEnvironmentました。

私は何が欠けていますか?

アップデート:

利用可能なプロパティがあることがわかりましたowin.environmentが、それはリクエストではなく、`HttpContextWrapper の一部です。

System.Web.Http.WebHost.HttpControllerHandler周りを検索すると、 をに変換する必要があるように見えるコードが内部に見つかりましowin.environmentMS_OwinEnvironmentが、どうやら、私の場合、そのコードは決して呼び出されません...

更新 2:

mvc コントローラー内では、コンテキストが利用可能です。ただし、webapi コントローラーにはありません。

0 投票する
0 に答える
152 参照

cookies - Thinktecture IdentityModel トークンが拒否されました

私の Durandal SPA アプリは、BASIC 認証を実行してセッション トークンを取得し、それをヘッダーに提示して Web API コントローラー メソッドにアクセスします。これはうまくいきます。

認証が成功すると、access_token を localStorage にキャッシュするので、ブラウザを閉じたり更新したりした場合にセッションを保持するために、ローカル ストレージから再取得できます。トークンは再取得されますが、Unauthorized メッセージでサーバーによって拒否されます。

この質問は、OP が私がやろうとしていることを正常に実行したということから始まります。したがって、それは確かに可能ですが、彼が示すコードは、Cookie マッピングを実行しようとした (失敗した) サンプルであり、私の性質を推測することはできません。そこからの問題。

この質問に対する答えの1つは言う

幸いなことに、WIF には [リプレイ攻撃] を軽減する方法があります。構成することにより:

実際、開発ワークステーションに WIF をインストールしていますが、この設定をどこから探し始めればよいかわかりません。HDD を検索すると、17 個の System.IdentityModel 関連の DLL に「tokenReplayDetection」が見つかりましたが、構成ファイルには見つかりませんでした。

これが実際に問題だと思う人はいますか? もしそうなら、それはどこに住んでいますか? その他のご感想もありがたく頂戴いたしました。

0 投票する
1 に答える
115 参照

wif - 認証 - ユーザー ID を検索するためのログイン電子メール アドレスを提供します

API でトークンに署名するためのエンドポイントを提供するために、Thinktecture AuthenticationConfiguration を使用しています。

また、CredentialsService を使用してユーザーを認証します。

上記は機能し、本番環境では確かに使用されていませんが、true を返すと、ユーザー名のクレームを含むトークンを取得します。

私のシナリオでは、決して変更できないユーザー ID (整数) があり、これをクレームに入れたいと考えています。したがって、ユーザーは基本認証としてヘッダーのサービス エンドポイントに電子メール アドレスを渡し、有効であれば ID をクレームとして署名します (電子メール アドレスをクレームとして使用するのではありません)。

これには、emailAddress を userId に変換するために SQL Server データベースへの 2 回目のルックアップが必要になると思います。CredentialsService が呼び出される前に、これをパイプライン フローに挿入する方法はありますか?

または、間違った方法でサインインしたユーザー名をそのまま使用し、ユーザー名に基づいてクレーム変換を使用して整数 ID を強化しますが、ユーザー名を変更した場合はどうなりますか?

0 投票する
1 に答える
535 参照

security - WebAPI で JWT クレームを検証する

以下の Thinktecture AuthenticationConfiguration を指定します。

次の例の JWT を返します。eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzZXNzaW9uIGlzc3VlciIsImF1ZCI6Imh0dHA6Ly9zZXNzaW9uLnR0IiwibmJmIjoxNDIwMzk2ODgyLCJleHAiOjE0MjA0MDA0ODIsInVuaXF1ZV9uYW1lIjoicGFzcyIsImF1dGhtZXRob2QiOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvYXV0aGVudGljYXRpb25tZXRob2QvcGFzc3dvcmQiLCJhdXRoX3RpbWUiOiIyMDE1LTAxLTA0VDE4OjQxOjA0LjAxOVoiLCJyb2xlIjoiVmVyaWZpZWQifQ.h7curaLrqkMT4Btg-AAoEpNYqUIYNQA_y-eUdEwQBqs

それは次のとおりです。

JWT が信頼できるマシンから発行されたことを確認するにはどうすればよいですか? 秘密署名鍵に対称鍵を使用し、リモート マシンで同じ鍵を使用して検証できますか?

これを自動的に行うようにWebAPIを接続するにはどうすればよいですか(AuthenticationConfigurationがアカウントセキュリティAPI専用の別のマシンにあると仮定します)。

0 投票する
1 に答える
638 参照

asp.net-mvc-5 - MVC5 OWIN ADFS 認証ループの問題 - Thinktecture ResourceAuthorizationManager

MVC5 Web アプリに固有の問題があります。OWIN と Thinktecture ResourceAuthorizationManager のかなり標準的な実装を使用します。

ADFS で動作するように構成されています。

私が直面している問題は、アプリがデプロイされてサーバー (サーバー 2012R2 の IIS) でしばらく実行された後、ログインしようとすると認証ループに陥ることです。トレースを追加したところ、ADFS からのポストバックが成功した後でも、IsAuthenticated が false であることを示しています。

アプリプールをリサイクルすると、しばらくの間、すべてが期待どおりに機能し始めます。

私はどこを見ればよいかについてのいくつかの指針を大いに必要としています。

編集:他の場所で解決策を見つけました。答えはここにあります: ADFS 認証中の断続的なリダイレクト ループ

0 投票する
1 に答える
294 参照

wif - Thinktecture BasicAuthenticationSecurityTokenHandler が StatusCode 500、内部サーバー エラーを返す

最近、古い Thinktecture IdentityModel から、Web API 2 をサポートする最新の IdentityModel にアップグレードしました。

以下のコードは、以前の nuget パッケージ (およびそれをホストしているより低い webapi バージョン) で動作します。{StatusCode: 500, ReasonPhrase: 'Internal Server Error'

私が返すクレームは次のとおりです。

私は次のように構成します:

私が間違っていることを教えてください。