重要
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 とどのように統合されるかを示しています。
エンドユーザーは、Akamai Enterprise Application Access に登録されているアプリケーションの外部 URL を使用して、プライベート・データセンターでホストされているアプリケーションにアクセスしようとします。
Akamai Enterprise Application Access は、認証のために認証されていないエンド ユーザーを Azure AD B2C にリダイレクトします。
認証が成功すると、Azure AD B2C は SAML アサーションを使用してユーザーを Akamai Enterprise Application Access にリダイレクトします。
Akamai Enterprise Application Access は、SAML アサーションの ID 情報を使用してユーザーを識別し、要求されたアプリケーションへのアクセスがユーザーに許可されているかどうかを判断します。
Akamai Enterprise Application Access は、OIDC クレームを作成するか、HTTP ヘッダーを挿入してアプリケーションに送信します。
アプリケーションは、この情報を使用して認証されたユーザーを識別し、エンド・ユーザーのアプリケーション・セッションを作成します。
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 に追加します。
Enterprise Center にサインインする https://control.akamai.com/
Enterprise Centerのナビゲーション・メニューで、「 アプリケーション・アクセス」 > 「アイデンティティとユーザー」 > 「アイデンティティ・プロバイダ」を選択します。
[ID プロバイダーの追加] (+) を選択します。
名前と説明を入力し、プロバイダーの種類として [サードパーティ SAML] を選択します。
続行を選択します。 [ID プロバイダーの設定] ページが表示されます。
[設定>一般] に、Identity Server の URL を入力します。 [ Akamai ドメインを使用 ] または [ドメインを使用] を選択できます。 独自のドメインを使用している場合は、自己署名証明書を使用するか、アップロードしたカスタム証明書を使用します。
[認証] で、前の手順で定義したのと同じ URL を [全般] に入力し、[保存] を選択します。
手順 2 - Azure AD B2C に SAML アプリケーションを登録する
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
になります。
Azure AD B2C の署名証明書を作成して、Akamai Enterprise Application Access に送信される SAML 応答に署名します。
ある。 証明書を取得します。 証明書をまだ持っていない場合は、自己署名証明書を使用できます。
b。 Azure AD B2C テナントに証明書をアップロードします。 名前は、次の手順で説明する
TechnicalProfile
で必要になるため、メモしておいてください。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 用に構成されたサインアップまたはサインイン ポリシーを作成する
スターターパックの作業ディレクトリに
SignUpOrSignin.xml
ファイルのコピーを作成し、新しい名前で保存します。 この記事では、例としてSignUpOrSigninSAML.xml
を使用します。 このファイルは、依存先のポリシー ファイルです。 デフォルトでは、JWTレスポンスを発行するように設定されています。お好みのエディターで
SignUpOrSigninSAML.xml
ファイルを開きます。Azure AD B2C テナントの名前で
tenant-name
を更新し、ポリシーのPolicyId
とPublicPolicyUri
の値をB2C_1A_signup_signin_saml
とhttp://<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">
ユーザー体験の最後に、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.xml
、 SignUpOrSigninSAML.xml
ポリシー ファイルを Azure portal にアップロードします。
Azure portal にサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
Azure portal で、Azure AD B2C を検索して選択します。
[ポリシー] で、[ 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 アプリケーション登録を作成します。 登録には、アプリケーションのメタデータエンドポイントなどの設定情報が含まれます。
Azure portal にサインインします。
複数のテナントにアクセスできる場合、上部のメニューの [設定] アイコンを選択し、[ディレクトリとサブスクリプション] メニューからお使いの Azure AD B2C テナントに切り替えます。
左側のメニューで、 [Azure AD B2C] を選択します。 または、 [ すべてのサービス ] を選択し、 [Azure AD B2C] を検索して選択します。
[アプリの登録] を選択し、[新しい登録] を選択します。
アプリケーションの名前を入力します。 たとえば、「 Akamai B2C Enterprise Application Access」と入力します。
[サポートされているアカウントの種類] で、 [この組織ディレクトリ内のアカウントのみ (B2C のみ - シングル テナント)] を選択します。
「リダイレクト URI」で「Web」を選択し、ステップ 1 の「Akamai Enterprise Application Access Setting\General」で定義した Akamai URL を入力します。 たとえば、
https://fabrikam.login.go.akamai-access.com/saml/sp/response
のようにします。登録 を選択します。
手順 7 - Azure AD B2C で Akamai Enterprise Application Access アプリケーションを構成する
SAML の場合、アプリケーション登録のマニフェストでいくつかのプロパティを構成する必要があります。
Azure portal で、手順 3 で作成したアプリケーションの登録に移動します。
[管理] で [マニフェスト] を選択してマニフェスト エディターを開きます。 次に、次のセクションで説明するプロパティを変更します。
識別子を追加する
Akamai Enterprise Application Access SAML アプリケーションが Azure AD B2C に要求を行うと、SAML 認証要求には Issuer
属性が含まれます。 この属性の値は、通常、アプリケーションのメタデータ entityID
値と同じです。 Azure AD B2C では、この値を使用して、ディレクトリ内のアプリケーションの登録を検索し、構成を読み取ります。 この検索を成功させるには、アプリケーション登録マニフェストの identifierUri
に Issuer
属性に一致する値を設定する必要があります。
登録マニフェストで identifierURIs
パラメーターを見つけ、手順 2「Azure AD B2C ClaimsProvider」で定義した IssuerURI 値を追加します。
例:
"identifierUris": [
"https://fabrikam.login.go.akamai-access.com/saml/sp/response"
],
この値は、アプリケーションでの EntityId
に対する SAML AuthN 要求で構成されている値と同じ値であり、アプリケーションのメタデータの entityID
値になります。 また、 accessTokenAcceptedVersion
パラメーターを見つけて、値を 2
に設定する必要があります。
重要
accessTokenAcceptedVersion
を 2
に更新しないと、確認済みのドメインを要求するエラー メッセージが表示されます。
手順 8 - Akamai Enterprise Application Access で Azure AD B2C IdP の認証設定を構成する
Akamai Enterprise Application Access Azure AD B2C IdP を証明書利用者 URL などの認証情報で更新します。
Enterprise Center にサインインする https://control.akamai.com/
Enterprise Centerのナビゲーション・メニューで、「 アプリケーション・アクセス」 > 「アイデンティティとユーザー」 > 「アイデンティティ・プロバイダ」を選択します。
ステップ 1 で作成した ID プロバイダー名を選択します。
手順 5 でダウンロードした Azure AD B2C SAML メタデータ ファイルをアップロードします。
metadata.xml ファイルをアップロードするには、[ ファイルの選択] を選択します。
[保存してデプロイ] を選択します。
ステップ 9 - Akamai Enterprise Application Access Connector をプライベートデータセンターにデプロイする
プライベート・アプリケーションへのアクセスを有効にするには、アプリケーションが存在するプライベート・データセンターに 1 つ以上の Akamai Enterprise Application Access コネクター をデプロイします。 コネクタがプライベートアプリケーションに到達でき、Akamai Cloud へのアウトバウンドアクセスが可能であることを確認します。
ステップ 10 - Akamai Enterprise Application Access でプライベートアプリケーションのアクセスアプリケーションを定義する
Akamai Enterprise Application Access でアクセス・アプリケーションを定義してデプロイします。
Access アプリケーションを定義する場合
前の手順で作成した エンタープライズ アプリケーション アクセス Azure AD B2C IdP 定義に関連付けます。
Application Facing Authenticationを設定して、プライベートアプリケーションへのSSOを有効にします。
- オプション 1: Access アプリケーションのカスタム HTTP ヘッダーを構成する
- オプション 2: Access アプリケーションの OpenID Connect を構成する
オプション 1: HTTP ヘッダー
このサンプルでは、ヘッダーを表示するアプリケーションを使用します docker header-demo-app。 アプリケーションがプライベート環境にデプロイされ、コネクタがアプリケーションにアクセスできるようになったら、Akamai のドキュメント「 アクセス アプリケーションのカスタム HTTP ヘッダーの構成」に従って、カスタム HTTP タイプのアプリケーションを作成します。
- [認証] で、前の手順で作成した Azure AD B2C SAML IdP を選択します。
- アプリケーションの [詳細 ] セクションで、認証が成功したときの 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 |
作成したカスタム HTTP タイプの Web アプリケーションの Akamai URL を選択して、アプリケーションをテストします。
オプション 2: OpenID Connect
このサンプルでは、Open Web Interface for .NET (OWIN) ミドルウェアと Microsoft ID プラットフォームを使用してユーザーをサインインさせる ASP.NET MVC Web アプリ を使用します。
前の手順で作成した Azure AD B2C SAML IdP で OIDC から SAML へのブリッジを構成します。
Access アプリケーションの OpenID Connect の設定に続いて、カスタム HTTP タイプのアプリケーションを作成します。
[認証] で、HTTP ヘッダー アプリケーションに従って、前の手順で作成した Azure AD B2C SAML IdP を選択します。
[詳細設定] で、認証メカニズムとして [OpenID Connect 1.0] を選択し、[保存] を選択します。
新しい [OpenID ] タブが表示されたら、アプリケーションのテスト用に OWIN コンポーネントを構成する手順の後半で必要になる Discovery URL をコピーします。
[ 要求] セクションで、Akamai が OIDC アプリケーションに対して発行する要求を定義し、認証が成功したときに SAML 応答で Azure AD B2C によって提供される SAML 属性にその値をマッピングします。 これらの要求は、 Azure AD B2C SAML IdP で OIDC を SAML ブリッジに構成するときに前の手順で定義した内容をマップする必要があります。
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); } }
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 Enterprise Application Access で指定されている外部 URL を使用して、アプリケーションの URL に移動します。
認証されていないユーザーは、Azure AD B2C サインイン ページにリダイレクトされます。
ページの一覧から IdP を選択します。
Azure AD B2C にリンクされた資格情報を使用して、エンド ユーザーとしてサインインします。
認証が成功すると、エンドユーザーはアプリケーションにリダイレクトされ、エンドユーザーとしてアプリケーションにサインインします。