重要
2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください。
開始する前に
Azure Active Directory B2C には、アプリケーションとのユーザー操作を定義する 2 つの方法があります。定義済みのユーザー フローまたは構成可能なカスタム ポリシーです。
注
Azure Active Directory B2C では、カスタム ポリシーは主に複雑なシナリオに対処します。 ほとんどのシナリオでは、組み込みのユーザー フローをお勧めします。
ユーザー フローとカスタム ポリシーの概要を参照してください
Azure AD B2C と BlokSec
Azure Active Directory B2C (Azure AD B2C) 認証を BlokSec 分散 ID ルーターと統合する方法について説明します。 BlokSec ソリューションは、パスワードレス認証とトークンレス多要素認証によるユーザー サインインを簡素化します。 このソリューションは、パスワードの詰め込み、フィッシング、中間者などの ID 関連の攻撃から顧客を保護します。
詳細については、「bloksec.com: BlokSec Technologies Inc.
シナリオの説明
BlokSec の統合には、次のコンポーネントが含まれています。
- Azure AD B2C – B2C アプリケーションの承認サーバーと ID プロバイダー (IdP)
-
BlokSec 分散型 ID ルーター – BlokSec DIaaS を適用して認証要求と承認要求をユーザーパーソナル ID プロバイダー (PIdP) アプリケーションにルーティングするサービスのゲートウェイ
- Azure AD B2C の OpenID Connect (OIDC) ID プロバイダーです
-
BlokSec SDK ベースのモバイル アプリ – 分散型認証シナリオでのユーザー PIdP。
- BlokSec SDK を使用していない場合は、Google Play で無料の BlokSec yuID にアクセスしてください
次のアーキテクチャ図は、BlokSec ソリューション実装でのサインアップ、サインイン フローを示しています。
- ユーザーが Azure AD B2C アプリケーションにサインインし、Azure AD B2C サインインとサインアップ ポリシーに転送される
- Azure AD B2C は、OIDC 承認コード フローを使用して、ユーザーを BlokSec 分散 ID ルーターにリダイレクトします。
- BlokSec ルーターは、認証と承認要求の詳細を含むプッシュ通知をユーザー モバイル アプリに送信します。
- ユーザーが認証課題を確認します。 受け入れられたユーザーは、指紋や顔のスキャンなどのバイオメトリーを求められます。
- 応答は、ユーザーの一意のデジタル キーを使用してデジタル署名されます。 認証応答は、所有、プレゼンス、および同意の証明を提供します。 応答はルーターに戻ります。
- ルーターは、分散台帳に格納されているユーザーの不変の一意の公開キーに対してデジタル署名を検証します。 ルーターは、認証結果を使用して Azure AD B2C に応答します。
- ユーザーはアクセスを許可または拒否されます。
BlokSec を有効にする
- bloksec.com に移動し、[ Request a demo tenant]\(デモ テナントの要求\ ) を選択します。
- メッセージ フィールドで、Azure AD B2C と統合することを示します。
- 無料の BlokSec yuID モバイル アプリをダウンロードしてインストールします。
- デモ テナントの準備が完了すると、電子メールが届きます。
- BlokSec アプリケーションを使用するモバイル デバイスで、リンクを選択して管理者アカウントを yuID アプリに登録します。
[前提条件]
開始するには、次のものが必要です。
- Azure サブスクリプション
- お持ちでない場合は、Azfree アカウントを取得します
- Azure サブスクリプションにリンクされた Azure AD B2C テナント
- BlokSec のデモ
- Web アプリケーションを登録する
「チュートリアル: Azure AD B2C でユーザー フローとカスタム ポリシーを作成する」も参照してください
BlokSec でアプリケーション登録を作成する
BlokSec からのアカウント登録メールで、BlokSec 管理コンソールへのリンクを見つけます。
- BlokSec 管理コンソールにサインインします。
- メイン ダッシュボードで、[アプリケーションの 追加] > [カスタムの作成] を選択します。
- [名前] に、Azure AD B2C またはアプリケーション名を入力します。
- SSO の種類としてOIDC を選択します。
- [ ロゴ URI] に、ロゴ 画像へのリンクを入力します。
-
リダイレクト URI には、
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authrespを使用します。 たとえば、https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authrespのようにします。 カスタム ドメインの場合は、「https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp」と入力します。 -
[Post log out redirect URIs URI] に「
https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout」と入力します。 - 作成した Azure AD B2C アプリケーションを選択して、アプリケーション構成を開きます。
- [ アプリ シークレットの生成] を選択します。
詳細情報: サインアウト要求を送信します。
注
Azure AD B2C で ID プロバイダー (IdP) を構成するには、アプリケーション ID とアプリケーション シークレットが必要です。
Azure AD B2C に新しい ID プロバイダーを追加する
次の手順では、Azure AD B2C テナントを含むディレクトリを使用します。
- Azure AD B2C テナントの少なくとも B2C IEF ポリシー管理者として Azure portal にサインインします。
- ポータルのツール バーで、[ ディレクトリとサブスクリプション] を選択します。
- ポータルの 設定の [ディレクトリとサブスクリプション ] ページの [ディレクトリ名 ] 一覧で、Azure AD B2C ディレクトリを見つけます。
- [切り替え] を選択します。
- Azure portal の左上隅にある [ すべてのサービス] を選択します。
- Azure AD B2C を検索して選択します。
- Dashboard>Azure Active Directory B2C>アイデンティティ プロバイダーに移動します。
- [新しい OpenID Connect プロバイダー] を選択します。
- [] を選択し、[] を追加します。
ID プロバイダーを構成する
- OpenID Connect > ID プロバイダーの種類を選択する
- [名前] に、BlokSec yuID パスワードレスまたは別の名前を入力します。
- [ メタデータ URL] に「
https://api.bloksec.io/oidc/.well-known/openid-configuration」と入力します。 - クライアント IDV の場合は、BlokSec 管理者 UI からアプリケーション ID を入力します。
- クライアント シークレットの場合は、BlokSec 管理者 UI からアプリケーション シークレットを入力します。
- [スコープ] で、[OpenID 電子メール プロファイル] を選択します。
- [ 応答の種類] で、[ コード] を選択します。
- ドメイン ヒントの場合は、yuID を選択します。
- [OK] を選択.
- [ この ID プロバイダーの要求をマップする] を選択します。
- ユーザー IDでサブを選択します。
- 表示名で名前を選択します。
- [指定された名前] には、given_nameを使用します。
- 姓の場合は、family_nameを使用します。
- 電子メールの場合は、電子メールを使用します。
- 保存 を選択します。
ユーザーの登録
- 指定された資格情報を使用して BlokSec 管理コンソールにサインインします。
- 前に作成した Azure AD B2C アプリケーションに移動します。
- 右上の 歯車 アイコンを選択します。
- アカウントの作成 を選択します。
- [ アカウントの作成] で、ユーザー情報を入力します。 アカウント名をメモします。
- 送信を選択します。
ユーザーは、指定された電子メール アドレスでアカウント登録メールを受け取ります。 BlokSec yuID アプリを使用してモバイル デバイス上の登録リンクを選択するようにユーザーに指示します。
ユーザー フロー ポリシーを作成する
次の手順では、BlokSec が新しい OIDC ID プロバイダー (IdP) であることを確認します。
- Azure AD B2C テナントの [ ポリシー] で、[ ユーザー フロー] を選択します。
- [ 新しいユーザー フロー] を選択します。
- サインアップしてサインインを選択>バージョン>作成。
- ポリシーの [名前] を入力します。
- [ID プロバイダー] セクションで、作成した BlokSec ID プロバイダーを選択します。
- [ローカル アカウント] で [なし] を選択 します。 このアクションにより、電子メールとパスワードベースの認証が無効になります。
- [ユーザー フローの実行] を選択する
- フォームに、返信 URL (
https://jwt.msなど) を入力します。 - ブラウザーは BlokSec サインイン ページにリダイレクトされます。
- ユーザー登録のアカウント名を入力します。
- ユーザーは、BlokSec yuID アプリケーションを使用してモバイル デバイスでプッシュ通知を受け取ります。
- ユーザーが通知を開くと、認証チャレンジが表示されます。
- 認証が受け入れられた場合、ブラウザーはユーザーを応答 URL にリダイレクトします。
注
Azure Active Directory B2C では、カスタム ポリシーは主に複雑なシナリオに対処します。 ほとんどのシナリオでは、組み込みのユーザー フローをお勧めします。
ユーザー フローとカスタム ポリシーの概要を参照してください
ポリシー キーを作成する
Azure AD B2C テナントに記述したクライアント シークレットを格納します。 次の手順では、Azure AD B2C テナントでディレクトリを使用します。
- Azure portal にサインインします。
- ポータルのツール バーで、[ ディレクトリとサブスクリプション] を選択します。
- ポータルの 設定の [ディレクトリとサブスクリプション ] ページの [ディレクトリ名 ] 一覧で、Azure AD B2C ディレクトリを見つけます。
- [切り替え] を選択します。
- Azure portal の左上隅にある [すべてのサービス] を選択します。
- Azure AD B2C を検索して選択します。
- [概要] ページで、[Identity Experience Framework] を選択します。
- [ポリシー キー] を選択します。
- [] を選択し、[] を追加します。
- [オプション] では、[手動] を選びます。
- ポリシーキー名としてポリシー名を入力します。 たとえば、
BlokSecAppSecretのようにします。 プレフィックスB2C_1A_がキー名に追加されます。 - [ シークレット] に、指定したクライアント シークレットを入力します。
- [キー使用法] には [署名] を選択します。
- を選択してを作成します。
BlokSec を ID プロバイダーとして構成する
ユーザーが BlokSec 分散 ID を使用してサインインできるようにするには、BlokSec をクレーム プロバイダーとして定義します。 このアクションにより、Azure AD B2C がエンドポイント経由で通信できるようになります。 Azure AD B2C では、エンドポイント要求を使用して、指紋や顔のスキャンなどのバイオメーターを使用してユーザーが ID を認証することを確認します。
BlokSec をクレーム プロバイダーとして定義するには、ポリシー拡張ファイルの ClaimsProvider 要素に追加します。
TrustFrameworkExtensions.xmlを開きます。ClaimsProviders 要素を検索します。 要素が表示されない場合は、ルート要素の下に追加します。
新しい ClaimsProvider を追加するには:
<ClaimsProvider> <Domain>bloksec</Domain> <DisplayName>BlokSec</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="BlokSec-OpenIdConnect"> <DisplayName>BlokSec</DisplayName> <Description>Login with your BlokSec decentriled identity</Description> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item> <!-- Update the Client ID below to the BlokSec Application ID --> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile email</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="DiscoverMetadataByTokenIssuer">true</Item> <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>client_idアプリケーション登録のアプリケーション ID に設定します。
保存 を選択します。
ユーザー体験を追加する
ID プロバイダーが設定されているが、サインイン ページでは設定されていない場合は、次の手順を使用します。 カスタム ユーザー体験がない場合は、テンプレート ユーザー体験をコピーします。
- スターター パックから、
TrustFrameworkBase.xmlファイルを開きます。 - ID= を含む
SignUpOrSignIn内容を検索してコピーします。 -
TrustFrameworkExtensions.xmlを開きます。 - UserJourneys 要素を見つけます。 要素が表示されない場合は、要素を追加します。
- UserJourneys 要素の子としてコピーした UserJourney 要素の内容を貼り付けます。
- ユーザージャーニー ID の名前を変更します。 たとえば、ID=
CustomSignUpSignInです。
ID プロバイダーをユーザー体験に追加する
ユーザージャーニーがあるなら、新しい ID プロバイダーをそれに追加してください。 最初にサインイン ボタンを追加し、それをアクション (作成した技術プロファイル) にリンクします。
- ユーザー体験で、Type=
CombinedSignInAndSignUpまたは Type=ClaimsProviderSelectionを含むオーケストレーション ステップ要素を見つけます。 通常は、オーケストレーションの最初の手順です。 ClaimsProviderSelections 要素には、ユーザー サインイン用の ID プロバイダーの一覧が含まれています。 要素の順序は、ユーザーが表示するサインイン ボタンの順序を制御します。 - ClaimsProviderSelection XML 要素を追加します。
- TargetClaimsExchangeId の値をフレンドリ名に設定します。
- 次のオーケストレーション手順で、 ClaimsExchange 要素を追加します。
- Id をターゲット要求交換 ID の値に設定します。
- TechnicalProfileReferenceId の値を、作成した技術プロファイルの ID に更新します。
次の XML は、ID プロバイダーとの最初の 2 つのユーザー体験オーケストレーション手順を示しています。
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="BlokSecExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="BlokSecExchange" TechnicalProfileReferenceId="BlokSec-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
依存先パーティーポリシーを構成する
証明書利用者ポリシー ( SignUpSignIn.xmlなど) は、Azure AD B2C が実行するユーザー体験を指定します。
- 信頼パーティで DefaultUserJourney 要素を検索します。
- 追加した ID プロバイダーのユーザージャーニー ID と一致するように ReferenceId を更新します。
次の例では、 CustomSignUpOrSignIn ユーザー体験の ReferenceId が CustomSignUpOrSignIn に設定されています。
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
カスタム ポリシーをアップロードする
次の手順では、Azure AD B2C テナントでディレクトリを使用します。
- Azure portal にサインインします。
- ポータルのツール バーで、[ ディレクトリとサブスクリプション] を選択します。
- ポータルの 設定の [ディレクトリとサブスクリプション ] ページの ディレクトリ名 の一覧で、Azure AD B2C ディレクトリを見つけます
- [切り替え] を選択します。
- Azure portal で、 [Azure AD B2C] を検索して選択します。
- [ ポリシー] で、[ Identity Experience Framework] を選択します。
- [ カスタム ポリシーのアップロード] を選択します。
- 変更した 2 つのポリシー ファイルを次の順序でアップロードします。
- 拡張機能ポリシー (例:
TrustFrameworkExtensions.xml - 証明書利用者ポリシー (
SignUpSignIn.xmlなど)
カスタム ポリシーをテストする
- 関連パーティポリシー(例:
B2C_1A_signup_signin)を選択してください。 - [ アプリケーション] で、登録した Web アプリケーションを選択します。
-
応答 URL は
https://jwt.msとして表示されます。 - [今すぐ実行] を選択します。
- サインアップまたはサインイン ページで、Google アカウントでサインインする Google を選択します。
- ブラウザーが
https://jwt.msにリダイレクトされます。 Azure AD B2C によって返されるトークンの内容を確認します。
詳細情報: チュートリアル: Azure Active Directory B2C に Web アプリケーションを登録する