Thinktecture.IdentityServer.v2 アプリを使用していくつかの内部アプリの SSO を実行していますが、各アプリケーションのログイン ページをカスタマイズして、ユーザー エクスペリエンスをよりスムーズにしたいと考えています。私はそれを行う方法を見つけることができないようです。
クライアントがどこから来るソースアプリケーションに応じて、ログインページをカスタマイズできますか?
Thinktecture.IdentityServer.v2 アプリを使用していくつかの内部アプリの SSO を実行していますが、各アプリケーションのログイン ページをカスタマイズして、ユーザー エクスペリエンスをよりスムーズにしたいと考えています。私はそれを行う方法を見つけることができないようです。
クライアントがどこから来るソースアプリケーションに応じて、ログインページをカスタマイズできますか?
「それを行う方法が見つからないようです。」- どのくらい努力しましたか? ;)
RP には追加のデータ フィールドがあるため、登録データベースの RP から CSS 名のようにハングアップできます。さらに、サインイン ページからその RP データにアクセスできます - AccountController のコメントを引用します。
// AuthenticationHelper.GetRelyingPartyDetailsFromReturnUrl を呼び出して、要求された証明書利用者に関する詳細情報を取得できます
ところで - IdentityServer の github リポジトリには問題トラッカーがあります - 質問にはそれを使用する必要があります。
いつでも RP にカスタム クエリ文字列パラメーターを渡し、それをカスタマイズすることができます。しかし、あなたはその時点で WS-Federation の範囲外です。さらに、SSO の性質についても考慮する必要があります。ユーザーは実際にはアプリではなく IdP にサインインしています。そのため、IdP をアプリのように変更することは、やや不誠実です。
SignIn.cshtmlをカスタマイズしてスタイルを必要なものに調整することで、これを解決しました。さらに、 SignIn.cshtmlの上部に、ReturnUrl ( ) で文字列の一致を行うサーバー側のコードがありますRequest.QueryString["ReturnUrl"]
。次に、さまざまな RP URL で一意であることがわかっている値に基づいて、さまざまなロゴとヘッダー テキストを表示します。
ThinkTecture MVC の新しいバージョンにアップグレードする場合、このファイルだけを自分の仕様に合わせて更新するのは簡単な作業です (アップグレードする前に、変更したSignIn.cshtmlのコピーを用意しておくことを忘れないでください)。