2017-12-12 5 views
1

私はWSO2 ISおよびAPIマネージャを使用しており、クライアントが取得するアクセストークンスコープを制限したいと考えています。例えばWSO2はクライアントアプリケーションによってスコープを制限します

client_key_1scope_for_client_key_1範囲とclient_key_2scope_for_client_key_2とアクセストークンを要求することができるだけでアクセストークンを要求することができます。しかし、クライアント番号scope_for_client_key_2のトークンを要求しようとすると、403などのメッセージが表示されます。

WSO2で設定する方法はありますか?

+0

スコープへのアクセスは、ユーザーの役割によって制限されます。本当のユースケースについて説明すれば、これに答えるのがより簡単になります。 – Bee

+0

実際の使用法は、私は複数のクライアントアプリケーションとAPIを持っていることです。一部のAPI機能は、アクセストークンの特定のスコープに依存します。この機能を使用するクライアントアプリケーションは1つのみである必要があります。つまり、そのようなスコープでアクセストークンを取得できるクライアントアプリケーションは1つだけです。また、スコープはクライアントアプリケーションとAPIの間に追加の認証固有の情報を渡す方法であるため、APIは他のものに応じて機能を提供するようにすることはできません。 –

答えて

0

これを達成するには2つの方法があります。しかし、これはWSO2でOOTBがサポートされていないため、カスタムJavaコードを記述する必要があります。

1)新しいスコーププレフィックスを持つ新しいスコープ発行者を導入する。

デフォルトロールベースのスコープ発行者はhereです。これを拡張して、新しいスコーププレフィックスを使用して独自のスコープ発行者を記述することができます。実装内では、クライアントキーマッピングも確認できます。次に、すべてのスコープに新しいプレフィックスを設定できます。

jarがOSGiでない場合は、jarを<APIM_HOME>/repository/components/lib/に追加すると、クラスが自動的に選択されます。 OSGiの場合は、<APIM_HOME>/repository/components/dropins/にjarファイルを追加します。あなたは<APIM_HOME>/repository/components/patches/patch0001/にそれを追加することで、あなたのスコープ

カスタマイズdefault classにプレフィックスを使用するjarファイルを構築し、パックにパッチを適用したくない場合は

2)、デフォルトのスコープの発行者をカスタマイズします。

+0

ありがとう、これは私が探していたものです –

関連する問題