Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Azure Active Directory B2C/B2B コラボレーションによる
Customer Identity and Access Management (CIAM) の
設計と実装
CD03
ANNO Junichi 安納 順一
...
Agenda
• Azure Active Directory B2B コラボレーション
• Azure Active Directory B2C
• Identity Experience Framework による複雑な認証ワークフローの
...
Identity is control plane
2 種類の Identity
両方のアイデンティティを管理し、
リソースへのアクセスをコントロールする必要がある
アイデンティティを連携させる 3 つの方法
Azure AD B2B Collaboration
Azure AD B2B Collaboration
• Azure Active Directory テナントの無償機能の1つ
• B2B シナリオでの利用を想定している
• 組織と個人を紐づける仕組み
• 外部 Azure AD ユーザー
...
B2B Collaboration の流れ
hogehoge@hoge.com
hogehoge@hoge.com
をゲストとして登録
(参考)OTPユーザーについて
https://docs.microsoft.com/ja-jp/azure/active-directory/b2b/one-time-passcode
B2B 利用の注意点
• 招待できる権限に注意
• 全体管理者
• ゲスト招待元ロール
• 「外部コラボレーションの設定」画面
で指定されたユーザー
• AAD 有償ライセンスは”基本的に”「招待
元」のライセンスが適用される
• 1 ライセン...
条件付きアクセスを使用してゲストにMFAを強制する
「招待」の拡張 – Graph API Invitation Manager
https://docs.microsoft.com/en-us/graph/api/resources/invitation?view=graph-rest-1.0...
「招待」の拡張 – Graph API Invitation Manager
https://docs.microsoft.com/en-us/graph/api/resources/invitation?view=graph-rest-1.0...
Azure AD B2C
Azure AD B2C
• ディレクトリサービス
• カスタマーとのコマースシナリオでの利用を想定している
• 複数のアイデンティティプロバイダーを AAD B2C に紐づける仕組み
• 外部システムと連携するなどの、複雑なログオンプロセスを...
Azure AD B2C って実はこんな感じ…
https://extensions.cpim.windows.net
b2c-extensions-app
Used by AADB2C for storing user
data.
Azure...
外部 Azure AD テナント (Public Preview)
https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-setup-o...
Idp キーで認証基盤
を判定可能
Azure AD B2C から発行されるトークン例
Azure AD B2C から発行されるトークン例
ちなみにお値段は...
Policy = User flow
Policy-based model ー サインアップの例
facebook
google
MS Account
User id
password
surname
email
givenname
address
phone
OK
WELCOME...
認証要求時の URL 例
https://junichiab2c.b2clogin.com/junichiab2c.onmicrosoft.com/oauth2/v2.0/authorize?
p=B2C_1_UF_SignUpOrSignIn...
•
•
•
• 第三者と共有される情報に明示的にオプトイン
• 自分のアイデンティティに関連付けられたすべて
のデータにアクセスする権利
• 自分のアイデンティティに関連するすべてのデー
タの削除を要求する権利
• 違反通知の義務
→ Azure Secu...
https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/basic-age-gating
まずはここをクリック
V2 フロータイプ(プレビュー)
https://docs.microsoft.com/ja-jp/graph/api/resources/user?view=graph-rest-1.0#legal-age-group-property-definitions
主なSNSの利用率(2016年 全体・性年代別)
(出典)総務省情報通信政策研究所「情報通信メディアの利用時間と情報行動に関する調査」
http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h...
SNS での本人情報の信頼性は?
(出典)総務省「社会課題解決のための新たなICTサービス・技術への人々の意識に関する調査研究」(平成27年)
Identity Experience Framework(IEF)
xxxx
独自のワークフロー
マイナンバーカード連携~どのように実装するのか…
お勧めのライブラリ
• OSS Tech 社製 LibJeID for Android
https://www.osstech.co.jp/product/libjeid
今回はこんな方法でテスト実装してみました
https://www.osstech.co.jp/company/staff/hamano
デモ環境のアーキテクチャ
VS Code
Identity Experience Framework
PowerShell on Azure Functions
using namespace System.Net
using namespace System.Text
param($Request, $TriggerMetadata)
# W...
Azure Function を実行し ngrok.exe で API を外部に公開
Logic App の作成
Ngrok で外部公開したURL
前のステップの実行結果(BODY)
カスタムポリシー作成の準備 ~ ポリシーキーの作成
https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-get-started-cus...
Cont. ~
Cont. VS Code 用 Extension のインストール
Cont. ~ AAD に Identity Experience Framework(IEF) アプリを登録する
IEF
IEF
Proxy
Azure AD B2C のアプリケーション登録ではなく、Azure Active Director...
カスタムポリシーを作成する ~ サインインとサインアップ用
https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/archive/mast...
Cont.
<BuildingBlocks>
<ContentDefinitions>
<ContentDefinition Id="api.signuporsignin">
<LoadUri>https://BlobAccount.blob....
REST API を追加する
TrustFrameworkExtensions.xml
<BuildingBlocks> ノードに、以下の <ClaimsSchema> 要素を追加する
<BuildingBlocks>
<ClaimsSchem...
Cont.
<TechnicalProfiles> ノードに、1つ目の以下の <TechnicalProfile> 要素を追加する
<TechnicalProfile Id="REST-API-SignUp">
<DisplayName>Get...
Cont.
<TechnicalProfiles> ノードに、2つ目の <TechnicalProfile> 要素を追加する
<TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
<O...
Cont.
<UserJourneys>
<UserJourney Id="ProfileEdit">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsProvider...
<OrchestrationStep Order="4" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="tru...
Cont.
SignUpOrSignIn.xml
<TechnicalProfile Id=“PolicyProfile”> の <OutputClaims> ノードに、以下の OutputClaim を追加する。
<OutputClaim C...
カスタムポリシーをアップロードする
依存関係があるので、初回は以下の順番でアップロードする
• TrustFrameworkBase.xml
• TrustFrameworkExtensions.xml
• SignUpOrSignin.xml...
実行テスト
Azure AD B2C その他の機能
preview
• リソース所有者パスワード資格情報 (Resource
Owner Password Credentials Grant Type, ROPC) フロー
(Preview)
 RFC6...
ページのカスタマイズ
(参考) OpenID Connect プロバイダーを追加したら CSS にも追加
#Pharaojp_AAD {
background-color: rgb(48, 163, 225);
background-image:
url("http...
多言語の設定
https://<tenant>.b2clogin.com/<tenant>.on
microsoft.com/oauth2/v2.0/authorize
ui_locales=ja
cont.
ui-locales の値に応じて
ロケールが挿入される
カスタムポリシーを使用する
場合、ロケールの識別名は規
定では以下の通りとなること
に注意
・en → en-US
・ja → ja-JP 等
大文字小文字を判別すること
に...
Term of Use の合意用チェックボックスを追加する
<ClaimType Id="TnCs">
<DisplayName>Terms of Service Consent</DisplayName>
<DataType>string</...
Cont.
SignUpOrSignIn.xml
<TechnicalProfile Id=“PolicyProfile”> の <OutputClaims> に TnCs を追加して、アップロード。
<RelyingParty>
<Defau...
CIAM
Azure AD B2C
Azure AD B2B Collabo.
Appendix
- One more identity scenario
- decentralized identity
Your Identity > App(username, password)
play
purchases
education
achievements
interests
work citizenship
u s e r n a m e
l...
Your Identity > App(username, password)
u s e r n a m e
l l l l l l l l
play
purchases education
achievements
interests
wo...
Users
People,Apps,
andDevices
Join, Collaborate, Contribute CCG
Bitcoin viaBlockstack Ethereum viauPort Sovrin viaSovrinle...
ION(アイオン)
https://techcommunity.microsoft.com/t5/Azure-Active-
Directory-Identity/Toward-scalable-decentralized-identifier...
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2019 Microsoft...
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装
V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装
Prochain SlideShare
Chargement dans…5
×

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装

1 032 vues

Publié le

de:code 2019 で使用した資料です。
Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の 設計と実装

(履歴)
1.1 20190531 Typoをちょっとだけ修正しました。

Publié dans : Technologie
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M }
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Download or read that Ebooks here ... ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

V1.1 CD03 Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の設計と実装

  1. 1. Azure Active Directory B2C/B2B コラボレーションによる Customer Identity and Access Management (CIAM) の 設計と実装 CD03 ANNO Junichi 安納 順一 Microsoft Corporation Commercial Software Engineering
  2. 2. Agenda • Azure Active Directory B2B コラボレーション • Azure Active Directory B2C • Identity Experience Framework による複雑な認証ワークフローの 実装
  3. 3. Identity is control plane
  4. 4. 2 種類の Identity 両方のアイデンティティを管理し、 リソースへのアクセスをコントロールする必要がある
  5. 5. アイデンティティを連携させる 3 つの方法
  6. 6. Azure AD B2B Collaboration
  7. 7. Azure AD B2B Collaboration • Azure Active Directory テナントの無償機能の1つ • B2B シナリオでの利用を想定している • 組織と個人を紐づける仕組み • 外部 Azure AD ユーザー • Microsoft Account ユーザー • Google アカウントユーザー(Google 側で設定が必要) • その他のユーザー • ワンタイムパスコード(OTP)を使用してログイン • Googleアカウントの場合も事前設定が無い場合にはこの方式が採 用される • 招待されたユーザーはゲストとして扱われるが、各種ロールを与える ことは可能
  8. 8. B2B Collaboration の流れ hogehoge@hoge.com hogehoge@hoge.com をゲストとして登録
  9. 9. (参考)OTPユーザーについて https://docs.microsoft.com/ja-jp/azure/active-directory/b2b/one-time-passcode
  10. 10. B2B 利用の注意点 • 招待できる権限に注意 • 全体管理者 • ゲスト招待元ロール • 「外部コラボレーションの設定」画面 で指定されたユーザー • AAD 有償ライセンスは”基本的に”「招待 元」のライセンスが適用される • 1 ライセンスあたり 5 ゲストユーザー が利用可能 • ただしゲストに対して明に割り当ては できないため「条件付きアクセス」を 使用する
  11. 11. 条件付きアクセスを使用してゲストにMFAを強制する
  12. 12. 「招待」の拡張 – Graph API Invitation Manager https://docs.microsoft.com/en-us/graph/api/resources/invitation?view=graph-rest-1.0 hogehoge@hoge.com hogehoge@hoge.com をゲストとして登録 https://github.com/Azure/active-directory-dotnet-graphapi-b2bportal-web
  13. 13. 「招待」の拡張 – Graph API Invitation Manager https://docs.microsoft.com/en-us/graph/api/resources/invitation?view=graph-rest-1.0 開発可能 https://github.com/Azure/active-directory-dotnet-graphapi-b2bportal-web • 特定の組織(ドメイン)は自動処理する • インビテーションの文面をカスタマイズする なんてことも可能
  14. 14. Azure AD B2C
  15. 15. Azure AD B2C • ディレクトリサービス • カスタマーとのコマースシナリオでの利用を想定している • 複数のアイデンティティプロバイダーを AAD B2C に紐づける仕組み • 外部システムと連携するなどの、複雑なログオンプロセスを実装可能 SAML 2.0
  16. 16. Azure AD B2C って実はこんな感じ… https://extensions.cpim.windows.net b2c-extensions-app Used by AADB2C for storing user data. Azure AD B2C 管理コンソール
  17. 17. 外部 Azure AD テナント (Public Preview) https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-setup-oidc-azure-active-directory Company A Company B
  18. 18. Idp キーで認証基盤 を判定可能 Azure AD B2C から発行されるトークン例
  19. 19. Azure AD B2C から発行されるトークン例
  20. 20. ちなみにお値段は...
  21. 21. Policy = User flow
  22. 22. Policy-based model ー サインアップの例 facebook google MS Account User id password surname email givenname address phone OK WELCOME JUNICHI ! PLACE A NEW ORDER REVIEW EXISTING ORDER IT’S APPLE SEASON THE MOST POPULAR VARIETIES ARE
  23. 23. 認証要求時の URL 例 https://junichiab2c.b2clogin.com/junichiab2c.onmicrosoft.com/oauth2/v2.0/authorize? p=B2C_1_UF_SignUpOrSignIn& client_id=8cb77ced-3771-4069-8217-2df2e6b47cda& redirect_uri=https%3A%2F%2Fjwt.ms& nonce=defaultNonce& scope=openid& response_type=id_token& prompt=login& ui=_locales=ja https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/active-directory-b2c-reference-oidc
  24. 24. • • •
  25. 25. • 第三者と共有される情報に明示的にオプトイン • 自分のアイデンティティに関連付けられたすべて のデータにアクセスする権利 • 自分のアイデンティティに関連するすべてのデー タの削除を要求する権利 • 違反通知の義務 → Azure Security Center • データ保護管理者を選任する義務 • 未成年者のサービス利用に対する保護者の同意 https://aka.ms/AADB2CandGDPR
  26. 26. https://docs.microsoft.com/ja-jp/azure/active-directory-b2c/basic-age-gating まずはここをクリック
  27. 27. V2 フロータイプ(プレビュー)
  28. 28. https://docs.microsoft.com/ja-jp/graph/api/resources/user?view=graph-rest-1.0#legal-age-group-property-definitions
  29. 29. 主なSNSの利用率(2016年 全体・性年代別) (出典)総務省情報通信政策研究所「情報通信メディアの利用時間と情報行動に関する調査」 http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h29/html/nc111130.html
  30. 30. SNS での本人情報の信頼性は? (出典)総務省「社会課題解決のための新たなICTサービス・技術への人々の意識に関する調査研究」(平成27年)
  31. 31. Identity Experience Framework(IEF) xxxx 独自のワークフロー
  32. 32. マイナンバーカード連携~どのように実装するのか… お勧めのライブラリ • OSS Tech 社製 LibJeID for Android https://www.osstech.co.jp/product/libjeid
  33. 33. 今回はこんな方法でテスト実装してみました https://www.osstech.co.jp/company/staff/hamano
  34. 34. デモ環境のアーキテクチャ VS Code Identity Experience Framework
  35. 35. PowerShell on Azure Functions using namespace System.Net using namespace System.Text param($Request, $TriggerMetadata) # Write to the Azure Functions log stream. Write-Host "PowerShell HTTP trigger function processed a request." Remove-Item .result.txt Start-Process ./myna.exe -ArgumentList "card attr" -NoNewWindow -RedirectStandardInput "inputparam.txt" -RedirectStandardOutput "./result.txt" -PassThru -wait $result = Get-Content "c:tmpdecode_demoresult.txt" -Encoding UTF8 $json = $result | ConvertTo-Json $hash = $json | ConvertFrom-Json $birthday = $hash[3].value.split(":")[1] [datetime]$birthday = $birthday.Substring(1,4) + "/" + $birthday.Substring(5,2) + "/" + $birthday.Substring(7,2) $now = Get-Date $age = ($now - $birthday).TotalDays / 365 $body = "{""age"": ""$age""}" # Associate values to output bindings by calling 'Push-OutputBinding'. Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ headers = @{'content-type' = 'application/json’} StatusCode = [HttpStatusCode]::OK Body = $body })
  36. 36. Azure Function を実行し ngrok.exe で API を外部に公開
  37. 37. Logic App の作成 Ngrok で外部公開したURL 前のステップの実行結果(BODY)
  38. 38. カスタムポリシー作成の準備 ~ ポリシーキーの作成 https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-get-started-custom
  39. 39. Cont. ~
  40. 40. Cont. VS Code 用 Extension のインストール
  41. 41. Cont. ~ AAD に Identity Experience Framework(IEF) アプリを登録する IEF IEF Proxy Azure AD B2C のアプリケーション登録ではなく、Azure Active Directory 本体に登録する https://<tenant>.b2clogin.com/<tenant>.onmicrosoft.com を使用する
  42. 42. カスタムポリシーを作成する ~ サインインとサインアップ用 https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack/archive/master.zip <ClaimsProvider> <DisplayName>Local Account SignIn</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="login-NonInteractive"> <Metadata> <Item Key="client_id">ProxyIdentityExperienceFrameworkAppId</Item> <Item Key="IdTokenAudience">IdentityExperienceFrameworkAppId</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="client_id" DefaultValue="ProxyIdentityExperienceFrameworkAppId" /> <InputClaim ClaimTypeReferenceId="resource_id" PartnerClaimType="resource" DefaultValue="IdentityExperienceFrameworkAppId" /> </InputClaims> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
  43. 43. Cont. <BuildingBlocks> <ContentDefinitions> <ContentDefinition Id="api.signuporsignin"> <LoadUri>https://BlobAccount.blob.core.windows.net/b2c/unified.html</LoadUri> </ContentDefinition> <ContentDefinition Id="api.localaccountsignup"> <LoadUri>https://BlobAccount.blob.core.windows.net/b2c/unified.html</LoadUri> </ContentDefinition> </ContentDefinitions> </BuildingBlocks>
  44. 44. REST API を追加する TrustFrameworkExtensions.xml <BuildingBlocks> ノードに、以下の <ClaimsSchema> 要素を追加する <BuildingBlocks> <ClaimsSchema> <ClaimType Id="age"> <DisplayName>age</DisplayName> <DataType>string</DataType> <UserHelpText>age</UserHelpText> <UserInputType>TextBox</UserInputType> </ClaimType> </ClaimsSchema> </BuildingBlocks> <ClaimsProviders> ノードに、以下の <ClaimsProvider> 要素を追加する <DisplayName>REST APIs</DisplayName> <TechnicalProfiles> </TechnicalProfile> </ClaimsProvider>
  45. 45. Cont. <TechnicalProfiles> ノードに、1つ目の以下の <TechnicalProfile> 要素を追加する <TechnicalProfile Id="REST-API-SignUp"> <DisplayName>Get Age from MyNumber Card</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/> <Metadata> <Item Key="ServiceUrl">https://prod- 26.japaneast.logic.azure.com:443/workflows/f81b5efa1ba8475ebde49330162c3d4f/triggers/manual/p aths/invoke?api-version=2016-10- 01&amp;sp=%2Ftriggers%2Fmanual%2Frun&amp;sv=1.0&amp;sig=Hqh2E6CjCvyELskUPfn1w3ftX7X45C_Zr- 87ptOkan4</Item> <Item Key="AuthenticationType">None</Item> <Item Key="SendClaimsIn">Body</Item> </Metadata> <OutputClaims> <OutputClaim ClaimTypeReferenceId="age" PartnerClaimType="age"/> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop"/> </TechnicalProfile> Logic App の URL を指定する
  46. 46. Cont. <TechnicalProfiles> ノードに、2つ目の <TechnicalProfile> 要素を追加する <TechnicalProfile Id="LocalAccountSignUpWithLogonEmail"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="age" PartnerClaimType="age" /> </OutputClaims> <ValidationTechnicalProfiles> <ValidationTechnicalProfile ReferenceId="REST-API-SignUp" /> </ValidationTechnicalProfiles> </TechnicalProfile>
  47. 47. Cont. <UserJourneys> <UserJourney Id="ProfileEdit"> <OrchestrationSteps> <OrchestrationStep Order="1" Type="ClaimsProviderSelection" ContentDefinitionReferenceId="api.idpselections"> <ClaimsProviderSelections> <ClaimsProviderSelection TargetClaimsExchangeId="FacebookExchange" /> <ClaimsProviderSelection TargetClaimsExchangeId="LocalAccountSigninEmailExchange" /> </ClaimsProviderSelections> </OrchestrationStep> <OrchestrationStep Order="2" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="FacebookExchange" TechnicalProfileReferenceId="Facebook-OAUTH" /> <ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted- LocalAccountSignin-Email" /> </ClaimsExchanges> </OrchestrationStep> <OrchestrationStep Order="3" Type="ClaimsExchange"> <Preconditions> <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> <Value>authenticationSource</Value> <Value>localAccountAuthentication</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <ClaimsExchanges> <ClaimsExchange Id="AADUserRead" TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId" /> </ClaimsExchanges> </OrchestrationStep>
  48. 48. <OrchestrationStep Order="4" Type="ClaimsExchange"> <Preconditions> <Precondition Type="ClaimEquals" ExecuteActionsIf="true"> <Value>authenticationSource</Value> <Value>socialIdpAuthentication</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <ClaimsExchanges> <ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" /> </ClaimsExchanges> </OrchestrationStep> <OrchestrationStep Order="5" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="B2CUserProfileUpdateExchange" TechnicalProfileReferenceId="SelfAsserted-ProfileUpdate" /> </ClaimsExchanges> </OrchestrationStep> <OrchestrationStep Order="6" Type="ClaimsExchange"> <ClaimsExchanges> <ClaimsExchange Id="age" TechnicalProfileReferenceId="REST-API-SignUp" /> </ClaimsExchanges> </OrchestrationStep> <OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" /> </OrchestrationSteps> <ClientDefinition ReferenceId="DefaultWeb" /> </UserJourney> </UserJourneys>
  49. 49. Cont. SignUpOrSignIn.xml <TechnicalProfile Id=“PolicyProfile”> の <OutputClaims> ノードに、以下の OutputClaim を追加する。 <OutputClaim ClaimTypeReferenceId="age" />
  50. 50. カスタムポリシーをアップロードする 依存関係があるので、初回は以下の順番でアップロードする • TrustFrameworkBase.xml • TrustFrameworkExtensions.xml • SignUpOrSignin.xml • ProfileEdit.xml • PasswordReset.xml
  51. 51. 実行テスト
  52. 52. Azure AD B2C その他の機能 preview • リソース所有者パスワード資格情報 (Resource Owner Password Credentials Grant Type, ROPC) フロー (Preview)  RFC6749 に対応  あくまでもレガシーアプリの移行用  詳細は Nat Sakimura さんのBlog を参照 https://ritou.hatenablog.com/entry/2018/09/26/113512 Preview
  53. 53. ページのカスタマイズ
  54. 54. (参考) OpenID Connect プロバイダーを追加したら CSS にも追加 #Pharaojp_AAD { background-color: rgb(48, 163, 225); background-image: url("https://aadb2ctraining.blob.core.windows.net/aadb2ctraining/activ edirectory.png"); background-repeat: no-repeat; background-size: 50px; padding-left: 55px; } #Pharaojp_AAD:hover { background-color: rgb(48, 163, 225); }
  55. 55. 多言語の設定 https://<tenant>.b2clogin.com/<tenant>.on microsoft.com/oauth2/v2.0/authorize ui_locales=ja
  56. 56. cont. ui-locales の値に応じて ロケールが挿入される カスタムポリシーを使用する 場合、ロケールの識別名は規 定では以下の通りとなること に注意 ・en → en-US ・ja → ja-JP 等 大文字小文字を判別すること に注意。ただし、ui-locals を 指定すればenやjaでもOK
  57. 57. Term of Use の合意用チェックボックスを追加する <ClaimType Id="TnCs"> <DisplayName>Terms of Service Consent</DisplayName> <DataType>string</DataType> <UserHelpText>I agree to the PHARAOJP terms of service.</UserHelpText> <UserInputType>CheckboxMultiSelect</UserInputType> <Restriction> <Enumeration Text="I agree to the PHARAOJP terms of service." Value="5/30/2019" SelectByDefault="false" /> </Restriction> </ClaimType> <TechnicalProfile Id=“LocalAccountSignUpWithLogonEmail”> 内の <OutputClaims> に以下を追加する。 <OutputClaim ClaimTypeReferenceId="TnCs" Required="true" />
  58. 58. Cont. SignUpOrSignIn.xml <TechnicalProfile Id=“PolicyProfile”> の <OutputClaims> に TnCs を追加して、アップロード。 <RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <TechnicalProfile Id="PolicyProfile"> <DisplayName>PolicyProfile</DisplayName> <Protocol Name="OpenIdConnect" /> <OutputClaims> <OutputClaim ClaimTypeReferenceId="displayName" /> <OutputClaim ClaimTypeReferenceId="givenName" /> <OutputClaim ClaimTypeReferenceId="surname" /> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/> <OutputClaim ClaimTypeReferenceId="identityProvider" /> <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" /> <OutputClaim ClaimTypeReferenceId="TnCs"/> </OutputClaims> <SubjectNamingInfo ClaimType="sub" /> </TechnicalProfile> </RelyingParty>
  59. 59. CIAM Azure AD B2C Azure AD B2B Collabo.
  60. 60. Appendix - One more identity scenario - decentralized identity
  61. 61. Your Identity > App(username, password) play purchases education achievements interests work citizenship u s e r n a m e l l l l l l l l
  62. 62. Your Identity > App(username, password) u s e r n a m e l l l l l l l l play purchases education achievements interests work citizenship
  63. 63. Users People,Apps, andDevices Join, Collaborate, Contribute CCG Bitcoin viaBlockstack Ethereum viauPort Sovrin viaSovrinledger comingsoon UniversalResolver IdentityHub User Agent Stage: Working Implementations Stage: Working Implementations Stage: Designs & Prototypes Stage: Alpha Implementation Stage: Designs in progress DID Authentication W3C Decentralized Identifiers Distributed Systems Blockchainsand Ledgers
  64. 64. ION(アイオン) https://techcommunity.microsoft.com/t5/Azure-Active- Directory-Identity/Toward-scalable-decentralized-identifier- systems/ba-p/560168
  65. 65. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。 © 2019 Microsoft Corporation. All rights reserved.

×