web-dev-qa-db-ja.com

Shibbolethログイン用のカスタムWebフォーム

最近、大学のShibboleth認証システムで認証するサーバーとWebサイトを展開しました。機能的には、うまく機能します。審美的に、たくさんあります

ログインページに移動すると、ログインページはShibbolethのサーバーユーザー認証ページにリダイレクトされます。それが機能している間、私はむしろ私のウェブサイトにユーザー名とパスワードのテキストボックスを置き、提出時にそれらをShibbolethに渡します。

別のWebフォームを使用して、情報をShibbolethに渡すことはできますか?

1
Brian

独自のカスタムログインフォームがあると、Shibbolethを使用する意味がなくなります。これは、ユーザーをIdPに送信し、ユーザーが信頼できると認識してそこで認証できるようにしてから、認証と承認のアサーションをサービスプロバイダーに委任することを目的としています。

フェデレーションWAYFまたは機関IdPのルックアンドフィールに不満がある場合は、フェデレーションまたはIdPに相談してください。

(補足として、ユーザーエクスペリエンスを向上させるためのWAYFとIdPのブランディングとルックアンドフィールは、 Federated Access Management(FAM10)カンファレンス)で話題になったトピックの1つでした :おそらく新しいものが登場するでしょうあなたがその一部である場合、英国連邦。)

2
Bruno

偶然にも、誰もがこのアプローチを使用したいと思っている場合は、これを実行できることがわかりましたが、セキュリティについては十分に評価する必要があります(たとえば、SSLで暗号化されている、以下に示すローカル参照)。

  1. 指定されたリダイレクトエンドポイント(例:/ shib/protected /)を使用してクライアントSSOディレクティブを呼び出します https://acmesite.com/Shibboleth.sso/Login?target=%2Fshib%2Fprotected%2F

    a。 AJAXまたはJSONPでさえもCORSの問題を解決しようとすると、CORSの問題が発生し始めるため、これは実際にはリダイレクトを介してのみ実行できます。

  2. 適切な名前の要素を使用して投稿する

    <form id = "login" action = "https://sso-dev.acme.com/idp/Authn/UserPassword" method = "post">
    <input class = "form-element form-field" name = "j_username" type = "text" value = "">
    <input class = "form-element form-field" name = "j_password" type = "password" value = "">
    <button class = "form-element form-b​​utton" type = "submit">ログイン</ button>
    </ form>

0
J. Lawson