Open棟梁Project - マイクロソフト系技術情報 Wiki
外部ログイン・プロバイダを使用して外部ログインを簡単に実装できるが、
(プロトコルを理解してライブラリを自作するより数段楽ではあるものの)
実際は、そんなに簡単ではなかったりする。
Microsoftアカウント以外は今の所上手く言っていない。
プロキシを使用しない外部ネットワークから実行してみてダメなら調査が必要。
外部ログイン・プロバイダの使用するクレームベース認証は、現時点では、OAuth(正確には、OAuth2.0)が主流である模様。
しかし、過去には、GoogleのOpenIDの外部ログイン・プロバイダが存在しており、
最近OAuthに置き換えられたことを考えると、将来的には、OAuthが、
OpenID Connectに置き換えられる。などと言った可能性はある。
以下の手順に従い、実装できる。
Microsoftは、「support the Microsoft Account authentication workflow」とプロトコルを明言していない。
今の所、OAuth 2.0を使用しているもよう。
今の所、OAuth 2.0を使用しているもよう。
今の所、OAuth 2.0を使用しているもよう。
ほぼ、AccountController?.ExternalLoginCallback?周辺で完結する。
既定ではClaimの保存処理は実装されていないので自分で実装する必要がある。
await UserManager.AddClaimAsync(user.Id, claim);
外部ログインした後に、E-mailアドレスを使用してユーザ登録すると、
重複で、サインアップによるパスワード登録ができないため
通常ログインができなくなるという問題(?)もある。
ExternalLoginCallback?の条件分岐で、
外部ログインがある時とない時で動きが違う。
別のログイン手段を持たない場合は、
外部ログインを削除できない仕様である模様(要確認)。