SlideShare a Scribd company logo
ASP.NET CoreとAzure AD B2C
を使ったサクっと認証
2017/10/21 Fukuoka.NET Conf
@tsubakimoto_s
2
自己紹介
•松村 優大 (MLBお兄さん)
•株式会社オルターブース
• Chief Technical Architect
•C# / PHP / Azure / AWS
•Microsoft MVP for VSDT
所属 コミュニティ
.NET Core
Version Release Date
1.0 2016/06/27
1.1 2016/10/24
2.0 2017/05/10
5
https://github.com/dotnet/core/blob/master/release-notes/download-archive.md
Webアプリケーションの認証
•いわゆるログイン
•メールアドレスとパスワード
•認証方式の多様化(OAuth)
• Twitter
• Facebook
• Google
• Microsoft
• etc...
6
7
ログイン方法はメールアドレスと
パスワードでいいですよね?
FacebookとかTwitterのアカウント
でもログインできるようにして。
ぐぬぬ
例)Facebook認証を作る
8
https://developers.facebook.com/docs/facebook-login/web
AppServer
JavaScript
C#
プロバイダ毎に作るのは大変
9
ASP.NET Core Identity
• https://github.com/aspnet/Identity
• https://github.com/aspnet/Security
•プロバイダ毎の認証方式の違いを吸
収したライブラリ
•ASP.NETにもある
10
11
作ったぞい。
認証サーバーを管理したくない。
ぐぬぬ
12
作ったぞい。
認証サーバーを管理したくない。
⇒PaaSの出番
ぐぬぬ
Amazon Cognitoが定番?
13
• PaaS
• OAuthに対応
• 独自認証(ID/PW)も可能
• データストア付き
• ユーザー属性の拡張可能
https://github.com/aws/aws-sdk-net
Azure Active Directory B2C
•2016年7月に一般提供(GA)
•ID管理ソリューション
• ソーシャルアカウント
• エンタープライズアカウント
• OpenIDまたはSAML
• ローカルアカウント
• メールアドレスとパスワード
•「AAD B2C」と略す場合もある
14
保存済ユーザー
数 価格/月
~50,000 無料
~950,000 ¥0.12
~9,000,000 ¥0.09578
~40,000,000 ¥0.07977
50,000,000~ ¥0.06426
月間認証回数
15
Azure Active Directory B2C
数 価格/月
~50,000 無料
~950,000 ¥0.29
~9,000,000 ¥0.22
~40,000,000 ¥0.15
50,000,000~ ¥0.0714
https://azure.microsoft.com/ja-jp/pricing/details/active-directory-b2c/
※多要素認証を行うと、認証毎に ¥3.06円が課金される
ASP.NET Core x AAD B2C
1. AAD B2Cのテナントの作成
2. サブスクリプションにリンク
3. アプリケーションの登録
4. ポリシーの作成
• サインインまたはサインアップ
• パスワードのリセット
5. プロジェクトの作成
• ASP.NET Core 2.0
16
https://azure.microsoft.com/ja-jp/resources/samples/active-directory-b2c-dotnetcore-webapp/
アプリケーションの登録
17
ポート番号とパスを指定
サインアップまたはサインインのポリシー
•IDプロバイダー
•サインアップ属性
•アプリケーション要求
•多要素認証の有無
•UIのカスタマイズ
18
パスワードのリセットのポリシー
•IDプロバイダー
•アプリケーション要求
•多要素認証の有無
19
ASP.NET Coreの作成
20
ASP.NET Coreの作成
21
AAD B2C認証のためのクラス
22
AAD B2Cの情報
AAD B2C認証のための振る舞いを定義
appsettings.jsonの内容を保持する
appsettings.json
{
"AzureAdB2C": {
"Instance": "https://login.microsoftonline.com/tfp/",
"ClientId": "(AAD B2CのアプリID)",
"CallbackPath": "/signin-oidc",
"Domain": "fukuten1021b2c.onmicrosoft.com",
"SignUpSignInPolicyId": "B2C_1_SiUpIn",
"ResetPasswordPolicyId": "B2C_1_SSPR",
"EditProfilePolicyId": "B2C_1_SiPe"
}
}
23
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(sharedOptions =>
{
// do something
})
.AddAzureAdB2C(options =>
Configuration.Bind("AzureAdB2C", options))
.AddCookie();
services.AddMvc();
}
24
サインアップ画面
25
確認メールが届く
26
AAD B2Cのユーザー一覧
27
UIのカスタマイズ
•ポリシー毎にUIカスタマイズ可能
•publicな静的コンテンツを用意
28
https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-reference-ui-customization-helper-tool
応用)Facebookでログイン
1. Facebook Developerでアプリ登録
• Facebookログインの機能を利用
• シークレットキーが必要
2. Facebookプロバイダーの追加(B2C)
3. ポリシーの変更(B2C)
• サインアップまたはサインイン
• IDプロバイダーにFacebookを追加
29
https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-setup-fb-app
まとめ
•AAD B2Cは、B2C向けのWebサー
ビスの認証機構に向いている
•独自認証、OAuthをサポート
•ASP.NET CoreにはAAD B2Cの
テンプレートがある
•Cognitoより使いやすい (個人の感想)
30
ありがとうございました
31

More Related Content

PDF
分散型IDと検証可能なアイデンティティ技術概要
PDF
Azure ADとIdentity管理
PDF
Azure AD B2CにIdPを色々と繋いでみる
PPTX
AAD B2Cでゆるっと真面目に認証しよう【Interact2019】
PDF
今なら間に合う分散型IDとEntra Verified ID
PDF
OpenID ConnectとAndroidアプリのログインサイクル
PDF
API提供におけるOAuthの役割 #apijp
PDF
OpenID ConnectとSCIMの標準化動向
分散型IDと検証可能なアイデンティティ技術概要
Azure ADとIdentity管理
Azure AD B2CにIdPを色々と繋いでみる
AAD B2Cでゆるっと真面目に認証しよう【Interact2019】
今なら間に合う分散型IDとEntra Verified ID
OpenID ConnectとAndroidアプリのログインサイクル
API提供におけるOAuthの役割 #apijp
OpenID ConnectとSCIMの標準化動向

What's hot (20)

PPTX
CloudFront経由でのCORS利用
PDF
Azure Monitor Logで実現するモダンな管理手法
PPTX
Hybrid Azure AD Join 動作の仕組みを徹底解説
PDF
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
PDF
OAuth2.0によるWeb APIの保護
PDF
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
PDF
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
PDF
AAD authentication for azure app v0.1.20.0317
PDF
これからのネイティブアプリにおけるOpenID Connectの活用
PDF
OpenID Connect入門
PDF
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
PDF
SSIとDIDで何を解決したいのか?(β版)
PPTX
Keycloak入門
PDF
Keycloak拡張入門
PPTX
JAZUG12周年 俺の Azure Cosmos DB
PDF
ドメイン駆動設計のための Spring の上手な使い方
PPTX
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
PPTX
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
PDF
Djangoフレームワークのユーザーモデルと認証
PDF
ドメイン駆動設計 失敗したことと成功したこと
CloudFront経由でのCORS利用
Azure Monitor Logで実現するモダンな管理手法
Hybrid Azure AD Join 動作の仕組みを徹底解説
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
OAuth2.0によるWeb APIの保護
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
AAD authentication for azure app v0.1.20.0317
これからのネイティブアプリにおけるOpenID Connectの活用
OpenID Connect入門
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
SSIとDIDで何を解決したいのか?(β版)
Keycloak入門
Keycloak拡張入門
JAZUG12周年 俺の Azure Cosmos DB
ドメイン駆動設計のための Spring の上手な使い方
.NETラボ2021年9月 Blazorのカスタム認証を通じてDIの便利さを学ぶ
詳説!Azure AD 条件付きアクセス - 動作の仕組みを理解する編
Djangoフレームワークのユーザーモデルと認証
ドメイン駆動設計 失敗したことと成功したこと
Ad

Similar to ASP.NET CoreとAzure AD B2Cを使ったサクっと認証 (20)

PDF
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
PPTX
Bot frameworksdk
PDF
Azure DevOpsとセキュリティ
PDF
[Japan Tech summit 2017] APP 003
PDF
[POST.Dev Japan] VS Code で試みる開発体験の向上
PDF
Azure の ID 管理サービスに LINE ログインを組み込もう
PDF
Azure Static Web Apps を試してみた!
PPTX
Goで作って配布するAzureコマンドラインユーティリティ
PDF
マイクロサービス開発が捗る Project Tye
PDF
そろそろレガシーな.Net開発をやめなイカ?
PDF
Application development with c#, .net 6, blazor web assembly, asp.net web api...
PPTX
20110924 shizuoka azure-forsharing
PDF
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
PDF
IDaaS を正しく活用するための認証基盤設計
PDF
Visual Studio と Azure で Python を始めよう
PDF
[Japan Tech summit 2017] SEC 006
PDF
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
PDF
インフラエンジニアに送る Visual Studio Code ~Azure 編~
PDF
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
Bot frameworksdk
Azure DevOpsとセキュリティ
[Japan Tech summit 2017] APP 003
[POST.Dev Japan] VS Code で試みる開発体験の向上
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure Static Web Apps を試してみた!
Goで作って配布するAzureコマンドラインユーティリティ
マイクロサービス開発が捗る Project Tye
そろそろレガシーな.Net開発をやめなイカ?
Application development with c#, .net 6, blazor web assembly, asp.net web api...
20110924 shizuoka azure-forsharing
IDaaS を正しく活用するための認証基盤設計 ~Azure Active Directory の構成パターン詳細~
IDaaS を正しく活用するための認証基盤設計
Visual Studio と Azure で Python を始めよう
[Japan Tech summit 2017] SEC 006
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
インフラエンジニアに送る Visual Studio Code ~Azure 編~
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Ad

More from Yuta Matsumura (20)

PDF
「自分のとこでは動くけど…」を無くす devcontainer
PDF
チーム開発で徐々にコード品質をあげていく取り組み
PDF
.NETのサポートポリシーのおさらい #csharptokyo
PDF
App Modernization for .NET
PDF
分かったうえではじめるCI/CD
PDF
VSCodeで始めるAzure Static Web Apps開発
PDF
いつでもどこでも .NET
PDF
.NET アプリを改善して実践する継続的インテグレーション
PDF
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
PDF
Blazor Server テンプレート解説
PDF
The Twelve-Factor (A|M)pp with C#
PDF
改めて C# でできることを振り返る
PDF
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
PDF
忙しい人のための .NET Conf 2019 まとめ
PDF
.NET Conf の歩き方
PDF
PHPカンファレンス福岡2019 閉会式
PDF
PHPカンファレンス福岡2019 開会式
PDF
これから始める Bot Builder 開発のコツと舞台裏
PDF
ASP.NET Core 2.x Identityについて
PDF
C# runs anywhere, make anything
「自分のとこでは動くけど…」を無くす devcontainer
チーム開発で徐々にコード品質をあげていく取り組み
.NETのサポートポリシーのおさらい #csharptokyo
App Modernization for .NET
分かったうえではじめるCI/CD
VSCodeで始めるAzure Static Web Apps開発
いつでもどこでも .NET
.NET アプリを改善して実践する継続的インテグレーション
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
Blazor Server テンプレート解説
The Twelve-Factor (A|M)pp with C#
改めて C# でできることを振り返る
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
忙しい人のための .NET Conf 2019 まとめ
.NET Conf の歩き方
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 開会式
これから始める Bot Builder 開発のコツと舞台裏
ASP.NET Core 2.x Identityについて
C# runs anywhere, make anything

ASP.NET CoreとAzure AD B2Cを使ったサクっと認証