情報のオーバーフローに少し戸惑っており、信頼できるクライアントのみに API アクセスを提供することをサポートできる最善の方法についてのガイダンスが必要です。
現在の環境:
現在、Apache Shiro を介してユーザー認証/承認を処理する集中型サーバーがあります。
トークンを認証および管理するために、集中型サーバーと内部的に通信する社内 API があります。(したがって、SSO を有効にします)。
クライアント アプリケーションと API 間の通信は SSL で保護されています。
トークンベースの認証が使用されます。
目標:
私たちの目標は、サードパーティのアプリケーションと API が集中認証サーバーと通信できるようにすることです。しかし、私たちの主な懸念はフィッシングです。「有効な」当事者のみが私たちと通信することを望んでおり、できれば第三者側で認証情報を公開することを許可しないためです.
質問:
1- そのようなアーキテクチャを実装する最良の方法は何ですか? OAuth を使用する必要がありますか? はいの場合、Shiro と統合する良い方法はありますか?
2- OAuth はモバイル アプリケーションでもうまく機能しますか? (例: アプリケーションが信頼されていない限り、REST API へのアクセスを制限する)
3- Java で使用できる OAuth プロバイダー ライブラリはありますか、それとも OAuth は自分で実装しなければならない単なる「標準」ですか? (たとえば、RESTful API の実装など)
4- SSO は OAuth で簡単にサポートされますか?
漠然とした質問で申し訳ありません。一般的なガイダンスとアドバイスが必要です。