1

私のアーキテクチャでは、認可サーバーとしてIdentityServer3を使用しています。JWTのクレームとリソースのクレームの変換

私はクライアント(ウェブアプリケーションとiOSアプリケーション)にリソーススコープを介してアクセスすることを許可するAPIリソースを持っています。

質問1: 私は私のAPIでクレームベース認証を行いたい場合(例:請求が一部のユーザだけが持っていること、CanViewQuestionsと呼ばれる)、べきI:中など、

a)に使用IdentityServer、ユーザーがそのクレームを持っているかどうかを確認してJWTに追加してください。

b)件名(例:userId)のクレームをJWTに入れ、APIでそれを調べてクレーム変換を実行しますか?

私は現在b)をやっていますが、認証サーバー(例:IdSrv)自体でこれを実行する必要があるのだろうか?

おすすめの方法は何ですか?

質問2

私はまた私のAPIリソースへのアクセス権を与えたいこと(特にAzureの労働者)バックグラウンドサービスを使用している場合、私は、クライアントの資格情報は、このサービスにアクセストークンを与えるために流れを使用することができます。 しかし、私はこのサービスに上記の同じ請求をどのように与えることができますか(CanViewQuestions)?私は基本的に、特定のリソースがクレームCanViewQuestionsを必要とすることを保証するAPIを持っていますが、クライアントがウェブアプリケーション(例えば、エンドユーザ)かクライアント(エンドユーザなし)であるかどうかは関係ありません。依頼者がクレームを持っている場合は、行きたい。

私が持っているつもり午前:

a)は、クライアントがサービスであるかどうかを確認するためにクレームベースの変換を使用して、そしてちょうどすべての請求を追加しますか?

b)は、JWTでのクレーム(私はクライアントの資格情報が主張をサポートしていない流れを読んだが)

C)何かを埋め込み?

多くの感謝!

答えて

1

どちらの場合も、API固有のクレームをAPIに追加することをお勧めします。トークン内ではありません。

許可する特定のデータは、保護しようとしているリソースのできるだけ近くに追加する必要があります。

関連する問題