2017-06-28 8 views
0

IdenityServer3で保護されたウェブサイトがあるとします。暗黙的なフローを使用するため、ユーザーは資格情報を要求されます。今私は、このアプリケーションがユーザーに代わって複数の(Web)APIにアクセスする必要があるという要件に直面しています。これらのAPIはロールを使用して保護されています。暗黙のフローですが、複数のAPIにアクセスする必要があります

どうすればよいですか? OpenIdConnectAuthenticationOptionsのResponseTypeに「トークン」を追加することで、すべてのアクセストークンを取得できますか?暗黙的なフロー(Hybrid?に変更する必要がありますか?)と個々のAPIのaccess_tokensを手動で要求し、認証後にそれらをユーザーの主張に追加する必要がありますか?

私はこれにアプローチする方法についてはわかりません。どんな助けでも大歓迎です。

答えて

0

暗黙のフローを使用して、reponse_typeに「token」を追加することができます(「id_tokenトークン」になります)。それはあなたにアクセストークンも与えます。さらに、コールを通過させるためにAPI Authorize属性に必要な可能性のあるクレームを含めるために、これらのAPIが必要とする可能性のあるスコープを指定できます。

アクセストークンとともにアプリケーション内でIdentityServerからの応答が得られたら、Authorizationヘッダーでそのトークンを使用してAPIを呼び出します。

0

ハイブリッドフローに移行することで私の要求を解決することができました。応答タイプについては、 "id_token"、 "token"、 "code"が必要でした。また、「id_token」の他に「トークン」を追加すると、トークンを小さくするためにサーバーの応答からすべてのクレームが削除されるため、ユーザーのクレームを個別の要求で手動で取得し、ユーザーのIDに手動で追加する必要がありました。

関連する問題