1

クライアント用の SSO サーバーを開発する必要があります。私のユースケースは、2 つのアプリケーションがあり、それらに独自のログイン画面を持たせず、ユーザーがアプリ 1 からアプリ 2 に簡単にジャンプできるようにすることです (アプリ 1 とアプリ 2 は独自のリソースを保持し、ユーザーの認証と承認のみを中央認証サーバーに依存する必要があります)。JavaでSSOサーバーを作成することについて読んでいました。oauth 2.0、open ID connect、SAML について読み始めました。読めば読むほど混乱します。

Oauth 2.0はSSOに使用できないと読んだ場所と、使用できると読んだ場所があります。

これら3つの仕組みについては、ある程度理解しています。しかし、これら 3 つが互いにどのように異なっているかを視覚化することはできません。

私は私の質問を下に置きます

  1. SSO に Oauth 2.0 を使用できますか
  2. データが非常に機密性の高い金融機関の Oauth 2.0 、 SAML 、および Open ID 接続で、どちらが優れているか。また、ネイティブのモバイル アプリも用意する予定です。また、この同じ SSO サーバーを使用してユーザーをログインさせます。
  3. Javaでこれらのいずれかを実装するライブラリはありますか. ドロップウィザード サーバーを使用する予定です
4

3 に答える 3

3

に関して。「1. OAuth を SSO に使用できますか」には、非常に良い読み物があります: http://oauth.net/articles/authentication/基本的に、「拡張プロファイルなしではなく、標準プロファイルとして既に行われています」 OpenID Connect」と呼ばれる

于 2014-12-23T17:24:41.717 に答える
1

OAuth は、WS-Federation / SAML および Security Token Service (STS) を使用するなど、フェデレーションの意味で真の SSO を提供しません。

OAuth は実際には承認プロトコル、つまり同意に使用されます。OpenID Connect は、OAuth の上に認証レイヤーを提供します。

SAML は「最良の」選択肢です。たとえば、Shibboleth、Salesforce、WorkDay などはすべて SSO に使用しています。

ただし、SAML は HTTP POST を使用するブラウザー ベースであるため、ネイティブ アプリケーションには適していません。これには OAuth の方が適しています。

Java SAML の場合、OpenSAMLを使用できます。

Spring Security には OAuth スタックがあります。

于 2014-11-23T18:45:47.980 に答える
1

免責事項: 私は CAS の会長であり、CAS in the cloud ( https://www.casinthecloud.com ) の創設者です。

CAS は、広く使用されている SSO ソリューションでもあります。Web サイトやモバイル アプリケーションで機能し、ゲートウェイ、更新、プロキシなどの強力な機能を備えています。これは、理解してすぐに統合できる、本当に簡単なプロトコルです。多くのテクノロジーには、CAS サーバーと連携する多くの CAS クライアントがあります。オープンソースで無料ですが、必要に応じて有料プロバイダーを利用することもできます。

于 2014-11-24T11:56:36.003 に答える