Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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/r...
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
•プロバイダ毎の認証方式の違いを吸
収したライブラリ...
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
• ローカルアカウント
• メールアド...
保存済ユーザー
数 価格/月
~50,000 無料
~950,000 ¥0.12
~9,000,000 ¥0.09578
~40,000,000 ¥0.07977
50,000,000~ ¥0.06426
月間認証回数
15
Azure Act...
ASP.NET Core x AAD B2C
1. AAD B2Cのテナントの作成
2. サブスクリプションにリンク
3. アプリケーションの登録
4. ポリシーの作成
• サインインまたはサインアップ
• パスワードのリセット
5. プロジェ...
アプリケーションの登録
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)",
"C...
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(sharedOptions =>
{
// d...
サインアップ画面
25
確認メールが届く
26
AAD B2Cのユーザー一覧
27
UIのカスタマイズ
•ポリシー毎にUIカスタマイズ可能
•publicな静的コンテンツを用意
28
https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-direc...
応用)Facebookでログイン
1. Facebook Developerでアプリ登録
• Facebookログインの機能を利用
• シークレットキーが必要
2. Facebookプロバイダーの追加(B2C)
3. ポリシーの変更(B2C)
...
まとめ
•AAD B2Cは、B2C向けのWebサー
ビスの認証機構に向いている
•独自認証、OAuthをサポート
•ASP.NET CoreにはAAD B2Cの
テンプレートがある
•Cognitoより使いやすい (個人の感想)
30
ありがとうございました
31
Upcoming SlideShare
Loading in …5
×

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

1,230 views

Published on

https://fukuten.connpass.com/event/63612/

Published in: Technology
  • Be the first to comment

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

  1. 1. ASP.NET CoreとAzure AD B2C を使ったサクっと認証 2017/10/21 Fukuoka.NET Conf @tsubakimoto_s
  2. 2. 2 自己紹介 •松村 優大 (MLBお兄さん) •株式会社オルターブース • Chief Technical Architect •C# / PHP / Azure / AWS •Microsoft MVP for VSDT 所属 コミュニティ
  3. 3. .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
  4. 4. Webアプリケーションの認証 •いわゆるログイン •メールアドレスとパスワード •認証方式の多様化(OAuth) • Twitter • Facebook • Google • Microsoft • etc... 6
  5. 5. 7 ログイン方法はメールアドレスと パスワードでいいですよね? FacebookとかTwitterのアカウント でもログインできるようにして。 ぐぬぬ
  6. 6. 例)Facebook認証を作る 8 https://developers.facebook.com/docs/facebook-login/web AppServer JavaScript C#
  7. 7. プロバイダ毎に作るのは大変 9
  8. 8. ASP.NET Core Identity • https://github.com/aspnet/Identity • https://github.com/aspnet/Security •プロバイダ毎の認証方式の違いを吸 収したライブラリ •ASP.NETにもある 10
  9. 9. 11 作ったぞい。 認証サーバーを管理したくない。 ぐぬぬ
  10. 10. 12 作ったぞい。 認証サーバーを管理したくない。 ⇒PaaSの出番 ぐぬぬ
  11. 11. Amazon Cognitoが定番? 13 • PaaS • OAuthに対応 • 独自認証(ID/PW)も可能 • データストア付き • ユーザー属性の拡張可能 https://github.com/aws/aws-sdk-net
  12. 12. Azure Active Directory B2C •2016年7月に一般提供(GA) •ID管理ソリューション • ソーシャルアカウント • エンタープライズアカウント • OpenIDまたはSAML • ローカルアカウント • メールアドレスとパスワード •「AAD B2C」と略す場合もある 14
  13. 13. 保存済ユーザー 数 価格/月 ~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円が課金される
  14. 14. 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/
  15. 15. アプリケーションの登録 17 ポート番号とパスを指定
  16. 16. サインアップまたはサインインのポリシー •IDプロバイダー •サインアップ属性 •アプリケーション要求 •多要素認証の有無 •UIのカスタマイズ 18
  17. 17. パスワードのリセットのポリシー •IDプロバイダー •アプリケーション要求 •多要素認証の有無 19
  18. 18. ASP.NET Coreの作成 20
  19. 19. ASP.NET Coreの作成 21
  20. 20. AAD B2C認証のためのクラス 22 AAD B2Cの情報 AAD B2C認証のための振る舞いを定義 appsettings.jsonの内容を保持する
  21. 21. 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
  22. 22. Startup.cs public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(sharedOptions => { // do something }) .AddAzureAdB2C(options => Configuration.Bind("AzureAdB2C", options)) .AddCookie(); services.AddMvc(); } 24
  23. 23. サインアップ画面 25
  24. 24. 確認メールが届く 26
  25. 25. AAD B2Cのユーザー一覧 27
  26. 26. UIのカスタマイズ •ポリシー毎にUIカスタマイズ可能 •publicな静的コンテンツを用意 28 https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-reference-ui-customization-helper-tool
  27. 27. 応用)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
  28. 28. まとめ •AAD B2Cは、B2C向けのWebサー ビスの認証機構に向いている •独自認証、OAuthをサポート •ASP.NET CoreにはAAD B2Cの テンプレートがある •Cognitoより使いやすい (個人の感想) 30
  29. 29. ありがとうございました 31

×