シングルサインオンサービスのOktaをMVC5のログインに使う羽目になったのでメモ。

Oktaアカウント作成

Developerアカウントを作成しときます。

プロジェクト作成

Framework 4.5/ ASP.NET Application

MVC

Change AuthenticationでNo Authentication

F5で動作確認

Controllers\HomeControllerに[Authorize]をつける。

1
2
3
4
5
6
namespace OktaTest.Controllers
{
    [Authorize]
    public class HomeController : Controller
    {
        public ActionResult Index() {

動かなくなる

Oktaでアプリ作成

こちらを参考にOkta上にWS Federation なアプリを登録します。

Oktaアプリ設定

いろいろありますが、

  • Application label:任意
  • Web Application URL:開発環境URL
  • ReplyTo URL:開発環境URL
  • Audience Restriction:Web Application URLと同じ

の4点だけ設定します。

Next→ユーザー等の設定→Next→Done

アプリができたらSignOnタブのView Setup Instructionsでweb.config用の設定例が見れるので、web.configに組み込みます。

これで実行すると、Oktaにリダイレクトされて認証後、承認された状態でアプリに戻ってきて、先ほどのエラー画面は消え去ります。

WSFederationAuthenticationModuleとSessionAuthenticationModuleで上手い事やってくれてるんでしょうが、おてがるですね。どんな仕組みなんですかね?

OWIN?なにそれ?