Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

外部ログイン・プロバイダを使用して外部ログインを簡単に実装できるが、
(プロトコルを理解してライブラリを自作するより数段楽ではあるものの)
実際は、そんなに簡単ではなかったりする。

プロバイダのプロトコル

外部ログイン・プロバイダの使用するクレームベース認証は、
現時点では、OAuth(正確には、OAuth2.0)が主流である模様。

実装

以下の手順に従い、実装できる。

ライブラリ

Microsoft アカウント

Google アカウント

Facebook アカウント

Twitter アカウント

ハマり所

localhost

プロキシ環境

サービス側の変更

サービス側の

トラブる事が多い。

また、過去GoogleのOpenIDの外部ログイン・プロバイダが存在しており、最近OAuthに置き換えられたことを考えると、
将来的には、OAuthが、OpenID Connectに置き換えられる。などと言った可能性はある。

テンプレート実装の課題

ほぼ、AccountController?.ExternalLoginCallback?周辺で完結する。

E-mailアドレス

Claimの保存

既定ではClaimの保存処理は実装されていないので自分で実装する必要がある。

await UserManager.AddClaimAsync(user.Id, claim);

サインアップと外部ログインの競合

外部ログインした後に、E-mailアドレスを使用してユーザ登録すると、
ユーザIDの重複で、サインアップによりパスワード登録ができないため
通常ログインができなくなるという問題(?)もある。

※ 先に、サインアップして、後で外部ログインを追加すればこの問題は起きない。

管理画面の外部ログインの削除の意味

ExternalLoginCallback?の条件分岐で、外部ログインがある時とない時で動きが違う。
別のログイン手段を持たない場合は、外部ログインを削除できない仕様である模様(確認済)。

外部ログインが失敗する

参考情報


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS