2017-10-13 2 views
0

私は現在、認証と認可を実装する必要があるasp.net MVC 5ソリューションに取り組んでいます。このソリューションには、すべての要求に対してユーザー名とパスワードを取得する「重い作業」を管理する外部サービスがあり、成功した検証では、コントローラーの属性と一致するユーザーのアクセス許可(役割)を持つトークンを戻します。アイデンティティのないasp.net MVCでカスタム認証/認可を実装するにはどうすればよいですか?

外部サービスへのリクエストは、私のソリューションへのリクエストごとに行う必要があります。どのように私はasp.net MVC 5のソリューションをexisingで簡単な方法でこれを実装することができますか?私はアイデンティティとオーリンを見てきましたが、達成しようとしているものが過度に肥大していると感じています。私はまた、フォーム認証についていくつかの情報を見つけましたが、非推奨と思われますか?

私が試してみましたワークフローは、このようなものです:

ユーザー要求コントローラ。コントローラーには、「Require(Roles = "IT")」のような属性が付けられています。 IauthenticationFilterを実装し、OnAuthenticationでサービスを呼び出して、ユーザーの要求を確認します。リターンから、私は、ユーザーが実際に自分が誰であるか、またコントローラーにそのアクションを入力することが許可されていることを確認します。

私はカスタム認証ソリューションの実装方法に関する確固たる情報を見つけるのに苦労しています。ベストプラクティスはありますか?

ありがとうございます!

+0

あなたは[IdentityServer4](http://docs.identityserver.io/en/release/)みました? – rmjoia

+0

基本的に私たちは完全なアイデンティティソリューションを重い持ち上げと管理を行うサービスとして展開しています。しかし今、我々はこれを使用する必要がある小さなmvcソリューションを持っています。それで、私が探しているのは、MVCに各リクエストのために指示する方法のほうが、アイデンティティ・サーバーにIDではなく資格証明を求めることです。 –

+0

あなたがすでに言ったように、私はカスタムを実装することです。ベストプラクティスについては、主に意見に基づく質問ですので、たくさんの情報が得られます。または[IDなしでASP.NET認証をカスタマイズする](https://mva.microsoft.com/en-us/training-カスタム/カスタム - asp-net-authentication-with-identity-8647)、[カスタム認証(MVC5)の実装](https://stackoverflow.com/questions/39612257/implementing-custom-authentication-mvc5)アイデンティティサーバーと、申し訳ありませんが、多くを助けることはできません:( – rmjoia

答えて

2

MVCは、ASP.NETのインターフェイスIPrincipalIIdentityに基づいて構築されています。これらのインターフェイスを実装する場合、MVCの既存の[Authorize]/[AllowAnonymous]属性機能を利用でき、ユーザー/ロール以外の機能が必要な場合にのみ拡張できます。

ここで実装を繰り返すことはありません。これらのインターフェイスを正しく実装する方法についてはいくつかの記事があります(ASP.NET/MVCのApplication_PostAuthenticateRequestイベントで設定する必要があります)。

+0

情報ありがとうございます。私はそれを見て! –

関連する問題