問題タブ [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.
asp.net-web-api - 委任による JWT トークンの使用 (ActAs)
WIF と .NET 4.5 で実装されたクレーム ベースの認証システムの実用的な実装があります。通常の部分が含まれています:
- パッシブおよびアクティブ エンドポイントを使用したカスタム STS
- バックエンド WCF サービス
- フロントエンド MVC アプリケーション
- フロントエンド WebApi アプリケーション
フロントエンド アプリケーションから backedn WCF サービスへの呼び出しでは委任認証が使用されるため、ユーザーはフロントエンド アプリで認証され、アプリは ActAs=BootstrapToken を使用して新しいトークンを要求し、WCF サービスを呼び出します。
これはすべて、SAML トークンで正しく機能しています。
ここで、JWT トークンを使用して WebApi と通信したいので、STS および WebApi プロジェクトにMicrosoft .Net Framework 4.5 Nuget パッケージの JSON Web Token Handlerをインストールしました。
そのため、STS が署名付き JWT トークンを正しく発行し、WebApi Relying Party が同じトークンを検証しています。大丈夫だ。
問題:
RST の ActAs フィールドで JWT トークンを使用すると、署名なしで送信されるため、当然 STS によって拒否されます。SecurityTokenHandler.ReadToken() メソッドによって返されるトークンは、署名情報なしでトークンを返すようです。
今、私のジレンマはこれです: これは JWT トークンでサポートされているシナリオですか? 私が理解している限り、SAML トークンとは対照的に、JWT トークンは署名を検証するためのすべての情報を持っていないので、他に制限はありますか?
一方、これが実際にサポートされている場合、これを以前に実装した人やアイデアはありますか? これは開発者向けプレビューなので、バグでしょうか?
編集
これは、問題を説明するためのサンプルです。このコードは、STS (署名キーにアクセスできる) と依拠当事者 (証明書の公開キーにアクセスできる) で実行されたときに同じ結果を生成します。
以下を生成します
したがって、明らかに、読み取り/書き込みの往復では署名情報が失われます。これが RP で発生する理由を理解できましたが、STS では発生しませんでした。
編集 2
したがって、現在のJWTSecurityTokenHandler.WriteToken(SecurityToken token)
実装は次のとおりです。
調べてみると、署名資格情報がないため、書かれたトークンが RP にある場合は署名がないことは明らかです。したがって、これはバグではなく、実装上の決定のようです。理由がわかりません。
ありがとう
oauth-2.0 - Google API oAuth2.0JWTを生成するためのForce.comApexコード
Force.comのApexでJWTを生成しようとしていますが、400の「エラー」:「invalid_grant」が発生し続けます。さまざまなバリエーションを試しましたが、有効な応答が得られません。clientEmailAddressは正しいです(例:##@developer.gserviceaccount.com)。openSSLを使用して秘密鍵の値を抽出しました。ボード上の他の投稿に基づいてbase64URLエンコードするメソッドを作成しました。どんな助けでも大歓迎です。
php - 「十分な権限がありません」Google アナリティクス API サービス アカウント
サービス アカウントを介して Google アナリティクス API でデータを取得しようとしています。
私はこれを行う方法をstackoverflowで検索しており、いくつかの投稿で見つかったのとまったく同じコードを使用していますが、問題が発生しています。
ソース:
サービス アプリケーションと Google Analytics API V3: サーバー間の OAuth2 認証?
サービス アプリケーションと Google アナリティクス API V3: エラー 101 (net::ERR_CONNECTION_RESET)
これは私が得たものです:
実行すると、次のエラーが発生しました。
致命的なエラー: メッセージ「GET の呼び出し中にエラーが発生しましたhttps://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end-date=2013-を含むキャッチされない例外「Google_ServiceException」01-25&metrics=ga%3Aページビュー: (403) ユーザーには、このプロファイルに対する十分な権限がありません。/Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66 スタック トレース: #0 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST .php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178): Google_REST::execute(Object (Google_HttpRequest)) #2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383): Google_ServiceResource->__call('get', Array) #3 /Applications/XAMPP/ xamppfiles/htdocs/insights/application/libraries/Google.php(46): Google_DataGaServiceResource->get('
動作例と全く同じコードを使っているので、APIやサービスアカウントの設定に問題があるのではないでしょうか?
これは私が分析アカウントに追加したユーザーです:
これは API アクセス アカウントです。
誰かが私が間違っていることを知っていますか?
.net - 対称キーを使用して Microsoft JWT を構成する方法は?
対称キーで署名された JSON Web トークン (JWT) を受け入れるように ASP.NET アプリを構成しようとしています。STS はこれに証明書を使用できないため、STS の対称キー サポートを使用しています。
私の側では、Microsoft の JWT Developer Previewを使用しています。残念ながら、対称鍵でそれを使用する方法の例は見たことがありません。さまざまなツールを調べてみたところ、対称キーを使用するように構成できることがNamedKeyIssuerTokenResolver
わかりました。例えば:
そこに何を使うべきか完全にはわかりませんname
。視聴者ウリか、発行者ウリか。いずれにせよ、 を含めないと、要素がその属性を必要とするname
ため、プログラムの開始時に例外が発生することはわかっています。securityKey
いずれにせよ、これでも問題は解決しません。STS に対して認証した後、次の例外が発生します。
他の設定手順がありませんか? name
属性に間違ったものを入れていますか? それとも、これは JWT Developer Preview の既知のバグですか?
c# - Azureモバイルサービス(REST)で使用するためのLiveConnect認証トークン
LiveConnectとAzureMobileServicesを試すための単純なWindowsフォームアプリケーションがあります。Windows8の最新アプリではありません。
Live Connectのサンプルコードを利用しようとしていますが、サインイン部分を正常に機能させることができました。最後に、サインインした後にaccess_tokenを取得します。
同じWindowsフォームアプリケーションのモバイルサービス側で、RESTを使用してログインしようとしています。ただし、「認証トークンの署名の形式が正しくないか、別のキーで署名されている」ため、「401Unauthorized」という応答が返されるようです。
JWTには2つの「。」があるようです。トークンで。SWTには「/」、「+」、「=」があるようです
私がしなければならない変換はありますか?
返される認証トークンがJWT(またはモバイルサービスが期待するもの)になるようにLive Connectを構成する方法はありますか?
LiveConnectとMobileServicesの両方でクライアントシークレットを確認しましたが、それらは正しいです。
clojure - "エラー": "invalid_token:認証トークンを解析できませんでした。" ClojureでFirebaseのJWTを生成する場合
Firebase REST APIのラッパーを書き込もうとすると(完全なソースについてはhttps://github.com/cloudfuji/taikaを参照)、認証トークンが失敗しているようです。関数は、Firebaseが提供するJavaライブラリオプション(https://github.com/firebase/firebase-token-generator-java)の単純なラッパーです。
コードは単純です:
トークンを生成すると、合理的に見えます(もちろん、秘密鍵の例):
ただし、REST APIリクエストでトークンを使用すると、次のように失敗します。
ルビーライブラリには同じ問題はないようです。
繰り返しになりますが、完全なソースソースはhttps://github.com/cloudfuji/taika/blob/master/src/taika/auth.cljにあります
.net - .p12ファイルから秘密鍵文字列をどのように抽出しますか?
VB.NETサーバーアプリケーションからGoogleAnalyticsAPIにアクセスしようとしています。私のアプリは「サービスアカウント」アプリケーションのカテゴリに分類されるため、ユーザーに資格情報を要求していません。アプリには独自の資格情報があり、Googleからデータを取得してユーザーに表示するために使用されます。
サービスアカウントのOAuth2ワークフローでは、アプリケーションがそれ自体を認証する手段としてJWT(JSON Webトークン)を生成する必要があります。これらのトークンを生成するための.NETライブラリを見つけましたが、このライブラリにどの「キー」を与えるかについて少し混乱しています。ライブラリのドキュメントで示されているキーの例は、base-64に見える数字の文字列と大文字と小文字です。しかし、私が持っているのは.p12
秘密鍵ファイルとそれに対応するパスワードです。このキーファイルからある種のテキストキーを抽出するにはどうすればよいですか?
私は次のようなことをしようとしました
しかし、これでは文字列ではなくバイト配列が残ります。私はここで正しい方向に進んでいますか?
security - JSON Web Encryption(JWE)で暗号化されたセキュリティトークンの発行者を検証していますか?
認証サーバーでJSONWebトークン(JWT)をサポートすることを検討しているため、最新のドラフトは08であるJSON Web暗号化(JWE)仕様を読んでいます。
定義されている非対称暗号化方式を使用して、対称鍵(コンテンツマスター鍵)は受信者の公開鍵を使用して暗号化されます。これは、受信者だけがそれを復号化でき、トークンが受信者向けであることを確認できるようにするために意味があります。
通常、トークンの出所を証明するものも表示されると思います。たとえば、公開鍵を使用して検証できる発行者の秘密鍵を使用して作成された署名などです。ただし、署名は、コンテンツマスターキーまたは受信者の公開キーのいずれかから派生しているように見え、発行者の秘密キーについては言及されていません。
これがないと、予想されたトークンの形式がわかっている限り、受信者の公開鍵を持っている人(つまり誰でも)が有効なトークンを生成できるように思えます。信頼できる認証サーバーだけではありません。
私は暗号化の専門家ではないので(それからはほど遠い)、ここで何かが欠けていると確信しています。受信者は、非対称に暗号化されたトークンが信頼できる発行者からのものであることをどのように確認しますか?
JSON Web Signatures(JWS)仕様では、発行者の秘密鍵を使用し、公開鍵で検証できる署名が定義されていることを考えると、JWEトークンのペイロードをJWSトークンにする必要があるのではないかと思います。
connect - Live Connect で「Windows 8 アプリの JWT 発行オプションを制限する」を使用するにはどうすればよいですか?
http://msdn.microsoft.com/en-us/library/live/hh826544.aspx#restrict_jwtの説明に基づくと、 この機能の使用方法はまだわかりません。私の理解は次のとおりです。
2 つの win8 アプリを作成する必要があります。たとえば、AppA と AppB
アプリの構成に関するライブ サービスでそれらを構成します。
リダイレクト Uri で指定するアプリは 1 つだけです。たとえば、AppA のリダイレクト Uri として「url://appA」を指定します。
2 つの win8 アプリの両方の [JWT 発行を制限する] オプションが [いいえ] に設定されていることを確認します。
AppB の場合、AppA からのリダイレクト Uri を使用して LiveAuthClient オブジェクトを初期化します。その後、Live Connect から AppB への認証トークンは、AppA のクライアント シークレットによって解析できるはずです。しかし、認証に失敗し、認証トークンが返されなかったことが判明しました。
私の理解が正しいかどうかを指摘するのを手伝ってくれる人がいますか。前もって感謝します。