2

APIM によって生成された JWT を使用して、セカンダリ ユーザー ストアにすべてのクレームを含めたいと考えています。現在のタスクには暗黙的な認証を使用しているため、ユーザーは IS に対して認証を受ける必要があります。JIT プロビジョニングによるフェデレーション認証を使用しています。

有効にしました:

<ClaimsRetrieverImplClass>org.wso2.carbon.apimgt.impl.token.DefaultClaimsRetriever</ClaimsRetrieverImplClass>

そして設定:

<ConsumerDialectURI>http://wso2.org/claims</ConsumerDialectURI>

そして有効にしました:

<EnableTokenGeneration>true</EnableTokenGeneration>

ただし、生成される JWT にはユーザーのデータは含まれず、エンドユーザーを含む標準のゲートウェイ クレームのみが含まれます。

ユーザーが DB に作成され、ユーザーのクレームがテーブル UM_USER_ATTRIBUTE に格納されていることを確認しました。プライマリ ユーザー ストア (フェデレーションされていない) では、UM_USER_ATTRIBUTE が空で、UM_CLAIM が入力されていることに気付きました。JIT プロビジョニングが、ClaimsManager によってチェックされていないテーブルにデータを配置している可能性はありますか?

ユーザーのクレーム (電子メールなど) を JWT に表示するにはどうすればよいですか?

IS 5.0.0 APIM 1.8.0

4

1 に答える 1

1

興味のある方のために、私の問題を解決するための 2 つのヒントを紹介します。

  1. データがプライマリ ユーザー ストアから取得されている場合は、より多くの成功を収めることができました。セカンダリ ユーザー ストアを使用してもうまくいかないという確信はありませんが、プライマリ ユーザー ストアに切り替えた後にのみ成功し、元に戻すテストは行っていません。

  2. JWT 構成は、KeyManager の役割を実行しているサーバーで行う必要があります。この場合、IS が KeyManager として機能しているため、IS サーバーの api-manager.xml の構成を変更する必要があります。

于 2015-07-07T17:08:38.573 に答える