次の方法で共有


チュートリアル: パスワードレス認証用に BlokSec を使用して Azure Active Directory B2C を構成する

重要

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 ソリューション実装でのサインアップ、サインイン フローを示しています。

BlokSec ソリューション実装でのサインアップ、サインイン フローの図。

  1. ユーザーが Azure AD B2C アプリケーションにサインインし、Azure AD B2C サインインとサインアップ ポリシーに転送される
  2. Azure AD B2C は、OIDC 承認コード フローを使用して、ユーザーを BlokSec 分散 ID ルーターにリダイレクトします。
  3. BlokSec ルーターは、認証と承認要求の詳細を含むプッシュ通知をユーザー モバイル アプリに送信します。
  4. ユーザーが認証課題を確認します。 受け入れられたユーザーは、指紋や顔のスキャンなどのバイオメトリーを求められます。
  5. 応答は、ユーザーの一意のデジタル キーを使用してデジタル署名されます。 認証応答は、所有、プレゼンス、および同意の証明を提供します。 応答はルーターに戻ります。
  6. ルーターは、分散台帳に格納されているユーザーの不変の一意の公開キーに対してデジタル署名を検証します。 ルーターは、認証結果を使用して Azure AD B2C に応答します。
  7. ユーザーはアクセスを許可または拒否されます。

BlokSec を有効にする

  1. bloksec.com に移動し、[ Request a demo tenant]\(デモ テナントの要求\ ) を選択します。
  2. メッセージ フィールドで、Azure AD B2C と統合することを示します。
  3. 無料の BlokSec yuID モバイル アプリをダウンロードしてインストールします。
  4. デモ テナントの準備が完了すると、電子メールが届きます。
  5. BlokSec アプリケーションを使用するモバイル デバイスで、リンクを選択して管理者アカウントを yuID アプリに登録します。

[前提条件]

開始するには、次のものが必要です。

チュートリアル: Azure AD B2C でユーザー フローとカスタム ポリシーを作成する」も参照してください

BlokSec でアプリケーション登録を作成する

BlokSec からのアカウント登録メールで、BlokSec 管理コンソールへのリンクを見つけます。

  1. BlokSec 管理コンソールにサインインします。
  2. メイン ダッシュボードで、[アプリケーションの 追加] > [カスタムの作成] を選択します。
  3. [名前] に、Azure AD B2C またはアプリケーション名を入力します。
  4. SSO の種類としてOIDC を選択します。
  5. [ ロゴ URI] に、ロゴ 画像へのリンクを入力します。
  6. リダイレクト 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」と入力します。
  7. [Post log out redirect URIs URI] に「https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout」と入力します。
  8. 作成した Azure AD B2C アプリケーションを選択して、アプリケーション構成を開きます。
  9. [ アプリ シークレットの生成] を選択します。

詳細情報: サインアウト要求を送信します。

Azure AD B2C で ID プロバイダー (IdP) を構成するには、アプリケーション ID とアプリケーション シークレットが必要です。

Azure AD B2C に新しい ID プロバイダーを追加する

次の手順では、Azure AD B2C テナントを含むディレクトリを使用します。

  1. Azure AD B2C テナントの少なくとも B2C IEF ポリシー管理者として Azure portal にサインインします。
  2. ポータルのツール バーで、[ ディレクトリとサブスクリプション] を選択します。
  3. ポータルの 設定の [ディレクトリとサブスクリプション ] ページの [ディレクトリ名 ] 一覧で、Azure AD B2C ディレクトリを見つけます。
  4. [切り替え] を選択します。
  5. Azure portal の左上隅にある [ すべてのサービス] を選択します。
  6. Azure AD B2C を検索して選択します。
  7. Dashboard>Azure Active Directory B2C>アイデンティティ プロバイダーに移動します。
  8. [新しい OpenID Connect プロバイダー] を選択します
  9. [] を選択し、[] を追加します。

ID プロバイダーを構成する

  1. OpenID Connect > ID プロバイダーの種類を選択する
  2. [名前] に、BlokSec yuID パスワードレスまたは別の名前を入力します。
  3. [ メタデータ URL] に「 https://api.bloksec.io/oidc/.well-known/openid-configuration」と入力します。
  4. クライアント IDV の場合は、BlokSec 管理者 UI からアプリケーション ID を入力します。
  5. クライアント シークレットの場合は、BlokSec 管理者 UI からアプリケーション シークレットを入力します。
  6. [スコープ] で、[OpenID 電子メール プロファイル] を選択します。
  7. [ 応答の種類] で、[ コード] を選択します。
  8. ドメイン ヒントの場合は、yuID を選択します。
  9. [OK] を選択.
  10. [ この ID プロバイダーの要求をマップする] を選択します。
  11. ユーザー IDサブを選択します。
  12. 表示名名前を選択します。
  13. [指定された名前] には、given_nameを使用します。
  14. の場合は、family_nameを使用します。
  15. 電子メールの場合は、電子メールを使用します。
  16. 保存 を選択します。

ユーザーの登録

  1. 指定された資格情報を使用して BlokSec 管理コンソールにサインインします。
  2. 前に作成した Azure AD B2C アプリケーションに移動します。
  3. 右上の 歯車 アイコンを選択します。
  4. アカウントの作成 を選択します。
  5. [ アカウントの作成] で、ユーザー情報を入力します。 アカウント名をメモします。
  6. 送信を選択します。

ユーザーは、指定された電子メール アドレスでアカウント登録メールを受け取ります。 BlokSec yuID アプリを使用してモバイル デバイス上の登録リンクを選択するようにユーザーに指示します。

ユーザー フロー ポリシーを作成する

次の手順では、BlokSec が新しい OIDC ID プロバイダー (IdP) であることを確認します。

  1. Azure AD B2C テナントの [ ポリシー] で、[ ユーザー フロー] を選択します。
  2. [ 新しいユーザー フロー] を選択します。
  3. サインアップしてサインインを選択>バージョン>作成
  4. ポリシーの [名前] を入力します。
  5. [ID プロバイダー] セクションで、作成した BlokSec ID プロバイダーを選択します。
  6. [ローカル アカウント] で [なし] を選択 します。 このアクションにより、電子メールとパスワードベースの認証が無効になります。
  7. [ユーザー フローの実行] を選択する
  8. フォームに、返信 URL ( https://jwt.msなど) を入力します。
  9. ブラウザーは BlokSec サインイン ページにリダイレクトされます。
  10. ユーザー登録のアカウント名を入力します。
  11. ユーザーは、BlokSec yuID アプリケーションを使用してモバイル デバイスでプッシュ通知を受け取ります。
  12. ユーザーが通知を開くと、認証チャレンジが表示されます。
  13. 認証が受け入れられた場合、ブラウザーはユーザーを応答 URL にリダイレクトします。

Azure Active Directory B2C では、カスタム ポリシーは主に複雑なシナリオに対処します。 ほとんどのシナリオでは、組み込みのユーザー フローをお勧めします。
ユーザー フローとカスタム ポリシーの概要を参照してください

ポリシー キーを作成する

Azure AD B2C テナントに記述したクライアント シークレットを格納します。 次の手順では、Azure AD B2C テナントでディレクトリを使用します。

  1. Azure portal にサインインします。
  2. ポータルのツール バーで、[ ディレクトリとサブスクリプション] を選択します。
  3. ポータルの 設定の [ディレクトリとサブスクリプション ] ページの [ディレクトリ名 ] 一覧で、Azure AD B2C ディレクトリを見つけます。
  4. [切り替え] を選択します。
  5. Azure portal の左上隅にある [すべてのサービス] を選択します。
  6. Azure AD B2C を検索して選択します。
  7. [概要] ページで、[Identity Experience Framework] を選択します。
  8. [ポリシー キー] を選択します
  9. [] を選択し、[] を追加します。
  10. [オプション] では、[手動] を選びます。
  11. ポリシーキー名としてポリシーを入力します。 たとえば、BlokSecAppSecret のようにします。 プレフィックス B2C_1A_ がキー名に追加されます。
  12. [ シークレット] に、指定したクライアント シークレットを入力します。
  13. [キー使用法] には [署名] を選択します。
  14. を選択してを作成します。

BlokSec を ID プロバイダーとして構成する

ユーザーが BlokSec 分散 ID を使用してサインインできるようにするには、BlokSec をクレーム プロバイダーとして定義します。 このアクションにより、Azure AD B2C がエンドポイント経由で通信できるようになります。 Azure AD B2C では、エンドポイント要求を使用して、指紋や顔のスキャンなどのバイオメーターを使用してユーザーが ID を認証することを確認します。

BlokSec をクレーム プロバイダーとして定義するには、ポリシー拡張ファイルの ClaimsProvider 要素に追加します。

  1. TrustFrameworkExtensions.xml を開きます。

  2. ClaimsProviders 要素を検索します。 要素が表示されない場合は、ルート要素の下に追加します。

  3. 新しい 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>
    
  4. client_idアプリケーション登録のアプリケーション ID に設定します。

  5. 保存 を選択します。

ユーザー体験を追加する

ID プロバイダーが設定されているが、サインイン ページでは設定されていない場合は、次の手順を使用します。 カスタム ユーザー体験がない場合は、テンプレート ユーザー体験をコピーします。

  1. スターター パックから、 TrustFrameworkBase.xml ファイルを開きます。
  2. ID= を含む SignUpOrSignIn内容を検索してコピーします。
  3. TrustFrameworkExtensions.xml を開きます。
  4. UserJourneys 要素を見つけます。 要素が表示されない場合は、要素を追加します。
  5. UserJourneys 要素の子としてコピーした UserJourney 要素の内容を貼り付けます。
  6. ユーザージャーニー ID の名前を変更します。 たとえば、ID=CustomSignUpSignIn です。

ID プロバイダーをユーザー体験に追加する

ユーザージャーニーがあるなら、新しい ID プロバイダーをそれに追加してください。 最初にサインイン ボタンを追加し、それをアクション (作成した技術プロファイル) にリンクします。

  1. ユーザー体験で、Type=CombinedSignInAndSignUp または Type=ClaimsProviderSelection を含むオーケストレーション ステップ要素を見つけます。 通常は、オーケストレーションの最初の手順です。 ClaimsProviderSelections 要素には、ユーザー サインイン用の ID プロバイダーの一覧が含まれています。 要素の順序は、ユーザーが表示するサインイン ボタンの順序を制御します。
  2. ClaimsProviderSelection XML 要素を追加します。
  3. TargetClaimsExchangeId の値をフレンドリ名に設定します。
  4. 次のオーケストレーション手順で、 ClaimsExchange 要素を追加します。
  5. Id をターゲット要求交換 ID の値に設定します。
  6. 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 が実行するユーザー体験を指定します。

  1. 信頼パーティで DefaultUserJourney 要素を検索します。
  2. 追加した ID プロバイダーのユーザージャーニー ID と一致するように ReferenceId を更新します。

次の例では、 CustomSignUpOrSignIn ユーザー体験の ReferenceId が CustomSignUpOrSignIn に設定されています。

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

カスタム ポリシーをアップロードする

次の手順では、Azure AD B2C テナントでディレクトリを使用します。

  1. Azure portal にサインインします。
  2. ポータルのツール バーで、[ ディレクトリとサブスクリプション] を選択します。
  3. ポータルの 設定の [ディレクトリとサブスクリプション ] ページの ディレクトリ名 の一覧で、Azure AD B2C ディレクトリを見つけます
  4. [切り替え] を選択します。
  5. Azure portal で、 [Azure AD B2C] を検索して選択します。
  6. [ ポリシー] で、[ Identity Experience Framework] を選択します。
  7. [ カスタム ポリシーのアップロード] を選択します
  8. 変更した 2 つのポリシー ファイルを次の順序でアップロードします。
  • 拡張機能ポリシー (例: TrustFrameworkExtensions.xml
  • 証明書利用者ポリシー (SignUpSignIn.xml など)

カスタム ポリシーをテストする

  1. 関連パーティポリシー(例: B2C_1A_signup_signin)を選択してください。
  2. [ アプリケーション] で、登録した Web アプリケーションを選択します。
  3. 応答 URLhttps://jwt.msとして表示されます。
  4. [今すぐ実行] を選択します。
  5. サインアップまたはサインイン ページで、Google アカウントでサインインする Google を選択します。
  6. ブラウザーが https://jwt.msにリダイレクトされます。 Azure AD B2C によって返されるトークンの内容を確認します。

詳細情報: チュートリアル: Azure Active Directory B2C に Web アプリケーションを登録する

次のステップ