問題タブ [thinktecture]
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 - Identity Server 3 を使用した ASP.Net Web フォーム アプリの実装 (おそらく Thinktecture かどうか)
私は、.Net 4.5.2 Web サイト プロジェクトに実用的なソリューションを実装しようとしています。 私の目標は、Web フォーム アプリケーション (MVC ではない) である Web サイト プロジェクトを、(おそらく thinktecture の実装を介して) ID サーバー 3 を使用してユーザーを認証/承認するように変換することです。
これは可能ですか? サイトのライフ サイクルはどのように変化しますか、それともセッション オブジェクトでも同じことが言えますか? ID サーバーを使用してアクセス トークンを取得し、セッションをセットアップして、セッションの有効期限が切れたとき、またはアクセス トークンの有効期限が切れたときにのみ新しいアクセス トークンを要求することはできますか?
バックストーリー:
次の場所https://localhost:44399で動作するアイデンティティ サーバー 3 のセットアップがあります。これは、ストレートな html ファイルを使用すると、すべての適切な呼び出しと制限に応答しますが、ログイン ページ (portal.aspx) に同じことを実装しようとすると、ユーザーを忘れているようで、同じように動作しません。Web サイト (クライアント) はhttps://localhost:9898にセットアップされています。ログイン ページはhttps://localhost:9898/portal.aspxです。
portal.aspx ページで oidc-client.js を使用していますが、認証しようとすると CORS (クロスブラウザー オリジン スクリプト) エラーが発生し続けます。 これは Web フォームの問題ですか? 通常の HTML ページを使用している場合は発生しませんか?
これは、MVC ではなく Web フォームを使用する .net 4.5.2 の「Web サイト プロジェクト」(「Web アプリケーション プロジェクト」ではありません) です。私は正しく動作するデモ MVC アプリケーションをたくさん持っていますが、Web フォーム アプリケーションに知識を持ち込もうとすると、何が起こっているのかを本当に把握していないことがわかります。
次の nuget パッケージを追加しました。
startup.cs クラスを追加しようとすると、これらのクラスは通常 App_Code ディレクトリに追加されると表示されますが、そこに配置しますか? ルートと App_Code ディレクトリの両方を試しましたが、呼び出されたときにどちらも登録されていないようです。これが呼び出しを行うものだと考えて、パッケージを追加しました:
しかし、スタートアップクラスが登録されていないようです。 では、これをパイプラインに登録するにはどうすればよいのでしょうか? 401 の承認されていないエラーがユーザーを ID サーバーに送信するようにするにはどうすればよいでしょうか?
これが私のスタートアップクラスです:
さらに悪いことに、Microsoft.Owin.Host.SystemWeb を追加すると、次のような奇妙なエラーが発生してコンパイルされません。
owin - Umbraco + OpenId + Thinktecture パズル
私はこれを2日間理解しようとしてきましたが、助けを求める時が来ました. セットアップは次のとおりです。
次のパッケージで Umbraco 7.5.6 を実行します。
- UmbracoIdentity 5.0.0
- UmbracoCms.IdentityExtensions 1.0.0
- UmbracoCms.IdentityExtesnions.AzureActiveDirectory 1.0.0
Thinktecture SSO サーバーも実行しています
- IdentityServer3
要件は次のとおりです。
- バック オフィス ユーザーは、AAD または内部ユーザー経由でログインする必要があります (これは完了しており、機能しています)。
- メンバーは、Thinktecture SSO サーバー経由でログインする必要があります
- メンバーがホームページにいない場合は、ログインに成功した後、アクセスしようとしていたページにリダイレクトする必要があります。
これはすべて簡単に思えるので、これまでのコードを次に示します。これは、Owin スタートアップ プロセスに固執するために私が作成したミドルウェアです。
これが私の2つのコントローラーメソッドです。
最後に、ビューでのログイン アクション:
さて、これは私が道に迷う場所であり、本当に小さなものか何かを見落としているだけです。次の手順が当面の問題です。
- Umbraco ページが読み込まれます
- 「ログイン」をクリックして SSO サーバーにリダイレクトできます
- ログインしていない場合は、ログインします | ログインしている場合、Cookie が検証され、返信が返されます
- それは私をExternalLoginCallbackに送っていると主張していますが、コントローラーメソッドにブレークポイントを設定すると、ヒットすることはありません。
- 次に、ExternalLogin にリダイレクトしようとします (どこから取得しているのかわかりません)。
どんな助けや提案も素晴らしいでしょう。
identityserver3 - Web API 認証 (アイデンティティ サーバー) の後にアプリケーション固有のクレームを追加する
Web アプリケーションの OnValidateIdentity のアプリケーション固有のクレームを ID サーバーのアクセス トークンのクレームに追加しています。API 呼び出しごとにデータベースにクエリを実行しているログイン ユーザーのアプリケーション固有のクレームを取得しています。アプリケーション固有のクレームを Identity Server のトークンに挿入する必要がありますか (DB 呼び出しを減らすため)?
identityserver4 - IdentityServer4 が発行する sid の形式は何ですか?
Thinktecture IdentityServer4 が発行するトークンのうち、sid と呼ばれるものがあります。これはセッション ID です。私のアプリケーションでは、この ID を他のロジックとリンクさせたいと考えています。しかし、それが常に GUID 文字列であると想定できるかどうかはわかりません。いくつかテストしました。それらはすべて有効な GUID です。私の推測が正しいかどうか疑問に思っています。