2016-03-18 16 views
1

私はいくつかのアプリケーションを持っています。認証サーバーと認可サーバーとしてIdentityServer3を設定しています。IdentityServer3 - クライアントアクセスの妥当性確認

アプリケーションのいくつかは、すべてのユーザーがアクセスすることはできません....

はそのsuposeます:

  • ユーザー1ユーザー2はAPP5とAppにアクセスすることができAPP4とAPP5
  • 、APP1にアクセスすることができます2

したがって、どのようにしてそのルールを機能させるのが最善の方法ですか? スコープを使用する必要がありますか?または私はより良い唯一の主張を使用する?

+0

私はこれがここに掲示された質問に似ていると信じています。http://stackoverflow.com/a/35565260/1371639 – Karthik

答えて

1

IdentityServerでは、ICustomRequestValidatorインターフェイスを介して要求のカスタム検証を行うことができます。これを実装してエラーを返して、ユーザーがクライアントのトークンを取得できないようにすることができます。

+0

こんにちは、あなたの応答のおかげで....私はこの実装についての例を探していたそれを見つける...あなたは例がありますか? – Jedi31

+0

@ Jedi31サンプルを見つけることができません。デフォルトの実装を確認すると、開始に役立ちます。https://github.com/IdentityServer/IdentityServer3/blob/master/source/Core/Services/Default/DefaultCustomRequestValidator.cs – Moes

1

CustomRequestValidatorは、identityServerレベルでアプリケーションへのユーザーアクセスを制御する必要がある場合にのみ有効です。しかし、それは聞かせすることを決定したアプリですほとんどの時間。 それは、

  • APP1が
  • APP4は、ユーザー1
  • によって
  • APP2をアクセスすることができますユーザー1
  • によってアクセスすることができますし、あなたの質問を言い換えようなものですユーザー2
  • APP5によってアクセスすることができますは、ユーザー1によってアクセスすることができ、2

はとても良いアプローチは、あなたのシナリオに応じているアプリケーションレベルでスコープと要求に基づいて承認ルールを使用して。

+0

私のシナリオを解決してください。私はクレームを使って私のアクセスを検証できるかどうか考えていました。同様に、私はAsp.Netアイデンティティを使用して自分の身元を作成し、次にベアラトークンを使用して認証することができます。私はそれをどうやってできるのかを勉強しています...それは良いアプローチだと思いますか? – Jedi31

+0

私はあなたのコメントをはっきりと知りませんでした。ユーザーをアプリケーションに承認する方法は、開発しているアプリケーションの種類によって異なります。 WebApiを開発している場合は、ベアラトークンを使用して認証を行います。さまざまなタイプのサンプルアプリケーションがここにありますhttps://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/Clients – rawel

+0

OK ...申し訳ありません...私はdummieのようなものですが、kkkkkk ..ユーザーが自分のAsp、Net Mvcアプリケーションにアクセスできるかどうかを検証できます。さて、特定の主張があれば、ユーザーは行動を実行してほしい。ドキュメントを読むと、私はハイブリッドフローを使用しようとしています...そして、今は...私は困っています... kkkkkk – Jedi31