ここでのモチベーションは簡単にログインシステムを作る方法を探っていく。結論から言うと、Azure Active Directory を使うとかなり簡単にログインシステムはできる。
その上、twitter や facebook や google の ID からログインできるようにもなる。一つ一つ作っていたら馬鹿らしいところが簡単にできる。この部分を MS に掴まれてしまっていいのか?という問題はあるが。
B2C と B2B があるが、対個人のアプリを作るときはB2C をつかう。B2B はまだ使ったことがない。
わかりづらいのはテナントという概念。テナントを作って、そこにユーザが増えていくみたいだ。詳しく見ていこう。
以下、いろいろ書いているが、簡単に言うと Microsoft の公式ドキュメントを見たほうが良い。この公式ドキュメントは予期できているが、どこをみたらいいのかわからなくなるのも事実ではあるけど、やっぱり公式の情報を見たほうがいい。
Azure AD テナント?ディレクトリ?
どうもテナントなるものを作らないといけない。いままで、ほぼ一人で Azure Portal を使っていたので気が付かなかったが、Office 365の会社のテナントと他社で Teams で参加したときのテナントなるものにすでに参加していた。Azure Portal を使う場合、規定のディレクトリなるものにログインして使っていたようだ。
テナント=ディレクトリ?なのかよくわからないが、ポータルの設定ではディレクトリという言葉が使われている。この辺の歴史的な話は技術の話じゃないので理解するのに非常に時間がかかる。「テナントが含まれているディレクトリに切り替える必要があります」とあるので、ディレクトリが上位概念なのか、、、本当にここは分かりづらい。というかここの概念なしに先に進めないのにその説明がない。
チュートリアル:Azure Active Directory B2C テナントの作成
Azure Azure Directory B2Cここを基本的にやればテナントというか portal でアクセス可能なディレクトリができる。この通りにやると、いつのまにか、ディレクトリが切り替わってしまっていた。「Azure AD B2C をお気に入りとして追加する」というのが最後にあるが、これも省略可能と書いてあるが、B2C の機能をほぼ毎回見失うので追加したほうが良い。
何を言っているか分かりづらいと思うが、できたテナントには最終的に人が増えていく。その各人にどんな権利があるかわからないが、、、どうも VM も作れるみたいなのだ。意図的に開発者をそこに増やして、VM をつくってアクセスさせる、、、ということもできそうである。
アプリを作ってユーザを増やす場合は(おそらく)制限されたユーザとして増えていくのだろう。
アプリの入り口を作る
ここを参考にフローなるものを作る。これ、要はログインシステム=アプリの入り口。ユーザーフローをテストすると、新しくできたこのテナントにユーザが増えます。ユーザにどんな権利を与えるか、、、という設定がないみたいだけど。
パスワードのリセットも作ることができる。あと、プロファイルを設定するとあとでユーザがそそのプロファイルの編集をできるようになります。
アプリと連動させる(まだやってない)
これだけだと入り口を作っただけなので、アプリと連動させないといけない。これセッション管理必要だよね。どうすれば?サンプルだと flask をつかっているみたい。
ソースを見る限りでは Azure Active Directory に一旦飛んでログインした後に flask の session に情報が入るみたい。それを index の template にいれてやると Edit Profile にいけるし、Logout もできる(らしい)。