最も簡単な方法は、実際には、ACS によって発行されたトークンに「ロール」クレームを追加することです。現時点ではこれを手動で行っても問題ないと言ったので、ACS ポータルを使用してこれらのルールを作成します。
アプリでは、ロールを含む「Authorize」属性でアクションを装飾するなど、通常のことを行います。
[Authorize(Roles="Administrator")]
public ActionResult Index()
{
var b = User.IsInRole("Manager");
...
}
"Role" クレーム タイプを使用する限り、すべてが機能します。(これはカスタマイズすることもできますが、この方法ですぐに使用できます)。
唯一の課題は、LiveID によるものです。LiveID は一意の識別子を提供します。その識別子を既知のユーザー (電子メールや名前など) にマッピングする方法が必要です。通常、これには 2 段階のプロセスが必要です。最初に認証して一意の ID を取得し、次にユーザーにその情報を尋ねて検証します (たとえば、電子メールを送信することによって)。
他の ID プロバイダーを使用すると、この問題は発生しません。これらのプロバイダーはすべて、電子メールと名前を提供するからです。
上記のルールを書くのは、次のように簡単です。
- メール: joy@mail.com -> 役割: 管理者
- メール: someone@mail.com -> 役割: マネージャー ...
より多くのユーザーまたはより多くのルールがある場合、ポータルは実用的でなくなることが多く、何か他のものが必要になります (たとえば、アプリから API を使用する、スクリプトを使用する、auth10などのツールを使用するなど)。