web-dev-qa-db-ja.com

認証ミドルウェア

多数(> 10)のDjangoベースのWebサービスとWebアプリケーションで構成される大規模な分散システムを、約10000人の大学生の消費者ベースで実行しています。 。現在、認証は大学が提供するシングルサインオンシステム(Shibboleth)を使用しています。承認/ロールは、各Webサービスでユーザーごとに手動で構成されます。現在のアーキテクチャを以下に示します。 enter image description here

Google、Facebook、LinkedInなどの大学を使用してログインできるようにシステムを拡張したいと考えています。認証とロール管理を担当するミドルウェアが必要なようです。ロールは頻繁に作成され、静的に定義することはできません。ミドルウェアは、セッション管理(タイムアウトの処理、シングルログアウトなど)も実行する必要があります。私たちは次のようなものを描きます:

Architecture of proposed system

このミドルウェアに必要なコンポーネントは何ですか?私たちのシステム管理者は、ADサービスと共に Gl または Keycloak を検討しています。これらのソリューションはどちらも要件を満たしますか?そのようなシステムのベストプラクティスまたは脆弱性/構成チェックリストはありますか?

6
Jedi

ご質問のように思われるのは、大学以外のソースからのフェデレーション認証を提供するIdentity and Access Management(IDAM)ソリューションです。

私はプロプライエタリソリューション(Oracle、CAなど)のみを扱いましたが、一般的にIDAMソリューションは次の要素で構成されています。-認証-アクセス制御-ユーザー管理-ユーザーリポジトリ

GluuとKeycloak plus ADのどちらがお客様の要件をカバーしているかという質問にはお答えできません。私はそれらについて何も知りません。各ソリューションに対する要件を定義してマッピングすることで、それらが適切かどうかを示す必要があります。また、豊かで成熟したコミュニティを持つオープンソースソリューションには、強化や構成などに関するガイドラインがたくさんあると思います。

1
tranzophobia

他の回答で述べたように、基本的には統一されたID管理システムが必要です。

免責事項:私が働いている会社には、IDサービスを提供する製品があります。

自分のニーズに最適なシステムを決定するために、人のStackOverflowの回答を信頼しません。これらのシステムはかなり高価であり、人々は通常、システムを決定する前にいくつかのベンダーからの提案を要求します。チェックリストについては、ベンダーごとに異なるメモリと構成要件があります。したがって、答えは選択するベンダーによって異なります。

ミドルウェアを選択するときは、次の高レベルの点に留意してください。

  1. ハードウェア要件。取得するリクエストの数を考慮すると、トラフィックを処理するためにいくつかの専用サーバーが必要になります。これにより、追加のハードウェアコストが発生します。一部のIdentity ManagerはOEMに付属しており、より良い取引を行うのに役立ちます。
  2. IdentityサービスのAPIドキュメント。アイデンティティサービスを変更するのは本当に大変です。したがって、統合が最も簡単なものが必要になります。 Webサービスとクライアントが比較的簡単に統合できるように、適切なAPIドキュメントがあるものを選択してください。
  3. 制限付きログインソースがあります。すべてのアカウントがすべてのID管理サービスと互換性があるわけではありません。また、アカウントを少し選択するだけで十分な場合もあります。より多くを求めることはやり過ぎになる可能性があります。たとえば大学生のほとんどは、Google/Facebookおよび大学の資格を持っています。ログイン数を増やすことは良いことですが、必須ではありません。
1
Limit

これに対する最善のアプローチは、オープンソースの勢いに従うことです。 KeycloakとGluuはどちらも、他の多くのソリューションと同様に、これを解決する方法を持っています。現在の内部スキルセット/リソースベースに一致するソリューションを見つける必要があります。

しかし、stackoverflowの議論に基づいて主要ベンダーを選択した場合、対処する必要のある問題がはるかに大きくなる可能性があります。

0
Chris Skura

「APIゲートウェイ」を探しています。

多くのAPIゲートウェイ製品とサービスが利用可能です。このStackOverflowの回答には、いくつかのオプションがリストされています。 https://stackoverflow.com/a/11335822/650894

さらに、Amazonは独自のAPIゲートウェイを提供しています。これは、かなり柔軟な展開オプションがあるように見えます。 https://aws.Amazon.com/api-gateway/

有望に見えるAxway APIスイートにも遭遇しました: https://www.axway.com/en/enterprise-solutions/api-management/api-management-solutions

申し訳ありませんが、私は自分がこの分野でスピードを上げようとしているので、どのオプションがあなたのニーズに最適であるかはわかりません。がんばって!

0
Joe Lapp