web-dev-qa-db-ja.com

LDAP対SAML認証

現在、資産追跡システムをLDAPからSAMLに移行することを検討しています。ソフトウェアが現在LDAPを使用している主な分野は2つあります。最初は認証です。今日システムにアクセスするには、LDAPで正常に認証され、指定されたLDAPグループのメンバーである必要があります。その部分は、SAMLに簡単に移行できます。ライブラリを使用して、汚い作業のほとんどを処理しました。また、IDPでは、ユーザーを承認するためのクレームを追加できます。しかし、LDAPの2番目の使用法は、ループに私を投げかけることです。

現在、当社が管理する各資産には、ユーザー名にリンクする機能があります。たとえば、特定のプリンタが「someuser」に属している場合があります。ソフトウェアが管理者に提供するオプションの1つは、LDAPユーザーグループに基づいてアセットを表示/操作することです。そのため、管理者として、特定の部門の人が所有するすべてのプリンターを更新したい場合があります。これを実現するために、管理者はLDAPグループ「departmentInQuestion」をスコープとするルールを作成します。その後、ソフトウェアはサービスアカウントを使用してLDAPに接続し、クエリを作成してシステムのどのユーザーが「departmentInQuestion」にいるかを確認し、実行して結果を使用して更新を取得するアセットを決定します。

これまでの検索では、これに似たSAMLワークフローを見つけることができませんでした。 「someuser」を評価しなければならない唯一の機会は、彼らが認証し、彼らの主張にアクセスできるときです。しかし、私たちのワークフローでは、「someuser」は私たちと認証することはありません。サービスアカウントに代わってユーザーの承認を使用しているようです。探索中に見落としていた既存のワークフローはありますか?この方法で認証をサポートする他の技術はありますか?

ご意見ありがとうございます!

16
Staros

SAMLはパスポートまたはビザのようなものです。それは、あなたについて知っている(あなたの名前、DOBなど)ために使用できる(信頼された)情報を持ち、アクセスできるものを推測します(例えば、入国)。トークン内のプロパティを使用して、関連付けられている可能性のある追加情報(銀行取引明細書など)について他のシステムに照会できます。

そのため、同様に、SAMLは通常、システムに対するユーザーの認証に使用されます(Originを信頼すると)が、ユーザープロファイルまたは「リソース」を管理するための規定はありません。

承認決定がある場合は、多くの場合、ユーザー(ユーザーが属するグループなど)に関連付けられた属性に基づいて行われ、セキュリティトークンのクレームで伝達されます。

おそらく、最初に答える質問は、LDAPから離れてSAMLについて考える理由です。自分の資格情報でログインしているユーザーを受け入れたいからですか? LDAPサーバーを完全に削除したいからですか

LDAPサーバーを管理するためにresources associated with users、およびどこかでユーザーを認証します。これはあなたが今持っているものです。共通の属性(ユーザー名、IDなど)を介して、ユーザーを「外部」と「内部」に関連付けます。

LDAPをまとめて削除する場合は、その情報を保存するための別の場所(アプリデータベースなど)が必要になります。

23
Eugenio Pace

Eugenio Pace の応答に基づいて、特にこの段落の後に:

そのため、同様に、SAMLは通常、システムに対するユーザーの認証に使用されます(Originを信頼すると)が、ユーザープロファイルまたは「リソース」を管理するための規定はありません。

承認決定がある場合は、多くの場合、ユーザー(ユーザーが属するグループなど)に関連付けられた属性に基づいて行われ、セキュリティトークンのクレームで伝達されます。

ここでEugenioが指すのは、属性ベースのアクセス制御であるABACです。 SAMLはそれを行いません。 ABACを実現するには、XACMLが必要です。 SAMLとXACMLはどちらもOASISによって定義された標準であり、相互運用できます。 XACMLを使用すると、属性ベースのルールを定義できます。たとえば、例を再検討し、次のようにルールを記述できます。

  • role == administratorを持つユーザーは、action == updateのリソースtype == printerユーザーの部門==プリンタの部門

これらの参照サイトでABACのXACMLの詳細を読むことができます。

8
David Brossard

Auth0は、消費者向けWeb製品OAuth 2.0OpenID Connect)およびエンタープライズ展開[〜#〜] saml [〜#〜]WS-Federation[〜#〜] ldap [〜#〜])。

  • [〜#〜] s [〜#〜]ecurity[〜#〜] a [〜#〜]ssertion[〜#〜] m [〜#〜]arkup[〜#〜] l [〜#〜]anguage([〜#〜] saml [〜#〜])は、2つのエンティティ(サービスプロバイダーとIDプロバイダー)間の認証と承認のためのXMLベースのフレームワークです。サービスプロバイダーは、ユーザーを認証するためにアイデンティティプロバイダーを信頼することに同意します。 IDプロバイダーはユーザーを認証し、ユーザーが認証されたことを示す認証アサーションをサービスプロバイダーに提供します。

  • [〜#〜] l [〜#〜]ightweight[〜#〜] d [〜#〜]irectory[〜#〜] a [〜#〜]ccess[〜#〜] p [〜#〜]rotocol([〜#〜] ldap [〜#〜])は、インターネットプロトコル(IP)ネットワークを介して分散ディレクトリ情報サービスにアクセスして維持するために使用されるアプリケーションプロトコルです。

ソース

0
Premraj