1

わかりました、それは悪い言い回しの質問です。でも、一行で説明するのは難しい。

私は 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

4

2 に答える 2

0

上記の答えはかなり良いですが、シボレス以外のユーザーはそれを混乱させると思います。

簡単な答えは、あなたは本当にそれをこのようにしたくないということです、それは可能かもしれませんが、100%のためにそれをするためのより良いツールがあります。

わかりました、今フルバージョン(いくつかの場所であまりにも明白であるために申し訳ありません)。シボレスアーキテクチャでは、2つの主要なコンポーネントを区別できます。

IdentityProviderIdP-特定の組織のユーザーに関する情報を保持します。

サービスプロバイダーSP-通常はサービスまたは保護されたリソースであり、アクセスルールを定義できます

あなたの例では、アリスとボブの資格情報は、異なる組織/会社のメンバーであるため、異なるIdPに保存できます。または、(パターン全体と完全に一致するわけではありません)すべてのユーザーに対して1つのIdPを設定し、「会社」にすることができます。はユーザー属性の1つにすぎません。IdPは、認証されているユーザーを除いて、任意のユーザーのユーザー属性にアクセスする機会を提供するAPIを提供しません。

一方、ポリシーを定義できるいくつかの極秘リソースを保持するSPがあります。そして、ユーザー情報のポリシーを定義したいと思います。

そして、ここに問題があります。SP側では、ユーザーデータベース全体にアクセスできないため、Shibbolethが機能します。もちろん、すべてのユーザー情報をSPのリソースとして扱うこともできますが、アプリケーション側ですべてのユーザーの資格情報に明確にアクセスできるのに、なぜShibbolethを使用したいのでしょうか。

すべてのユーザー情報をサービス側に保存する場合、サービスに対して何らかの認証を行う適切に設計されたリレーショナルデータベースは、このジョブのシボレスよりも優れていると思います。

お役に立てば幸いです。

于 2013-01-04T14:07:05.340 に答える
0

これは、Shibboleth やほとんどの SAML/SSO プロバイダーの仕事ではありません。あなたが話す属性フィルタリングは、IdPとSPの間でこれらの属性をフィルタリングするために使用されます...これは基本的に、サービスプロバイダーまたは「アプリケーション」BにIdP Aからの次の属性を表示させます.

相手側の SP に属性を送信すると、Shibboleth は、アプリケーション B のユーザーが提供するデータを表示できないようにするメカニズムを提供しません (実際には提供できません)。実際、提供すべきではありません。アプリケーションを介して何らかの方法で公開していない限り、IdP によって送信されたデータを見ることができます。

于 2012-12-04T21:04:27.997 に答える