問題タブ [identityserver3]

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

facebook - Thinktecture IdentityServer3 Facebook ログイン ボタンの問題

ユーザー管理、認証、およびリソースの承認のために、プロジェクトで「IdentityServer3 - IdentityManager - MembershipReboot」を使用しています。

以下のサンプルから始めて、ユーザーの作成、/connect/token api による認証、およびリソースの承認に成功しました。 https://github.com/thinktecture/Thinktecture.IdentityServer.v3.Samples/tree/master/source/MembershipReboot

私のソリューションの簡単なアーキテクチャは

  1. データベースとしてMySql。MembershipReboot.EF を介した MembershipReboot への通信。

  2. クライアント プロジェクトは、html + angularjs を使用して開発されます。

  3. リソース API は Nancy を使用して開発され、別のプロジェクトで Owin+Katana でホストされます。

  4. 認証サービス (IdSvr+IdMgr+MR) は、別のプロジェクトでホストされています。

ここで、Facebook のログインにつながる簡単なボタン/リンクをクリックして作成したいと考えています。このボタンの機能は、IDSvr の既定のログイン ページ ( https://localhost:44333/core/login?signin=4f909a877cc465afd26d72f60ec08f51 ) の「Facebook ボタン」で定義されているものと同じである必要があります。

私はグーグルでインターネットをたくさん試しましたが、私のシナリオに一致するケースはありません。デフォルトの IdSvr facebook ログインの要求と応答の動作を再現しようとしましたが、Cookie がエンド クライアントに保存されていないため、これは機能しません。

また、「https://localhost:44333/core/signin-facebook 」を押して、サーバーからHTTP/1.1 500 Internal Server Errorとして応答を取得しようとしました。IdSrv プロジェクトで Facebook のオプションを設定する際にどこか間違っているのではないかと思います。

したがって、誰かが接続するための IdSvr API を 1 つだけ提供してくれるか、Id Svr を構成して URL をマッピングして Facebook ログインにリダイレクトできるようにする方法を教えてくれればいいのです。または、IdSrv で Facebook 認証オプションを設定する際にどこが間違っているか教えてください。

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

c# - IdentityServer3 への登録後にローカル ユーザーを自動的にログインする

IdentityServer3を使用して、ユーザーが登録プロセスを完了した後、自動的にログインしてローカル ユーザーをクライアント アプリケーションにリダイレクトする必要があります。これを行うエレガントな方法はありますか?私の掘り下げから、そうではないと思われますが、これを達成するために使用できるハックはありますか?

カスタムUser Serviceを使用して外部ユーザーに対してこれを実現できましたが、これは部分的なログインを利用していました。ただし、ローカル ユーザーの場合、ユーザー名とパスワードでログインするまで、ユーザー サービスによって処理される認証プロセスには参加しません。

また、登録プロセスは複数の画面/ビューでカバーされているため、ユーザーのパスワードにアクセスできないことにも注意してください。この場合、登録プロセスの一部として電子メールを確認する必要があります。

進捗:

このhttps://github.com/IdentityServer/IdentityServer3/issues/563を見つけましたが、リダイレクトをトリガーする方法がわかりませんでした。

以下を使用して認証トークンを発行しようとしています。

しかし、これまでにできる最善の方法は、ユーザーをログイン画面にリダイレクトすることです。

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

javascript - Ajax 経由のリクエスト時に OpenIDConnect 認証を完了する

通常の OpenIDConnect サーバーは次のように動作します。

  • あなたはに行きますa.com/secure-resource
  • あなた302はサーバーから戻ってきます
  • ブラウザがそれを処理し、ID サーバーに送信します
  • そこにログインします
  • a.comそれはあなたを経由して送り返しますPOST
  • ログインしてブラウザa.comに戻ります。a.com/secure-resource

ただし、解決しようとしているシナリオがありますが、あなたの助けが必要です。

  • ユーザーはすでに idServer にログインしています
  • ユーザーはログインしていますa.com
  • ユーザーはログインしていませんb.com
  • b.com(別のドメインからa.com)Webサーバーにajax呼び出しを送信する必要があります
  • b.comOpenIDConnect を使用するように構成されています。
  • しかし、b.comAjax 経由のリクエストであるため、idServer にユーザーを正常にリダイレクトすることはできません。(応答で返されるのは のみです302)

先に進んで、Ajax 経由で 302 を処理できます (セキュリティの観点から、それが機能するかどうかはまだわかりません)。

しかし

これらの状況向けに設計された IdentityServer/OpenIDConnect のシナリオはありますか?

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

wcf - WCF と WIF で JWT トークンを使用する方法は?

一般的注意事項

私たちはIdentityServer3を使用しており、これまでのところ非常に満足しています。
MS と Thinktecture OWIN ミドルウェアの両方の助けを借りて、MVC と ASP.NET Web API アプリケーションを非常に簡単に保護することができました。

私たちが取り組んでいるクライアントにはまだ多くの SOAP WCF サービスがあり、ここで行き詰っています。

セットアップ

私はうそをつくつもりはありません.WCFの経験はまったくありません.非常に基本的なシナリオでしか使用していません.basicHttpBinding、トランスポートなし、メッセージセキュリティを理解しています.

これは私が達成したいことです:

  • クライアントが IdentityServer から JWT アクセス トークンを取得する
  • どういうわけか、トークンは SOAP メッセージ ヘッダーで終了します。
  • WCF はトークンを読み取り、検証します
  • WCF はクレームを検査し、いくつかの基準に基づいて承認を実行します

3番目のステップが機能しません。

サーバーのセットアップ

  • セキュリティモードws2007FederationHttpBinding付きを使用しています。TransportWithMessageCredentialメッセージには a が含まれてBearerKeyおり、トークンのタイプはurn:ietf:params:oauth:token-type:jwt
  • このサービスは、 NuGet パッケージJwtSecurityTokenHandlerから追加した WIF ID パイプラインを使用します。System.IdentityModel.Tokens.Jwt

クライアントのセットアップ

  • STS によって発行された JWT トークンはBinarySecurityTokenXML 要素にラップされ、それ自体がGenericXmlSecurityElement
  • このトークンは、のパラメータとして使用されCreateChannelWithIssuedTokenますChannelFactory

何が起こるのですか

トークンは SOAP ヘッダーで検出され、 に渡されJwtSecurityTokenHandlerます。
しかし、例外がスローされます。

JustDecompiling の後、SOAP ヘッダーの XML 要素をさらに読み取るときにエラーが発生したようです。奇妙なのは、トークンが最後の要素であることです。メッセージ全体は次のようになります。

形に異常があるようには見えません。</o:Security>スタック トレースから、トークンが適切に読み取られて処理されているため、最後の要素を読み取るときに例外をスローする必要があります。

再現

サンプル リポジトリをフォークしたので、気が向いたら見てみてください。関連するプロジェクトは次のとおりです。

  • SelfHost (Minimal)sourcesフォルダー内。これがSTSです
  • ソリューションではClients、WCF サービスはAPIsフォルダーにあります。
  • Clientsソリューションでは、WCF クライアントはプロジェクトConsole Client Credentials With Wcfです。

それを起動する最善の方法は、最初に STS を開始し、次にRight click -> Debug -> Start new instanceWCF サービスで開始し、次に WCF クライアントで同じことを開始することです。

前もって感謝します!

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

identityserver3 - IdentityServer v3 でメンバーシップを再起動する

Thinktecture IdentityServer と組み合わせて、MembershipReboot から UserAccount プロパティを抽出するのに問題があります。ここにあるサンプル リポジトリを使用して稼働しています: https://github.com/identityserver/IdentityServer3.MembershipReboot

Implicit Grant Flow で「openid profile」スコープをリクエストすると、id_token からの「given_name、middle_name」などの多くのユーザー アカウント フィールドと、userinfo エンドポイントからの応答が欠落しています。これは、GetClaimsFromAccount 関数で割り当てる必要があるためだと理解しています。

RequestClaims が MembershipRebootUserService クラスの GetProfileDataAsync() 関数に入ることを確認できます。GetClaimsFromAccount の TAccount のインスタンスにカーソルを合わせると、CustomUser 動的プロキシに表示される Firstname、Lastname などのプロパティを確認できますが、私の人生は、それらにアクセスしてクレームコレクションにコピーする方法を考え出しますか?

より詳しい情報:

問題は次の行にあると思われます。

これは、ユーザー アカウントのプロパティをクレームに変換する必要があるように見えますが、何も返されません。

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

c# - Asp.Net MVC アプリケーションを使用した IdentityServer のセットアップ

セキュリティ全般、特にIdentityServerについての知識がほとんどないため、これを尋ねることを前もってお詫びします。

Asp.Net MVC アプリケーションのセキュリティを管理するように IdentityServer をセットアップしようとしています。

私は彼らのウェブサイトのチュートリアルに従っています: Asp.Net MVC with IdentityServer

ただし、ID「サーバー」部分用に別のプロジェクトがあるという点で、少し異なることを行っています。これにより、2 つの Startup.cs ファイルが作成されます。1 つはアプリケーション用で、もう 1 つは Identity Server 用です。

アプリケーションの場合、Startup.cs ファイルは次のようになります。

ID サーバーの場合、startup.cs ファイルは次のとおりです。

承認マネージャーもセットアップしています

たとえば、ResourceAuthorize 属性で装飾されたコントローラー メソッドを定義すると、次のようになります。

次に、このメソッドに初めてアクセスしようとすると、デフォルトのログイン ページにリダイレクトされます。

ただし、私が理解していないのは、アプリケーション用に定義したユーザーでログインすると (以下を参照)、

Bearer error="insufficient_scope" という 403 エラーが発生します。

誰かが私が間違っていることを説明できますか?

その後、アクション メソッドにアクセスしようとすると、同じエラーが返されます。私が定義したユーザーは、このメソッドにアクセスできるという正しい主張を持っているようです。ただし、クレーム チェックは、このメソッドに最初にアクセスしようとしたときに 1 回だけ行われます。ログインすると Cookie が取得され、その後メソッドにアクセスしようとするとクレーム チェックが行われません。

私は少し迷っています。これを解決するための助けをいただければ幸いです。

前もって感謝します。

編集:ここにスケールとクライアントクラスがあります

そして Client クラス

また、いつクレーム チェックを行うかを決定するために使用するカスタム フィルター属性も作成しました。

ブレークポイントは、URL への最初の要求でのみヒットします。後続の要求では、フィルター属性のブレークポイントにヒットしないため、チェックは行われません。URLが要求されるたびにチェックを行う必要があると思っていたので、これは私にとって驚くべきことです。