7

情報のオーバーフローに少し戸惑っており、信頼できるクライアントのみに API アクセスを提供することをサポートできる最善の方法についてのガイダンスが必要です。

現在の環境:

現在、Apache Shiro を介してユーザー認証/承認を処理する集中型サーバーがあります。

トークンを認証および管理するために、集中型サーバーと内部的に通信する社内 API があります。(したがって、SSO を有効にします)。

クライアント アプリケーションと API 間の通信は SSL で保護されています。
トークンベースの認証が使用されます。

目標:

私たちの目標は、サードパーティのアプリケーションと API が集中認証サーバーと通信できるようにすることです。しかし、私たちの主な懸念はフィッシングです。「有効な」当事者のみが私たちと通信することを望んでおり、できれば第三者側で認証情報を公開することを許可しないためです.

質問:

1- そのようなアーキテクチャを実装する最良の方法は何ですか? OAuth を使用する必要がありますか? はいの場合、Shiro と統合する良い方法はありますか?

2- OAuth はモバイル アプリケーションでもうまく機能しますか? (例: アプリケーションが信頼されていない限り、REST API へのアクセスを制限する)

3- Java で使用できる OAuth プロバイダー ライブラリはありますか、それとも OAuth は自分で実装しなければならない単なる「標準」ですか? (たとえば、RESTful API の実装など)

4- SSO は OAuth で簡単にサポートされますか?

漠然とした質問で申し訳ありません。一般的なガイダンスとアドバイスが必要です。

4

2 に答える 2

2
  1. モバイル アプリは OAuth で問題なく動作します。
  2. OAuth を使用して SSO を有効にすることができます。

OAuth サーバー/プロバイダーのセットアップ方法に関する情報 -効率的な OAuth2.0 サーバー/プロバイダーはどのように機能しますか?

あなたが言うように、ユーザーにアプリの承認を求める必要があります (アプリが要求するアクセス許可を受け入れる/拒否する) - OAuth 2.0 の完璧なユースケースです。

OAuth の仕組みについてさらに詳しい情報が必要な場合は、お気軽にフォローアップしてください。

PS - Shiro との統合についてはわかりません。

于 2013-05-10T14:54:42.683 に答える
2

ここに私の答えを順番に示します。

  1. OAuth 2.0 が最適です。OAuthに行くべきだと思います。
  2. 絶対そうです。
  3. ライブラリがあります。Apache OltuGoogle クライアント ライブラリ。
  4. OAuth の上に構築された OpenID Connect 仕様を使用して SSO を実装できます。
于 2013-05-13T17:17:09.830 に答える