NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Azure Active Directory で簡単ユーザー認証

Azure上にもActiveDirectoryがあることはご存知でしょうか。このAzureADの紹介としてよく聞く話は以下の感じでしょうか。

  1. アプリケーションの認証をAzureADに任せられます
  2. オンプレのActiveDirectoryと連携できます
  3. 多要素認証が可能です

それ以外にもAzure アクセス制御(Access Control Service略してACS)という今にも消えてしまいそうな(AzureADに移行される予定)機能もありますが、メインは上の3つだと思います。

オンプレのActiveDirectoryが出てきてしまうと気軽に試すにはハードルが高いので、オンプレ連携は後回しにしてまずはAzureADだけでどれぐらい簡単にユーザー認証ができるのかをご紹介したいと思います。

 

まずは以下の図をご覧ください。

f:id:nextscape_blog:20210909204251p:plain

AzureADを利用した場合の認証フローのイメージになります。(イメージです!正確じゃないです!)
背景が緑色の箇所がAzureADに処理を任せている部分です。

認証機能を実現するためには、Id/Passwordを入力する画面と、認証ロジックが必要ですがその部分をまるっとAzureADに任せられるという感じです。
緑色の箇所を手で覆って、丸々なくなった場合を考えてみてください。認証がないWebアプリですよね。

では早速やってみましょう。

AzureActiveDirectoryを作る

Azure管理ポータルの新規ボタンクリックで下図のように選択し、「カスタム作成」をクリックします。

f:id:nextscape_blog:20210909204400p:plain

新規のディレクトリ情報を入れていきます。
ここでは

  • 名称:uesaka-directory
  • ディレクトリ名:uesaka01
  • 国/地域:日本

と入力しました。

f:id:nextscape_blog:20210909204432p:plain

次に、ユーザーを登録します。作ったばかりのディレクトリから、ユーザーをクリックします。

f:id:nextscape_blog:20210909204456p:plain

下段の「ユーザーの追加」をクリックして、ユーザー情報を入力します。
ここでは次のように入力しました。

  • ユーザーの種類:組織内の新しいユーザー
  • ユーザー名:testuser@uesaka01.onmicrosoft.com
  • 名:たかし
  • 姓:うえさか
  • 表示名:うえさかたかし
  • ロール:ユーザー

入力していくと、最後に一時パスワードの取得画面になります。作成ボタンをクリックしてください。
すると、生成されたパスワードが画面に表示されます。このパスワードをメモっておきます。


 

f:id:nextscape_blog:20210909204524p:plain

 

この画面では一時パスワードを送信するメールアドレスを指定することができます。
つまり、アプリケーションにアクセスするユーザーが増えたとき、そのユーザーに一時パスワードを送信する運用のための機能ですね。

 

f:id:nextscape_blog:20210909204550p:plain

Azure側の準備はこれでおしまいです。それでは認証を委譲するWeb画面を作りましょう。

認証をAzureADに任せるWebアプリケーションを作る

ASP.NET Webアプリケーションを選びます。

f:id:nextscape_blog:20210909204618p:plain

次のダイアログで「認証の変更」ボタンをクリックします。ここが今回のポイントになります。

認証の種類を「組織アカウント」にします。そしてドメインのところに最初にAzureADを作ったときに指定した「ドメイン名.onmicrosoft.com」を入力して下さい。
そのほかはそのままです。

f:id:nextscape_blog:20210909204644p:plain

OKボタンを押すと、認証画面が突然立ち上がります。この画面では、AzureADに対する管理者権限を持つユーザーで認証する必要があります。
さきほど作ったユーザーは管理者ではありませんので、ここではAzureADを作ったときのMicrosoftアカウントで認証しておいてください。
(管理ポータルにログインするときのMicrosoftアカウントです)

無事に認証が終わってダイアログに戻ると、組織認証としてさきほど入力したドメインが表示されているはずです。MVCを選択の上OKボタンをクリックして、プロジェクトを作成してください。

f:id:nextscape_blog:20210909204709p:plain

さて、これだけでもう認証機能が完成しました!めちゃくちゃ簡単ですね。

テストする

F5押して早速実行してみましょう。
すると、いきなり認証画面が現れるかと思います。色々と認証しまくっているとご覧のとおりIDの履歴が表示されちゃいますが、今回は「別のアカウントを使用する」を選択します。

f:id:nextscape_blog:20210909204743p:plain

ユーザー作成時のIdと、一時パスワード作成ボタンで自動生成されたパスワード(メモっておいたやつ)を入力します。
良く見ると、

「職場または学校アカウントでサインインする」

と記載されていますね。組織認証にしっかりなっています。

f:id:nextscape_blog:20210909204813p:plain

すると、パスワードを一時的なものから正式なパスワードに更新する画面が出てきます。
当たり前っちゃ当たり前の機能ですが、これを自前で実装するのはかなり面倒です。

f:id:nextscape_blog:20210909204840p:plain

サインインすると、無事に初期画面が表示されました。

f:id:nextscape_blog:20210909204906p:plain

なんて簡単なんでしょうか!!びっくりしますね。

いかがでしたでしょうか。とても簡単なことがお分かりいただけたかと思います。
AzureADには
    1. アプリケーションの認証をAzureADに任せられます
    2. オンプレのActiveDirectoryと連携できます
    3. 多要素認証が可能です
という機能がありますが、今回は1番目をご紹介しました。2番、3番目についても引き続きご紹介していきたいと思います。