次の方法で共有


Azure Active Directory B2C と Akamai Enterprise Application Access を構成して SSO と安全なハイブリッド アクセスを実現

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

このサンプル チュートリアルでは、Azure Active Directory B2C (Azure AD B2C) 認証を Akamai Enterprise Application Access と統合する方法について説明します。 Akamai Enterprise Application Access は、プライベートデータセンターに存在する最新のアプリケーションやレガシーアプリケーションへの安全なリモートアクセスを可能にするゼロトラストネットワークアクセス(ZTNA)ソリューションです。 Akamai Enterprise Application Access は、ID プロバイダー (IdP) の Azure AD B2C と連携してユーザーを認証し、その承認ポリシーを使用して ID、デバイス、アプリケーション、リクエスト コンテキストの継続的な評価を実行してから、プライベート アプリケーションへのアクセスを許可します。

この機能は、カスタム ポリシーでのみ使用できます。 セットアップ手順については、前のセレクターで [カスタム ポリシー] を選択します。

[前提条件]

作業を開始するには、以下が必要です。

  • Akamai Enterprise Access 契約。 お持ちでない場合は、 無料試用版を入手してください。

  • Azure サブスクリプション。 サブスクリプションがない場合は、無料アカウントを取得できます。

  • Azure サブスクリプションにリンクされている Azure AD B2C テナント

  • データセンターのファイアウォールの内側またはハイブリッドクラウド環境に展開された仮想アプライアンスで、Akamai Enterprise Application Access コネクタを展開

  • 認証にヘッダーを使用するアプリケーション。 このサンプルでは、ヘッダーを表示するアプリケーションを使用します docker header-demo-app

  • または OpenID Connect (OIDC) アプリケーション。 このサンプルでは、Open Web Interface for .NET (OWIN) ミドルウェアと Microsoft ID プラットフォームを使用してユーザーをサインインさせる ASP.NET MVC Web アプリ を使用します。

シナリオの説明

このシナリオでは、エンド ユーザーが Akamai Enterprise Application Access によってセキュリティ保護されたプライベート アプリケーションにアクセスしようとしている間、Azure AD B2C 認証を有効にします。

この統合に関連するコンポーネントは次のとおりです。

  • Azure AD B2C: エンド ユーザーの認証を担当する SAML ID プロバイダー。

  • Akamai Enterprise Application Access:ZTNA ポリシーを継続的に適用することで、プライベートアプリケーションへのアクセスを保護する ZTNA クラウドサービス。

  • Akamai Enterprise Application Access Connector: プライベートデータセンターにデプロイされた仮想アプライアンス。 これにより、データセンターの受信ファイアウォール ポートを開かずに、プライベート アプリへの安全な接続が可能になります。

  • アプリケーション: プライベート データセンターにデプロイされたサービスまたはアプリケーションで、エンド ユーザーがアクセスする必要があります。

ユーザーは Azure AD B2C に対して (SAML IdP として) 認証され、Azure AD B2C は Akamai Enterprise Application Access (サービス プロバイダー) に対して SAML アサーションで応答します。 Akamai Enterprise Application Access は、SAML アサーションからの情報をマッピングし、OpenID クレームを作成するか、ユーザーに関する情報を含む HTTP ヘッダーを挿入します。 その後、Akamai Enterprise Application Access は、Akamai Enterprise Application Access コネクタを介してアクセス可能なアプリケーションにこれを渡します。 このサンプルでは、アプリケーションはこれらのヘッダーの内容を表示します。 OIDCアプリケーションのユースケースでは、ユーザーの要求が表示されます。

次の図は、Akamai Enterprise Application Access (EAA) が Azure AD B2C とどのように統合されるかを示しています。

スクリーンショットは、統合アーキテクチャを示しています。

  1. エンドユーザーは、Akamai Enterprise Application Access に登録されているアプリケーションの外部 URL を使用して、プライベート・データセンターでホストされているアプリケーションにアクセスしようとします。

  2. Akamai Enterprise Application Access は、認証のために認証されていないエンド ユーザーを Azure AD B2C にリダイレクトします。

  3. 認証が成功すると、Azure AD B2C は SAML アサーションを使用してユーザーを Akamai Enterprise Application Access にリダイレクトします。

  4. Akamai Enterprise Application Access は、SAML アサーションの ID 情報を使用してユーザーを識別し、要求されたアプリケーションへのアクセスがユーザーに許可されているかどうかを判断します。

  5. Akamai Enterprise Application Access は、OIDC クレームを作成するか、HTTP ヘッダーを挿入してアプリケーションに送信します。

  6. アプリケーションは、この情報を使用して認証されたユーザーを識別し、エンド・ユーザーのアプリケーション・セッションを作成します。

Akamai Enterprise Application Access による導入

Akamai Enterprise Application Access の使用を開始するには、 Akamai Enterprise Application Access のスタートアップガイドを参照してください。

手順 1 - Azure AD B2C を Akamai Enterprise Application Access で SAML IdP として追加する

Akamai Enterprise Application Access は、Azure AD B2C などのクラウド IdP との SAML フェデレーションをサポートしています。 Azure AD B2C を サード パーティの SAML IdP として Akamai Enterprise Application Access に追加します。

  1. Enterprise Center にサインインする https://control.akamai.com/

  2. Enterprise Centerのナビゲーション・メニューで、「 アプリケーション・アクセス」 > 「アイデンティティとユーザー」 > 「アイデンティティ・プロバイダ」を選択します。

  3. [ID プロバイダーの追加] (+) を選択します。

  4. 名前と説明を入力し、プロバイダーの種類として [サードパーティ SAML] を選択します。

  5. 続行を選択します。 [ID プロバイダーの設定] ページが表示されます。

  6. [設定>一般] に、Identity Server の URL を入力します。 [ Akamai ドメインを使用 ] または [ドメインを使用] を選択できます。 独自のドメインを使用している場合は、自己署名証明書を使用するか、アップロードしたカスタム証明書を使用します。

  7. [認証] で、前の手順で定義したのと同じ URL を [全般] に入力し、[保存] を選択します。

    スクリーンショットは、akamaiの設定を示しています。

手順 2 - Azure AD B2C に SAML アプリケーションを登録する

  1. GitHub からカスタム ポリシー スターター パックを取得し、LocalAccounts スターター パック内の XML ファイルを Azure AD B2C テナント名で更新します。

    • .zip ファイルをダウンロード するか、リポジトリを複製します。

      git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
      
    • LocalAccounts ディレクトリ内のすべてのファイルで、yourtenant文字列を Azure AD B2C テナントの名前に置き換えます。 たとえば、B2C テナントの名前が fabrikamされている場合、 yourtenant.onmicrosoft.com のすべてのインスタンスが fabrikam.onmicrosoft.comになります。

  2. Azure AD B2C の署名証明書を作成して、Akamai Enterprise Application Access に送信される SAML 応答に署名します。

    ある。 証明書を取得します。 証明書をまだ持っていない場合は、自己署名証明書を使用できます。

    b。 Azure AD B2C テナントに証明書をアップロードします。 名前は、次の手順で説明する TechnicalProfile で必要になるため、メモしておいてください。

  3. SAML アプリケーションに接続するためのポリシーを有効にします。

    ある。 LocalAccounts\TrustFrameworkExtensions.xml をカスタム ポリシー スターター パックで開きます。 ClaimsProviders 要素を検索します。 存在しない場合は、ルート要素の下に追加し、次の XML スニペットを TrustFrameworkPolicy して追加し、SAML レスポンスジェネレータを実装します。

     <ClaimsProvider>
       <DisplayName>Akamai</DisplayName>
       <TechnicalProfiles>
         <!-- SAML Token Issuer technical profile -->
         <TechnicalProfile Id="AkamaiSaml2AssertionIssuer">
           <DisplayName>Token Issuer</DisplayName>
           <Protocol Name="SAML2" />
           <OutputTokenFormat>SAML2</OutputTokenFormat>
           <Metadata>
             <Item Key="IssuerUri">https://<REPLACE>.login.go.akamai-access.com/saml/sp/response</Item>
           </Metadata>
           <CryptographicKeys>
             <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_AkamaiSAMLSigningCert" />
             <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_AkamaiSAMLSigningCert" />
           </CryptographicKeys>
           <InputClaims />
           <OutputClaims />
           <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-issuerAkamai" />
         </TechnicalProfile>
         <!-- Session management technical profile for SAML-based tokens -->
         <TechnicalProfile Id="SM-Saml-issuerAkamai">
           <DisplayName>Session Management Provider</DisplayName>
           <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
           <Metadata>
             <Item Key="IncludeSessionIndex">false</Item>
             <Item Key="RegisterServiceProviders">false</Item>
           </Metadata>
         </TechnicalProfile>
       </TechnicalProfiles>
     </ClaimsProvider>
    

    b。 issuerUri> の Akamai エンタープライズアプリケーションアクセス設定一般」で定義した Akamai URL に置き換えます

    • <Item Key="IssuerUri">https://fabrikam.login.go.akamai-access.com/saml/sp/response</Item>

    • B2C_1A_AkamaiSAMLSigningCert を、アップロードしたポリシー キーの名前に置き換えます。

手順 3 - SAML 用に構成されたサインアップまたはサインイン ポリシーを作成する

  1. スターターパックの作業ディレクトリに SignUpOrSignin.xml ファイルのコピーを作成し、新しい名前で保存します。 この記事では、例として SignUpOrSigninSAML.xml を使用します。 このファイルは、依存先のポリシー ファイルです。 デフォルトでは、JWTレスポンスを発行するように設定されています。

  2. お好みのエディターで SignUpOrSigninSAML.xml ファイルを開きます。

  3. Azure AD B2C テナントの名前で tenant-name を更新し、ポリシーの PolicyIdPublicPolicyUri の値を B2C_1A_signup_signin_samlhttp://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml に変更します。

    <TrustFrameworkPolicy
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
    PolicySchemaVersion="0.3.0.0"
    TenantId="tenant-name.onmicrosoft.com"
    PolicyId="B2C_1A_signup_signin_saml"
    PublicPolicyUri="http://<tenant-name>.onmicrosoft.com/B2C_1A_signup_signin_saml">
    
  4. ユーザー体験の最後に、Azure AD B2C には SendClaims ステップが含まれます。 この手順では、トークン発行者の技術プロファイルを参照します。 デフォルトの JWT 応答ではなく SAML 応答を発行するには、新しい SAML トークン発行者技術プロファイル SendClaims を参照するように Saml2AssertionIssuer ステップを変更します。

    次の XML スニペットを <RelyingParty> 要素の直前に追加します。 この XML は、SignUpOrSignIn カスタム ポリシー スターター パックを使用していると仮定して、LocalAccount ユーザー体験のオーケストレーション手順 4 を上書きします。

    スターター パック内の別のフォルダーから開始した場合、またはオーケストレーション ステップを追加または削除してユーザー体験をカスタマイズした場合は、 order 要素の番号が、トークン発行者ステップのユーザー体験で指定された番号に対応していることを確認します。 たとえば、他のスターターパックフォルダでは、対応するステップ番号は SocialAndLocalAccountsが7、 SocialAccountsが6、 SocialAndLocalAccountsWithMfaが9です。

    <UserJourneys>
    <UserJourney Id="SignUpOrSignIn">
      <OrchestrationSteps>
        <OrchestrationStep Order="4" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="AkamaiSaml2AssertionIssuer"/>
      </OrchestrationSteps>
    </UserJourney>
    </UserJourneys>
    

    証明書利用者要素は、アプリケーションが使用するプロトコルを決定します。 既定値は OpenIdです。 Protocol エレメントを SAML に変更する必要があります。 出力要求により、SAML アサーションに対する要求のマッピングが作成されます。

    <TechnicalProfile> 要素内の <RelyingParty> 要素全体を、次の技術プロファイル XML で置き換えます。

     <TechnicalProfile Id="PolicyProfile">
       <DisplayName>PolicyProfile</DisplayName>
       <Protocol Name="SAML2"/>
       <OutputClaims>
         <OutputClaim ClaimTypeReferenceId="displayName" />
         <OutputClaim ClaimTypeReferenceId="givenName" />
         <OutputClaim ClaimTypeReferenceId="surname" />
         <OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
         <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
         <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
       </OutputClaims>
       <SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
     </TechnicalProfile>
    

    証明書利用者の最終的なポリシー ファイルは、次の XML コードのようになります。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TrustFrameworkPolicy
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
      PolicySchemaVersion="0.3.0.0"
      TenantId="fabrikam.onmicrosoft.com"
      PolicyId="B2C_1A_signup_signin_saml"
      PublicPolicyUri="http://fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml">
      <BasePolicy>
        <TenantId>fabrikam.onmicrosoft.com</TenantId>
        <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
      </BasePolicy>
    
      <UserJourneys>
        <UserJourney Id="SignUpOrSignIn">
          <OrchestrationSteps>
            <OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="AkamaiSaml2AssertionIssuer"/>
          </OrchestrationSteps>
        </UserJourney>
      </UserJourneys>
      <RelyingParty>
        <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
        <TechnicalProfile Id="PolicyProfile">
          <DisplayName>PolicyProfile</DisplayName>
          <Protocol Name="SAML2"/>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="displayName" />
            <OutputClaim ClaimTypeReferenceId="givenName" />
            <OutputClaim ClaimTypeReferenceId="surname" />
            <OutputClaim ClaimTypeReferenceId="email" DefaultValue="" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="" />
            <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="objectId"/>
          </OutputClaims>
          <SubjectNamingInfo ClaimType="objectId" ExcludeAsClaim="true"/>
        </TechnicalProfile>
      </RelyingParty>
    </TrustFrameworkPolicy>
    

    これと同じプロセスに従って、サインイン、パスワードのリセット、プロファイル編集フローなど、他の種類のフローを実装できます。

ステップ 4 - ポリシーをアップロードする

変更を保存し、 TrustFrameworkBase.xml、新しい TrustFrameworkExtensions.xmlSignUpOrSigninSAML.xml ポリシー ファイルを Azure portal にアップロードします。

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。

  3. Azure portal で、Azure AD B2C を検索して選択します。

  4. [ポリシー] で、[ Identity Experience Framework] を選択します。 [ Upload Custom Policy] を選択し、変更した 2 つのポリシーファイルを次の順序でアップロードします。

    • ベース ファイル、たとえば TrustFrameworkBase.xml
    • 拡張機能ポリシー (例: TrustFrameworkExtensions.xml
    • 証明書利用者ポリシー (SignUpOrSigninSAML.xml など)

手順 5 - Azure AD B2C IdP SAML メタデータをダウンロードする

ポリシー ファイルがアップロードされると、Azure AD B2C は構成情報を使用して、アプリケーションが使用する ID プロバイダーの SAML メタデータ ドキュメントを生成します。 SAML メタデータドキュメントには、サインイン方法、サインアウト方法、証明書などのサービスの場所が含まれています。

  • Azure AD B2C ポリシーのメタデータは、次の URL から入手できます。 https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/samlp/metadata

  • <tenant-name>を Azure AD B2C テナントの名前に置き換えます。 <policy-name> をポリシーの名前 (ID) に置き換えます。 以下に例を示します: https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1A_signup_signin_saml/samlp/metadata

SAML メタデータをダウンロードし、デバイスにローカルに保存します。 これは、Akamai Enterprise Application Access で設定を完了するための次の手順で必要になります。

手順 6 - Azure AD B2C に Akamai Enterprise Application Access アプリケーションを登録する

Azure AD B2C で Akamai Enterprise Application Access を信頼するには、Azure AD B2C アプリケーション登録を作成します。 登録には、アプリケーションのメタデータエンドポイントなどの設定情報が含まれます。

  1. Azure portal にサインインします。

  2. 複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。

  3. 左側のメニューで、 [Azure AD B2C] を選択します。 または、 [ すべてのサービス ] を選択し、 [Azure AD B2C] を検索して選択します。

  4. [アプリの登録] を選択し、[新しい登録] を選択します。

  5. アプリケーションの名前を入力します。 たとえば、「 Akamai B2C Enterprise Application Access」と入力します。

  6. [サポートされているアカウントの種類] で、 [この組織ディレクトリ内のアカウントのみ (B2C のみ - シングル テナント)] を選択します。

  7. 「リダイレクト URI」で「Web」を選択し、ステップ 1 の「Akamai Enterprise Application Access Setting\General」で定義した Akamai URL を入力します。 たとえば、https://fabrikam.login.go.akamai-access.com/saml/sp/response のようにします。

  8. 登録 を選択します。

手順 7 - Azure AD B2C で Akamai Enterprise Application Access アプリケーションを構成する

SAML の場合、アプリケーション登録のマニフェストでいくつかのプロパティを構成する必要があります。

  1. Azure portal で、手順 3 で作成したアプリケーションの登録に移動します。

  2. [管理] で [マニフェスト] を選択してマニフェスト エディターを開きます。 次に、次のセクションで説明するプロパティを変更します。

識別子を追加する

Akamai Enterprise Application Access SAML アプリケーションが Azure AD B2C に要求を行うと、SAML 認証要求には Issuer 属性が含まれます。 この属性の値は、通常、アプリケーションのメタデータ entityID 値と同じです。 Azure AD B2C では、この値を使用して、ディレクトリ内のアプリケーションの登録を検索し、構成を読み取ります。 この検索を成功させるには、アプリケーション登録マニフェストの identifierUriIssuer 属性に一致する値を設定する必要があります。

スクリーンショットは、b2c saml の設定を示しています。

登録マニフェストで identifierURIs パラメーターを見つけ、手順 2「Azure AD B2C ClaimsProvider」で定義した IssuerURI 値を追加します。

例:

"identifierUris": [
		"https://fabrikam.login.go.akamai-access.com/saml/sp/response"
	],

この値は、アプリケーションでの EntityId に対する SAML AuthN 要求で構成されている値と同じ値であり、アプリケーションのメタデータの entityID 値になります。 また、 accessTokenAcceptedVersion パラメーターを見つけて、値を 2 に設定する必要があります。

重要

accessTokenAcceptedVersion2 に更新しないと、確認済みのドメインを要求するエラー メッセージが表示されます。

手順 8 - Akamai Enterprise Application Access で Azure AD B2C IdP の認証設定を構成する

Akamai Enterprise Application Access Azure AD B2C IdP を証明書利用者 URL などの認証情報で更新します。

  1. Enterprise Center にサインインする https://control.akamai.com/

  2. Enterprise Centerのナビゲーション・メニューで、「 アプリケーション・アクセス」 > 「アイデンティティとユーザー」 > 「アイデンティティ・プロバイダ」を選択します。

  3. ステップ 1 で作成した ID プロバイダー名を選択します。

  4. 手順 5 でダウンロードした Azure AD B2C SAML メタデータ ファイルをアップロードします。

  5. metadata.xml ファイルをアップロードするには、[ ファイルの選択] を選択します。

    スクリーンショットはメタデータファイルを示しています。

  6. [保存してデプロイ] を選択します。

ステップ 9 - Akamai Enterprise Application Access Connector をプライベートデータセンターにデプロイする

プライベート・アプリケーションへのアクセスを有効にするには、アプリケーションが存在するプライベート・データセンターに 1 つ以上の Akamai Enterprise Application Access コネクター をデプロイします。 コネクタがプライベートアプリケーションに到達でき、Akamai Cloud へのアウトバウンドアクセスが可能であることを確認します。

ステップ 10 - Akamai Enterprise Application Access でプライベートアプリケーションのアクセスアプリケーションを定義する

  1. Akamai Enterprise Application Access でアクセス・アプリケーションを定義してデプロイします。

  2. Access アプリケーションを定義する場合

オプション 1: HTTP ヘッダー

このサンプルでは、ヘッダーを表示するアプリケーションを使用します docker header-demo-app。 アプリケーションがプライベート環境にデプロイされ、コネクタがアプリケーションにアクセスできるようになったら、Akamai のドキュメント「 アクセス アプリケーションのカスタム HTTP ヘッダーの構成」に従って、カスタム HTTP タイプのアプリケーションを作成します。

  1. [認証] で、前の手順で作成した Azure AD B2C SAML IdP を選択します。

スクリーンショットは、akamai authn アプリケーションを示しています。

  1. アプリケーションの [詳細 ] セクションで、認証が成功したときの SAML 応答で Azure AD B2C によって発行された SAML 属性に HTTP ヘッダーをマップします。

例:

ヘッダー名 特性
ps-sso-first(PS-SSOファースト) http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
PS-SSO-ラスト http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
ps-sso-メールアドレス メールアドレス
PS-SSO-UID オブジェクトID

スクリーンショットは、akamai ヘッダー アプリのマッピングを示しています。

作成したカスタム HTTP タイプの Web アプリケーションの Akamai URL を選択して、アプリケーションをテストします。

スクリーンショットは、akamai ヘッダー アプリの結果を示しています。

オプション 2: OpenID Connect

このサンプルでは、Open Web Interface for .NET (OWIN) ミドルウェアと Microsoft ID プラットフォームを使用してユーザーをサインインさせる ASP.NET MVC Web アプリ を使用します。

  1. 前の手順で作成した Azure AD B2C SAML IdP で OIDC から SAML へのブリッジを構成します。

    スクリーンショットは、akamai oidc アプリの oidc 設定を示しています。

  2. Access アプリケーションの OpenID Connect の設定に続いて、カスタム HTTP タイプのアプリケーションを作成します。

  3. [認証] で、HTTP ヘッダー アプリケーションに従って、前の手順で作成した Azure AD B2C SAML IdP を選択します。

    スクリーンショットは、akamai authn アプリの設定を示しています。

  4. [詳細設定] で、認証メカニズムとして [OpenID Connect 1.0] を選択し、[保存] を選択します。

    スクリーンショットは、akamai oidc アプリの認証設定を示しています。

  5. 新しい [OpenID ] タブが表示されたら、アプリケーションのテスト用に OWIN コンポーネントを構成する手順の後半で必要になる Discovery URL をコピーします。

    スクリーンショットは、akamai oidc アプリの設定を示しています。

  6. [ 要求] セクションで、Akamai が OIDC アプリケーションに対して発行する要求を定義し、認証が成功したときに SAML 応答で Azure AD B2C によって提供される SAML 属性にその値をマッピングします。 これらの要求は、 Azure AD B2C SAML IdP で OIDC を SAML ブリッジに構成するときに前の手順で定義した内容をマップする必要があります。

    スクリーンショットは、akamai oidc アプリの要求設定を示しています。

  7. ASP.NET MVC Web アプリのスタートアップ クラスを次のコードに置き換えます。

    これらのいくつかの変更により、認証コードフローの付与が設定され、認証コードはアプリケーションのトークンエンドポイントでトークンに引き換えられ、Akamai からメタデータを取得するための検出エンドポイントを設定するためのメタデータアドレスが導入されます。

    public class Startup
    {
         // The Client ID is used by the application to uniquely identify itself to Azure AD.
         string clientId = System.Configuration.ConfigurationManager.AppSettings["ClientId"];
    
         //App Client Secret to redeem the code for an access token
         string ClientSecret = System.Configuration.ConfigurationManager.AppSettings["ClientSecret"];
    
         // RedirectUri is the URL where the user will be redirected to after they sign in.
         string redirectUri = System.Configuration.ConfigurationManager.AppSettings["RedirectUri"];
    
         // PostLogoutRedirectUri is the URL where the user will be redirected to after they sign out
         string PostLogoutRedirectUri = System.Configuration.ConfigurationManager.AppSettings["PostLogoutRedirectUri"];
    
         //Authority is the URL for authority
         string authority = System.Configuration.ConfigurationManager.AppSettings["Authority"];
    
         //discovery endpoint for obtaining metadata
         string MetadataAddress = System.Configuration.ConfigurationManager.AppSettings["MetadataAddress"];
    
    
         /// <summary>
         /// Configure OWIN to use OpenIdConnect
         /// </summary>
         /// <param name="app"></param>
         public void Configuration(IAppBuilder app)
       {
         app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
    
         app.UseCookieAuthentication(new CookieAuthenticationOptions());
         app.UseOpenIdConnectAuthentication(
             new OpenIdConnectAuthenticationOptions
             {
                 // Sets the ClientId, authority, RedirectUri as obtained from web.config
                 ClientId = clientId,
                 Authority = authority,
                 RedirectUri = redirectUri,
                 MetadataAddress = MetadataAddress,
                 // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it is using the home page
                 PostLogoutRedirectUri = redirectUri,
                 RedeemCode = true,
                 Scope = OpenIdConnectScope.OpenIdProfile,
                 // ResponseType is set to request the code id_token - which contains basic information about the signed-in user
                 ResponseType = OpenIdConnectResponseType.Code,
                  // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to OnAuthenticationFailed method
                 Notifications = new OpenIdConnectAuthenticationNotifications
                 {
                     AuthenticationFailed = OnAuthenticationFailed
                 }
             }
         );
     }
    
     /// <summary>
     /// Handle failed authentication requests by redirecting the user to the home page with an error in the query string
     /// </summary>
     /// <param name="context"></param>
     /// <returns></returns>
     private Task OnAuthenticationFailed(AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> context)
     {
         context.HandleResponse();
         context.Response.Redirect("/?errormessage=" + context.Exception.Message);
         return Task.FromResult(0);
        }
    }
    
  8. web.config ファイルにメタデータ アドレスを追加し、clientId、clientsecret、authority、redirectUri、PostLogoutRedirectUri を Akamai アプリケーションの値で置き換えappSettings

    これらの値は、前のステップ 5 で、 Discovery URL=MetadataAddress を作成した HTTP Akamai アプリケーションの OpenID タブで確認できます。 redirectUri は、Akamai コネクタがローカルの OIDC アプリケーションに解決するためのローカル アドレスです。 Authority は、 .well-known/openid-configurationドキュメントから見つけることができるauthorization_endpointです。

    検出URL: https://fabrikam.login.go.akamai-access.com/.well-known/openid-configuration

     <appSettings>
       <add key="ClientId" value="xxxxxxxxxxxxxxxxxx" />
       <add key="ClientSecret" value="xxxxxxxxxxxxxxxxxx" />
       <add key="Authority" value="https://fabrikam.login.go.akamai-access.com/oidc/oauth" />
       <add key="redirectUri" value="http://oidcapp.identity.mistermik.com/" />
       <add key="PostLogoutRedirectUri" value="https://oidc-test.go.akamai-access.com/" />
       <add key="MetadataAddress" value="https://fabrikam.login.go.akamai-access.com/.well-known/openid-configuration" />
     </appSettings>
    

    作成したカスタム http タイプの Web アプリケーションの Akamai URL を選択して、アプリケーションをテストします。

    スクリーンショットは、akamai oidc アプリの結果を示しています。

ソリューションをテストする

  1. Akamai Enterprise Application Access で指定されている外部 URL を使用して、アプリケーションの URL に移動します。

  2. 認証されていないユーザーは、Azure AD B2C サインイン ページにリダイレクトされます。

  3. ページの一覧から IdP を選択します。

  4. Azure AD B2C にリンクされた資格情報を使用して、エンド ユーザーとしてサインインします。

  5. 認証が成功すると、エンドユーザーはアプリケーションにリダイレクトされ、エンドユーザーとしてアプリケーションにサインインします。

その他のリソース