問題タブ [shibboleth]
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.
amazon-ec2 - AWS と Shibboleth/SAML
アマゾン ウェブ サービスで Shibboleth/SAML を利用できないか調べています。
これに関する情報はほとんど見つかりません。私が知る限り、Shibboleth/SAML をサービス プロバイダーとして EC2 サーバーにインストールすることは可能です。
AWS のすべてを Shibboleth に結び付けることが可能かどうか、そしてこれがどのように機能するかについては、私にはよくわかりません。
3 つすべてに関する私の知識は漠然としています。私はかなりの量の本を読んでいますが、この技術についてはまったく詳しくありません。
shibboleth - 認証に外部 Shibboleth Identity Server を使用する Shibboleth Identity Server
多数のホストされたプラットフォームで認証を処理するサービスを設計しています。このサービスは、ユーザーのために多数の異なるプロトコルを管理できる必要があります: LDAP、Shibboleth などです。
内部で Shibboleth プロトコルを使用し、サービスを Shibboleth IdP として実行することを望んでいました。ユーザー カテゴリ、保護されたリソースの性質などに応じて、認証のハードワークはネイティブ LDAP、Shibboleth、または他のサーバーに渡されます。ユーザーがすでにアカウントを持っている場合。
これは可能であるように思われますが、Shibboleth のドキュメントから、それが可能かどうか、ましてやその方法を理解するのに十分な明確さは得られませんでした。
これは可能ですか?どうすればいいのですか?有用なドキュメントは非常に高く評価されています。
php - shibboleth で保護されたディレクトリでのみ PHP が解釈されない
私はこれに対する答えをどこでも探しましたが、成功しませんでした。
OSX Web サーバーに PHP をインストールしました。myserver.com/test.php にアクセスすると、すべてが完全に機能します。
ただし、mod_shib と shibd によって保護された /shibboleth/ というサブディレクトリがあります。
まったく同じ test.php ファイルを /shibboleth/ に配置すると、解釈されるのではなく、ブラウザに返されます。AddType と AddHandler の何百万通りもの組み合わせをいじりました。使用していることを確認しました
私の httpd.conf ファイルの関連部分は次のとおりです。
apache - ApacheConfig-認証から場所を除外する
Shibboleth認証モジュールによって保護されているWebアプリケーションがあります。私の現在の設定は以下の通りです
シボレスはSSO機能を提供する認証モジュールであり、現在のフローは、ユーザーがログイン資格情報を入力するためのIDプロバイダーにユーザーを誘導します。特定のURLを開いて、そのURLが認証モジュールによってバイパスされるようにしたいと思います。以下を試してみましたが、うまくいかないようで、URLの読み込み時に空白のページが表示されます
方法1
方法2
追加のデバッグを行ったところ、 Login.htmlがロードする追加のファイル(css、jsなど)に問題があるようです。Login.htmlを認証からバイパスできるように、Apacheでこれを構成する正しい方法は何ですか。
ありがとう
ruby-on-rails - OmniAuth Shibboleth 戦略構成が渡されない
omniauth-shibboleth戦略を利用しようとしています( Rack-samlを使用)。
私の omniauth イニシャライザは次のようになります。
omniauth-shibboleth がomniauth.auth
ENV 変数を設定する必要があるところまではすべて成功していますが、これは部分的なものになります。
つまり、それは正しく検出eduPersonPrincipalName
され、ファイルに渡されます-私はそれを見ることができます。uid
しかし、それは記入に失敗しemail
、余分なパラメータcn, sn, schacHomeOrganization
.
request.env
に必要な属性がすべて含まれていることを確認したので、問題は Shibboleth 側にはありません。
デバッグのために、Gem ファイルにオプションをハードコーディングしましたlib/omniauth/strategies/shibboleth.rb
。
その後、すべてが機能します。
したがって、Omniauthのセットアップまたはomniauth-shibbolethがオプションを処理する方法に問題があるようで、構成がデフォルト値とマージされません。
私は何を間違っていますか?
バージョン:
single-sign-on - SAML2 SSO応答に署名するためにIdPを要求する必要がありますか?
私たちのアプリには、3つの異なる(Shibboleth)IdPとのSAML2SSO統合があります。4番目(Shibbolethも)を追加しようとしていますが、すべてのSSO応答が検証可能に署名されていることをアプリが想定しているため、いくつかの問題が発生しています。これらの他の3つは応答に署名していますが、4つ目はそうではなく、アプリの署名を強制するためのカスタム構成を追加することを躊躇しています。
技術的には、署名されていないSSO応答を受け入れるようにアプリを変更できますが、そうすべきかどうか疑問に思っています。署名されていないSSO応答を許可することの落とし穴は何ですか?セキュリティの脆弱性はありますか?
ベストプラクティスとして応答に署名することを推奨するShibboleth(または他のSAML2 SSO)ドキュメントはありますか?
apache - 同じパスに対する複数のApacheLocationディレクティブ
現在、2つのHTTPSポート(たとえば、 443と8443 )で提供されているWebアプリケーションがあります。アプリケーションにはフロントエンドとしてApacheHTTPサーバーがあり、ポートの1つで特定のパスを除外するようにApache構成を設定する際に問題が発生しています。Apacheで以下のように設定を設定しました
以下のようにApacheで仮想ホストを設定しています
Locationディレクティブがホストとポートの情報を取得しないことを考えると、上記の構成で予想される問題は何ですか?Locationディレクティブは最初に一致するエントリを使用しますか、それとも次々に使用しますか?
シボレスを知っている人々のための詳細
最初のロケーションエントリにより、ユーザーはSSO(シングルサインオン)環境でアプリケーションにアクセスできます。2番目のエントリは、ユーザーがSSOを経由せずに別のポート(8443)で同じ仮想ホストにアクセスできるように設計されています。私たちが見ているのは、リクエストヘッダーが処理チェーンの終わりに向かって失われていることです。2番目のLocationエントリを削除すると、すべて正常に機能します。
permissions - Shibboleth を使用して、他のユーザーのさまざまな属性をさまざまなユーザーに提示できますか
わかりました、それは悪い言い回しの質問です。でも、一行で説明するのは難しい。
私は Shibboleth のドキュメントを読もうとしましたが、初心者であることはかなり急速に私の深みから抜け出しました。専門家が 30 分かけて「無理だ、うまくいかない」と言うことができるとしたら、それを理解するのに何日も費やしたくありません。
私には多くのユーザー グループがありますが、(今のところ) グループは異なる会社であるとしましょう。
私がやりたいのは、ユーザーが他社の一部のフィールドのみを表示できるようにすることです。
たとえば、私は会社 A のアリスで、会社 B のボブがメール アドレス bob@b.com を持っていることがわかります。彼は私が alice@a.com であることを確認できます
ただし、会社 B の他の全員は、ボブが姓と電話番号などを持っていることを確認できます。また、会社 A の他の全員は、私の詳細を見ることができます。
これをさらに複雑にするために、Bob と私が友達になり、情報を共有したいと決め、「一時的な」グループ「alice&bob」を作成するとします。私たちは両方ともそのグループのメンバーであるため、お互いの完全な詳細を見ることができます。(しかし、A の他の誰もボブの詳細を見ることはできません。ただし、友人でもある場合やその逆の場合を除きます)。
すべての属性と関係を照会し、関連するもののみを表示することで、アプリケーション コードですべてを整理できますが、セキュリティを強化するために、ソースでの情報の開示を制限したいと考えています。
属性フィルターを使用する必要があると思いますが、このレベルの制御が可能かどうかはわかりません。リレーションシップを形成できるこの柔軟性により、その場でフィルター ファイルを作成する必要があり、ロジックが非常に長いため、Shibboleth が窒息し始める何千ものフィルターが作成されることになります。「グループ内のリクエスタである」フィルタ ルールのようなもの: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPFilterRequirementAttributeRequesterInEntityGroup
attributes - CAS と Shibboleth の統合により、プリンシパル名 (ユーザー名) を SAML の属性として解放
シンプルな構成であるべきものを高低で検索したような気がします。
私は Shibboleth をまったく初めて使用しますが、CAS で少し作業したことがありますが、それほど熱心ではありません。Shibboleth が認証のために CAS にリダイレクトされるように( https://wiki.jasig.org/display/CASUM/Shibboleth-CAS+Integrationのガイドに従って) セットアップしました。これは正常に機能し、ユーザーが認証されると、Shibboleth を介してリダイレクトされ、SAML 応答が送信されます。https://sp.testshib.orgを使用してテストしていますが、適切に応答を受け取り、ページを表示しています。
私が理解できないように見えるのは、CASへのログインに使用されるユーザー名で単純な属性を解放する方法です。Shibboleth がそれを (idp-process.log から) 見ていることは知っていますが、これを解放するために attribute-resolver.xml と attribute-filter.xml に何を入れればよいかわかりません。
現在の SAML 応答は次のようになります。
この設定方法の例が必要です。wiki.shibboleth.net のすべてのドキュメントを読みましたが、まだ入手できないようです。
助けてくれてありがとう、私はそれが単なる構成の問題であることを知っていますが、それは私の脳を愚かに感じさせており、TestShib よりも強力なものと統合することさえ試みていません!
編集: 部分的に役立つこのセットアップ ガイドを見つけました。アクティブ ディレクトリを検索して名前を属性として渡すことができましたが、CAS は複数のユーザー リポジトリをチェックできるため、これは適切な長期的な解決策ではありません。 、これが取得するためにチェックするものと必ずしも同じではありません。${requestContext.principalName} を属性として解放したいだけです。
より良いアイデアはありますか?静的コネクタかもしれませんが、${requestContext.principalName} を解決する方法がわかりませんか?
php - mod_rewriteはHTTPヘッダーから長い値を削除します
OpenAthensSPを使用して、サービスにアクセスできる可能性のあるIdPメタデータを返しています。OpenAthensSPは、このデータをHTTP(s)ヘッダーの環境変数の形式で返し、PHPで($ _SERVERから)読み取ります。
ここまでは順調ですね。
ただし、mod_rewriteを使用してOpenAthensによって呼び出されるURLを書き換えると、メタデータ(つまり、HTTPヘッダーに含まれるOpenAthensの環境変数)が削除されます。これを並べてテストして示しました。PHPスクリプトを直接呼び出す(メタデータが存在する)のに対し、URLをまったく同じPHPに書き換える(メタデータは削除されますが、Cookieが存在し、変更されていないなどの他の値)。削除された値は非常に長い値を持っています(ここに社交的に貼り付けるには長すぎます-100k以上)-それが私が見ることができる唯一の潜在的な問題です。値は正しくURLエンコードされています。
ApacheでLimitRequestFieldSizeやLimitRequestLineなどを設定しようとしましたが、効果がないため、問題はmod_rewriteにあると思います。
したがって、問題は基本的に次のとおりです。
mod_rewriteを使用しながら、非常に長い値をHTTPヘッダーにそのまま保持するにはどうすればよいですか?
私が持っている現在の解決策は素晴らしいものではありません、私はこれをしなければなりませんでした(VirtualHostセクションからのhttpd.confフラグメント):
このようにして、index.phpは「/ Discovery」リクエストを受信し、$ _ SERVERの長い値が存在し、正しいことを確認します。ただし、404がトリガーされますが、これは言うまでもなく醜くてハッキーです。
私ができないことは、OpenAthensからの出力を有効なページ(discovery.phpなど)に直接送信することです。これは、使用されているPHPフレームワーク内に存在する必要があるログインフォームにデータを入力するためにメタデータが必要であるためです。 index.phpでオフにします。
(重要な場合:これはCentOS 5.6 / Apache 2.2.3にあります)