問題タブ [token]

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

c# - カスタム ClientCredentials を使用した WCF 認証: 使用する clientCredentialType は何ですか?

基本的な WCF UserName/Pwd セキュリティを破棄し、独自のカスタム クライアント資格情報を実装して、既定で提供される情報よりも多くの情報を保持する必要がありました。

私はこの MSDN の記事を読みましたが、機能しないため何かが欠けています。

まず、カスタム ClientCredentialsSecurityTokenManager を提供するいくつかのカスタム ClientCredentials があります。

アプリを実行すると、カスタム資格情報とトークン マネージャーが作成されます。ただし、メソッドでは:

tokenRequirement.TokenType は、私のカスタム トークン以外のものとして認識されます。それは私の最初の質問をもたらします.WCFはトークンの要件が何であるかをどうやって知っているのですか?

また、方法:

クライアントによって 1 回呼び出されますが、返されたトークン シリアライザーのメソッドが呼び出されることはありません。これは、カスタム トークンがネットワーク経由で送信されていないことを示しています。これは、カスタム トークンが必要であることを示す SecurityTokenRequirement が渡されないため、CreateSecurityTokenProvider() の呼び出しでカスタム トークン プロバイダーが返されなかったためだと思います。

クライアント側には、次のものがあります。

これらのメソッドは基本的に、エンドポイントから既定の資格情報を削除し、カスタム CentralAuthCredentials の新しいインスタンスをアタッチすることになっています。(この削除/追加コンボは、どこかの MSDN 記事から入手しました)。

構成では:

動作の clientCredentials タイプがカスタム クライアント資格情報に設定されていることに注意してください。ただし、現時点ではまだバインディングの clientCredentialType を「UserName」に設定しています。これは私の2 番目の質問をもたらします: 一体何 clientCredentialType="?" カスタム資格情報を使用している場合に設定されますか? MSDN によると、メッセージセキュリティで使用できる値は、 NoneWindowsUserNameCertificate、およびIssuedTokenです。

何か案は?うまくいけば、単純なものが欠けているだけですか?実装全体にはさらに 6 つのクラスがありますが、状況を理解するために必要なビットのみを含めようとしました...


更新#1:

私は一日中これに取り組んできましたが、いくつかの情報源のおかげで、欠けていたものの一部がこのページの最後のステップであることに気付きました。バインディングに TokenParameters を追加して、バインディングが何を認識できるようにするかです。トークンは次のようになります。それが私の元の最初の質問に対する答えです。「一体何がトークン要件を設定しているのですか?」答え: バインディングに割り当てられた TokenParameters です。

そこで、バインディングに TokenParameters を設定する次の拡張機能を追加しました。

それは私をさらに一歩進めます。サーバーで新しい例外が発生しました。

WCF は、カスタム トークン ハンドラーではなく、既定のトークン マネージャーを使用してカスタム トークンを処理しようとしているようです (カスタム トークン ハンドラーのコンストラクターは呼び出されません)。clientの場合、次の構成があるため、これが発生していると思います。

しかし、サーバーには、カスタム クライアントの資格情報を知らせるための同等のものはありません。それで、新しい質問: サーバーの構成のどこで、カスタム ClientCredentials が何であるかを伝えますか?


更新 #2:

さて、私はついにパズルをもう少し理解しました。クライアントが資格情報を送信すると考えて、ClientCredentials 実装のみを実装しました。クライアントはサービスを認証しないので、カスタム ServiceCredentials は必要ありません。まあ、私は間違っていました。指定された ServiceCredentials は ClientCredentials からのトークンを認証し、その逆も同様です。そのため、同じ TokenSerializer クラスと TokenAuthenticator クラスを渡すカスタム ServiceCredentials 実装を追加する必要がありました。

次の問題: WCF は、構成で指定された、UserName 認証で正常に機能していた x509 証明書を無視するようになりました。この質問に対して、まったく新しい質問を開きます。

0 投票する
6 に答える
14042 参照

c++ - テキストファイルを単語に分割する方法は?

私は、ファイルを読み取って行数を数え、同時にその中の単語を数えることになっている課題に取り組んでいます。while ループ内で getline と strtok の組み合わせを試しましたが、うまくいきませんでした。

file:example.txt (読み取るファイル)。

こんにちは、うれしい驚きです。
この場所へようこそ。
ここでの滞在が快適でありますように。
(3 行といくつかの単語)。

Readfile.cpp

0 投票する
4 に答える
32557 参照

perl - Perlで区切られた文字列をどのようにトークン化/トークン化/分割しますか?

"a:b:c:d" などの文字列を Perl で解析するためにトークンに分割するにはどうすればよいですか?

(たとえば、分割を使用しますか?)

何よりも明確で簡単な答えを探しています(ただし、後で興味深い情報を追加してください)。

0 投票する
3 に答える
3106 参照

javascript - Javascriptトークンの置換/追加

次のような文字列があります'test:1; hello:five; just:23'。この文字列を使用して、次のことができるようにする必要があります。

最終結果は'test:567; hello:five; just:23; yes:23'になります(トークンの正確な順序はそれほど重要ではないことに注意してください)。

誰かがこれをどうやってやるのかについて賢いアイデアを持っているかどうか疑問に思っています。右側の各トークンで正規表現の置換を考えていました。一致しなかったために置換が発生しなかった場合は、それを追加するだけです。しかし、おそらくもっと良い方法があります。

乾杯アンソニー

編集:右側が左側を上書きする必要があります。左側が元々あったもので、右側が新しいコンテンツです。別の見方をすれば、トークンが右側に存在しない場合にのみ左側に保持し、すべてのトークンを右側に保持するというものです。

@Ferdinand 返信ありがとうございます。問題は、提案したソリューションの効率です。私は当初、同様の行を考えていましたが、分割と結合はもちろん、マージのO(n * z)の複雑さ(nとzはそれぞれ左側と右側の数値トークン)のためにそれを割り引いていました。

したがって、なぜ私は正規表現の道を見下ろそうとしていたのですか。おそらく舞台裏では、正規表現は同じように悪いか悪いですが、右側に存在する左側の文字列からトークンを削除する正規表現(右側のトークンの合計量のO(n))を持ってから、 2つの文字列を一緒に(つまり、バットテスト= test1 + test2)、より効率的に見えます。ありがとう

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

windows-services - CreateProcessAsUser の有効なユーザー トークンを取得するにはどうすればよいですか?

通常のユーザーとして実行されているアプリケーションと、ローカル システムとして実行されているサービスがあります。サービスが他の処理を行ったら、アプリケーションがサービスにアプリケーションを再度開始するように指示できるようにしたいと考えています。(したがって、サービスが「処理」を実行している間は、アプリケーションは実行されません。)サービスがアプリケーションを最初に開始したユーザーとしてアプリケーションを開始できるようにするには、ユーザー トークンが必要です。アプリケーションはサービスが終了する前にトークンをサービスに送信しますが、サービスが使用しようとしているときにトークン/ハンドルが無効です。(最初に行うことは、プライマリ トークンを取得するための DuplicateTokenEx です。)

ユーザー トークンは常に OpenProcessToken を呼び出したプロセスでのみ有効ですか?

これを行うことができる他の方法はありますか?ユーザーがlogonuserでアプリケーションに「ログオン」する必要はありません。それはばかげているでしょう。「explorer.exe」のプロセス ハンドルをアプリからサービスに渡すことができると思います。サービスはユーザー トークンを取得するために使用できますが、それには PROCESS DUP HANDLE アクセス権が必要です。私はその解決策に興奮していませんが、おそらくそれを行う方法ですか?

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

oauth - Oauth が取り消されたトークン

実際に関数呼び出しを行う以外に、oauth トークンが取り消されたかどうかを判断する方法はありますか? 私は、時間と費用がかかる単一の関数呼び出しを持つ Oauth プロバイダーを使用しています。私の Web サイトでは、アクセス トークンが有効かどうかをその呼び出しで判断できるようにしたいと考えています。ありがとう

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

security - クライアント/サーバーアプリケーションでの認証とセキュリティモデル

クライアントがユーザー名とパスワードでログインする必要があるカスタムクライアント/サーバーアプリケーションを開発しています。ユーザーアカウントは、Windows/ADアカウントとはまったく関係ありません。ログイン後、クライアントアプリケーションはサーバーシステムに他のサービスを要求します。

私の質問は、これを実装するための最良の方法は何ですか?ここではどのようなアーキテクチャが最適ですか?ある種のチケット/トークン認証システムを実装する必要があると思いますか?

ありがとう

0 投票する
3 に答える
1469 参照

php - サーバー間でユーザー セッションを認証するにはどうすればよいですか?

問題: ユーザーのホームページにダウンロード リンクを表示する必要があります。そのダウンロード リンクは、ユーザーがログインしている場合にのみアクセスできる必要があります。

しかし、本当の問題は、ユーザーのホームページとダウンロード リンクが別の Web サーバー上にあることです。

ダウンロード リンクを含むトークンを送信し、そこで検証する方法はありますか?