問題タブ [jwt]

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 に答える
2423 参照

asp.net-web-api - Asp.Net Web Api:トークンで保護しますか?

asp.net Web API サービスをトークンで保護したいと考えています。これで、通常は STS サーバーを実装することがわかりましたが、私はそれをしたくないので、他のオプションは何ですか。

クライアントがユーザー名とパスワードを渡すように呼び出すことができるコントローラーを保護しないままにしておくことを考えていました。これにより、トークンが返されます。このトークンは、保護されるサービス上の他のコントローラーを呼び出すために使用され、必要になります。

したがって、DelegatingHandler と AuthorizeAttribute を使用すると、いくつかの疑問が生じます。クライアントが認証を呼び出すには、コントローラーを保護しないままにしておく必要があるため、上記のオプションは authorizeAttribute である必要があります。1つのコントローラーを保護しないままにするのではなく、完全なサービスを技術的に保護する委任ハンドラーを使用する方法がわかりません。

もう 1 つのオプションは、クライアントが認証してトークンを取得できるようにする別のサービスを提供することです。その後、delegatinghandler を使用して 2 番目のサービスをロックダウンできます。

私が STS ルーティングを下ったと想像してみましょう。クライアントが「OPEN」サービス/コントローラーに接続し、トークンを取得するために STS を呼び出す何らかの方法を提供する必要があります。

これを考えると、別のサービスが最善の選択肢でしょうか?

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

wif - .NET 4.5 の JWT ハンドラーがエラーをスローする: 単一のパラメーターを持つ GetIssuerName はサポートされていません

ここで説明されている.Net 4.5ライブラリ用のこのJSON Webトークンハンドラーを実装しました:

http://www.cloudidentity.com/blog/2012/11/20/introducing-the-developer-preview-of-the-json-web-token-handler-for-the-microsoft-net-framework-4- 5-2/

アプリケーションに JWT トークンを返すはずの ACS サービスがあります。ただし、アプリに返されるトークンを取得する必要がある時点 (ブラウザーが証明書利用者のリターン URI にリダイレクトされるとき) で、代わりに次の例外が発生します。

WIF10200: 単一パラメーターの GetIssuerName はサポートされていません。呼び出し: 'GetIssuerName( SecurityToken securityToken, string issuer )'。

これは私のコードに直接問題があるとは思いません。ソリューション全体の検索を行うと、「GetIssuerName」がソリューションに含まれていないためです。WIF が信頼したい証明書の発行者と関係があるのではないかと思いますが、ACS サイトの FederationMetadata から証明書をインポートする方法については、上記でリンクした記事の指示に従いました。 1。

不思議なことに、Relying Party トークン タイプを JWT から SAML 1 または 2 に変更すると、Relying Party の Return Uri がヒットすることはなく、エラーなしで自分のレルムにリダイレクトされるだけです。私は最終的にリターンウリに着陸することを期待しています。誰かが私にどちらかの現象を説明できれば、それは非常に役に立ちます!

アップデート

.NET 4.5 の GetIssuerName メソッドは、System.IdentityModel.Tokens.ValidatingIssuerNameRegistry クラスの一部です (同じメソッドを持つ System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry クラスもありますが、それは私が使用しているものではありません)。

メタデータを見ると、クラスにはこの名前のオーバーライドされたメソッドが 2 つあります。

以下のスタック トレースからわかるように、WIF から取得しているエラーは、そこにリストされている最初のメソッドから直接発生しているようです。証明書利用者が JWT を返すと、どこかで 2 番目のメソッドが呼び出されているはずです。このメソッドのシグネチャには 2 番目のパラメーターがありますが、最初のメソッドが呼び出されています。変更方法を知りたいです。

[NotSupportedException: WIF10200: 単一パラメーターの GetIssuerName はサポートされていません。呼び出し: 'GetIssuerName(SecurityToken securityToken, string issuer
) '

.IdentityModel.Tokens.JWT.JWTSecurityTokenHandler.ValidateToken(JWTSecurityToken jwt, TokenValidationParameters validationParameters) +278
Microsoft.IdentityModel.Tokens.JWT.JWTSecurityTokenHandler.ValidateToken(SecurityToken トークン) +2248
System.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(SecurityToken トークン) +135
System.IdentityModel.Services.TokenReceiver.AuthenticateToken(SecurityToken トークン、ブール値の ensureBearerToken、文字列 endpointUri) +502
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase リクエスト) + 1508
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(オブジェクト送信者、EventArgs 引数)
+700 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ、ブール値&完了同期) +165

0 投票する
2 に答える
2679 参照

authentication - JSON Web トークンをクライアント アプリに転送する方法は?

ユーザーを認証する必要がある Web アプリケーションがあるとします。独自に行う代わりに、ユーザーを専用の認証サービスにリダイレクトします。

そこでユーザーがログインすると、ユーザーのクレームを含む JSON Web トークン (JWT) が作成されます。

さて、JWT をクライアント アプリに送り返すにはどうすればよいでしょうか。

基本的には、もう一度リダイレクトすることもできますが、JWT を URL に入れる必要があり、これを回避したいと考えています (ブラウザーにアクセスできるすべてのユーザーが URL にトークンを表示するのは最善の策ではないと思います)。歴史)。

他に何ができる/すべきですか?

POST元のサーバーに戻って、本体内で JWT を送信することを想像できます。その後、それは非表示になり、元のサーバーはとにかくトークンにアクセスできます.

他のアイデアや提案はありますか?

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

facebook - WPF クライアントから Azure アクセス制御を使用すると、ブラウザ ウィンドウにエラーが表示される

私は現在、WPF クライアントと Web サイトの両方をサポートするさまざまなアプリケーションの既定の認証プラットフォームとして、azure アクセス制御を実装しています。

WPF クライアントで次の奇妙な動作が見られます。

Azure Authentication Library を使用して、次のコード行を実行して JWT トークンを取得し、それを使用してサービスへの認証を行います。

テストでは、当社の Web サイトへの直接の Facebook 認証に問題はなく、問題なく動作しています。Google と Microsoft ID も、WEB と WPF の両方の状況で正常に機能します。

ただし、WPF クライアントの 1 つから Facebook を使用すると、ブラウザ ウィンドウがポップアップし、次のエラーが表示されます。

スタックオーバーフローで見つかった同様のエラーの提案に従って、Facebookアプリケーションの設定をリセットしましたが、最終的な答えが見つからないようです

0 投票する
2 に答える
2506 参照

google-app-engine - JWT署名を検証するには?

Go AppEngine バックエンドで Android ユーザーを認証したいのですが、

http://android-developers.blogspot.co.il/2013/01/verifying-back-end-calls-from-android.htmlに従って、Android で ID トークンを簡単に取得できます。

ID トークン ペイロードは、 https: //code.google.com/p/google-api-go-client/ ライブラリの oauth2/v2 パッケージで検証できます。

AppEngine で使用するには、インストールの微調整が必​​要です。http: //golangtutorials.blogspot.co.il/2011/11/using-external-api-in-go-appengine.html

ドキュメントによると:「署名の検証 これは Google の公開鍵と秘密鍵のペアを使用して署名されていることが判明し、Google は公開鍵 (定期的に変更します) を www.googleapis.com/oauth2/v1/certs で公開しています。先を見てください。

実際には JSON Web トークンである ID トークンが、これらの証明書のいずれかで署名されていることを確認する必要があります。幸いなことに、これを行うためのまともなライブラリがあります。この投稿では、Java、Ruby、および PHP の指針を示します。

ライブラリは Google 証明書をキャッシュし、必要な場合にのみ更新できるため、検証は (ほとんどの場合) 高速な静的呼び出しになります。」

トークンが Google によって署名されたことを Go で確認するにはどうすればよいですか?

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

wcf - WCF サービスを保護するためのクレーム ベースのセキュリティ モデルの実装

現在、すべての Web アプリケーション (およびそれらがやり取りする WCF サービス) は内部で実行されています。Web には何も公開されません。Web アプリケーションをインターネットに公開したいので、サービスへのアクセスを保護する必要があります。

既存の "RESTful" WCF サービスがいくつかあります (WebHTTPBinding を使用)。Windows Azure Access Control Service (ACS) といくつかの ID プロバイダー (Google および 1 つ以上の Active Directory フェデレーション サービス) を使用して、これらのサービスを保護したいと考えています。トークン形式として JWT を使用したいと考えています (Azure ではベータ版であることはわかっています)。誰かがアドバイスを提供したり、優れたチュートリアルの方向性を示してくれることを願っています...私が読んだものはすべてASP.NET WebAPIを使用してサービスを作成しているため、それを使用したくありません.

JSON を解析できるすべてのクライアントをサポートできるようにしたいと考えています。現在、Web アプリは HTML/jquery のみです。

いくつかのガイダンスは素晴らしいでしょう。ありがとう!

0 投票する
2 に答える
4733 参照

asp.net-web-api - ASP.NET Web API - 認証された暗号化された JWT トークン - OAuth は必要ですか?

認証済みの暗号化された JWT トークンを使用して、ASP.NET Web API アプリケーションへのアクセスを認証/承認することを検討しています。

これまで読んだ内容に基づいて、トークン サービスから JWT トークンを生成し、http 認証ヘッダーを介して Web API に渡すオプションのように思えます。

JWT の作成と消費を実装するための優れたコード例をいくつか見つけました (Badrinarayanan Lakshmiraghavan による Pro ASP.NET Web API Security)。

これをサポートするために完全な OAuth 実装が必要かどうか、または単に認証ヘッダーでトークンを渡すことができるかどうかを理解しようとしています。

トークンが適切に暗号化および署名されていると仮定すると、OAuth を使用せずに物事をシンプルに保つことに固有のセキュリティ上の欠陥はありますか?

セキュリティを損なうことなく、自分のニーズに合わせて物事をできるだけシンプルにしようとしています。