問題タブ [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.
thinktecture-ident-server - アプリケーションごとに異なる役割をセットアップする方法は?
シングル サインオンに IdentityServer を使用する予定です。アプリケーションごとに異なるロールを持つユーザーを持つ複数のアプリケーションがあります。それは私には明らかではありません。これをどのように設定しますか?
thinktecture-ident-server - 開発中にユーザーを切り替える方法は?
デバッグ モードのときに、クライアント インターフェイスからユーザーを切り替える機能が必要です。これを行う簡単な方法はありますか?アイデンティティサーバーでこれを行うにはどうすればよいですか?
c# - Windows ユーザーがログインしている場合の identityserver3 Oauth2
認証トピックは初めてです。
私のアプローチは、リソースにアクセスするためにidentityserver3を使用することです.OAuth2でリソース所有者クライアントフローを使用したいのですが、Windowsユーザーでは、ログインしたWindowsユーザーでアクセストークンを取得できるサンプルのようなものが必要です.
https://github.com/IdentityServer/WindowsAuthenticationを外部 ID プロバイダーとしてセットアップしようとしました。https ://github.com/IdentityServer/IdentityServer3/issues/1157に見られるように、ID サーバーに WS-Fed プロバイダーとして登録しました。
「外部ログイン」ボタンがありますが、これを押すと HTTP 500 エラーが発生します。
質問:
私は正しい道を進んでいますか?
500 エラーは正常ではないと思います。これを機能させるための次のステップは何ですか?
「最も単純な OAuth2 ウォークスルー」のように、プログラムでアクセス トークンを取得するにはどうすればよいですか? 例:
/li>
asp.net-mvc - 暗黙的なフローに対してトークンが大きくなりすぎる - Thinktecture IdentityServer3
私は取り組んでおり、同じサーバーがリソース所有者フローに対して約 20 ~ 30 文字のアクセス トークンを返している間にIdentityServer3
、私の (および ID トークン) が (最大文字数まで) 大きくなりすぎていることを確認しましAccess Token
た。この問題はフローに固有のものですか、それとも私が何か間違ったことをしているのですか...???3000+
Implicit flow
私がビジュアルスタジオソリューションに持っているのは
- 個別/スタンドアロンの IdentityServer サーバー プロジェクト
- Mvc アプリケーション プロジェクト (暗黙的なフローを使用)
- コンソール アプリ (リソース所有者フローを使用)
- Web API プロジェクト (要求ヘッダーで mvc アプリまたはコンソール アプリからアクセス トークンを取得します)
mvc アプリにログインすると、かなり大きなアクセス トークン (および ID トークン) が取得されますが、コンソール アプリの場合は、適切でコンパクトなトークンが返されます。なぜここで違いが...???
angularjs - AngularJs http Web API リクエストから Identity Server ログイン ページにリダイレクトします。
Angular の $http サービスから API コントローラー メソッドを呼び出すときに、Identity Server のデフォルトのログイン ページにリダイレクトしようとしています。
私の Web プロジェクトと Identity Server は別のプロジェクトにあり、別の Startup.cs ファイルを持っています。
Web プロジェクト Statup.cs は次のとおりです。
アプリの残りの部分は OpenIdConnect を使用しているのに対し、API はベアラー トークン認証で保護されていることがわかります。
Identity Server の Startup.cs クラスは
Web アプリがログイン ページにリダイレクトできるようにするために、CorsPolicy エントリを追加したことに注意してください。さらに、リダイレクト先の URL が含まれているので、Cors ポリシーは Location リクエスト ヘッダーを公開します。
Web Api コントローラー メソッドは、次のように Authorize 属性を使用して保護されます。
以下に示すように、Angular ファクトリは $http を呼び出します。
この呼び出しが発生すると、応答ステータスは 200 になり、データではログイン ページの html が返されます。
さらに、Chrome の [ネットワーク] タブで、応答にログイン ページの URL を含む Location ヘッダーがあることを確認できます。ただし、http インターセプターを設定すると、Accept ヘッダーが JavaScript に渡されていることがわかります。
Chrome のネットワーク タブに表示される http ヘッダーは次のとおりです。
何らかの理由で、応答に Access-Control-Allow-Origin ヘッダーがありません。
だから私は次の質問があります:
angularクライアントコードで応答のLocationヘッダーにアクセスしてリダイレクトする方法はありますか?
認証エラーがあったことを知るために、サーバーに 200 ではなく 401 を送信させるにはどうすればよいですか?
これを行うためのより良い方法はありますか?もしそうなら、どのように?
ご協力いただきありがとうございます!
編集:
カスタムの AuthorizeAttribute を追加して、フィルターから返される http ステータス コードを特定しました。
カスタム フィルター コード
このことから 2 つのことがわかりました。1 つ目は、X-Requested-With ヘッダーが、クライアント側の $http サービスによって生成されたリクエストに含まれていないことです。さらに、base メソッドによって返される最終的な http ステータスは 401 - Unauthorized です。これは、チェーンのどこかでステータス コードが変更されたことを意味します。
すべての質問に答える必要があるとは思わないでください。どんな助けでも大歓迎です!
oauth-2.0 - IdentityServer3 でフォーム認証を維持する
現在、私たちの組織には典型的なフォーム認証の設定があります。アカウント/ログインのような場所にログインページがあります。これを保持したいだけでなく、一部の API を OAUTH2 で保護したいと考えています。基本的に私たちは提供者です。
件名についてかなり読んだところ、MicrosoftのOWIN OAUTH実装はサポートされておらず(vNextなど)、OAUTH2を使用したすべてのフローをサポートしていません。Thinktecture の identityserver3 は、現在ある「標準」で最も完全なソリューションのようです。
フォーム認証を必要とする既存のアプリで identityserver3 を使用する例が見つからないようです。
2 つの異なる方法で使用することを検討します。ユーザーが(フォーム認証を使用して)ログインし、ユーザーがクライアントに特定のスコープへのアクセスを許可すると、JavaScriptを使用した暗黙的なフローを使用して、サードパーティのサイトがAPIを呼び出すことができるようにします。
もう 1 つのユース ケースでは、認証コード フローが使用されると思います。クライアントはこれを要求して、自動ログイン (Facebook でのログインによく似ていますが、X 社でログイン) ができるようにするか、サイトにログインしている場合は既にログインできるようにします。
これらのシナリオに関するヘルプをいただければ幸いです。