誰かがSpring Cloud Security(OAuth2を使用)で「トークン交換」手法を実装する方法を知りたいかどうかを知りたいと思います。Spring Cloud SecurityでOAuth2「トークン交換」を実装する方法
現在、私は、ZuulProxyを使用してOAuth2トークンを「リレー」してSSOを実装するために、マイクロサービス環境で「トークンリレー」技術を実装しました。これは素晴らしいことですが、すべてのマイクロサービスが同じclientIdを使用していることを意味します(ZuulProxyは、authorization_code許可タイプと提供されたclientIdのみでトークンを中継します)。 しかし、マイクロサービス内のコールでは、トークンを「交換」したいと思います。これは、ZuulProxyがリレーするトークンが、マイクロサービスAのクライアントとしてMicroservice Aを認証/承認するために必要なトークンではないことを意味する場合があります。
現在、「SpringブートとSpringセキュリティOAuth2では、シングルサインオン、トークンリレー、トークン交換などの一般的なパターンを実装するシステムを迅速に作成できます。 https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-03
私が言ったように:私は、彼らが意味リファレンスドキュメントのOAuth2のこの拡張の実装で「トークン取引所」と、私は必要なものは基本的である、この仕様で説明していることと思います(http://cloud.spring.io/spring-cloud-security/spring-cloud-security.html)
私はSSOとトークンリレーの使い方を理解していますが、リファレンスドキュメントで「トークン交換」を実装する方法についてはこれ以上説明することはできません。私は実装例も見つけられませんでした。
詳しい情報や例はどこにありますか?
ありがとうございます!
同意。すべてのマイクロサービスでclient_idを再利用するのは間違っています。最悪の部分(私の意見では)は、マイクロサービスが他のクライアントによって使用されるのを防ぐということです。独自のclient_idを持つ別のssoクライアントがあるとしたら、既存のマイクロサービスは使用できません。これが対処されることを望みます。トークン交換の作業がまだ完了していないようですが、まだ完全ではありません。https://github.com/spring-projects/spring-security-oauth/pull/957 – sdoxsee
一見すると、私は同意しますあなたと。しかし、お客様の視点から見ると、彼らはあなたのAPIゲートウェイを特異点として見ています。彼らの視点から見ると、唯一のAPIがあります。その背後に複数のサービスがあるという事実は実装の詳細であり、必ずしも顧客にバブルアップしたいとは限りません。サービスを2つのサービスに分割するとどうなりますか?新しいリソースIDに付与されたトークンを誰にでも再発行させる必要がありますか? –