AD FS 2016 以降で OpenID Connect を使用して web アプリケーションを構築するBuild a web application using OpenID Connect with AD FS 2016 and later

前提条件Pre-requisites

このドキュメントを完了する前に必要な前提条件の一覧を次に示します。The following are a list of pre-requisites that are required prior to completing this document. このドキュメントでは、AD FS がインストールされ、AD FS ファームが作成されていることを前提としています。This document assumes that AD FS has been installed and an AD FS farm has been created.

  • GitHub クライアントツールGitHub client tools

  • Windows Server 2016 TP4 以降の AD FSAD FS in Windows Server 2016 TP4 or later

  • Visual Studio 2013 以降。Visual Studio 2013 or later.

AD FS 2016 以降でアプリケーショングループを作成するCreate an Application Group in AD FS 2016 and later

次のセクションでは、AD FS 2016 以降でアプリケーショングループを構成する方法について説明します。The following section describes how to configure the application group in AD FS 2016 and later.

アプリケーショングループの作成Create Application Group

  1. AD FS 管理 で、アプリケーショングループ を右クリックし、アプリケーショングループの追加 を選択します。In AD FS Management, right-click on Application Groups and select Add Application Group.

  2. アプリケーショングループウィザードの [名前] に「 ADFSSSO 」と入力し、 [クライアント-サーバーアプリケーション] で、webアプリケーションテンプレートにアクセスする web ブラウザーを選択します。On the Application Group Wizard, for the name enter ADFSSSO and under Client-Server applications select the Web browser accessing a web application template. [次へ] をクリックします。Click Next.

    AD FS OpenID

  3. クライアント識別子の値をコピーします。Copy the Client Identifier value. この値は、アプリケーションの web.config ファイルの ida: ClientId の値として後で使用されます。It will be used later as the value for ida:ClientId in the applications web.config file.

  4. リダイレクト URI - には、次のよう https://localhost:44320/ に入力します。Enter the following for Redirect URI: - https://localhost:44320/. [追加] をクリックします。Click Add. [次へ] をクリックします。Click Next.

    AD FS OpenID

  5. [概要] 画面で、 [次へ] をクリックします。On the Summary screen, click Next.

    AD FS OpenID

  6. [完了] 画面で、 [閉じる] をクリックします。On the Complete screen, click Close.

OpenID Connect と AD FS を使用して認証するサンプルアプリケーションをダウンロードして変更するDownload and modify sample application to authenticate via OpenID Connect and AD FS

このセクションでは、サンプル Web アプリをダウンロードし、Visual Studio で変更する方法について説明します。This section discusses how to download the sample Web APP and modify it in Visual Studio. ここに記載されている Azure AD サンプルを使用します。We will be using the Azure AD sample that is here.

サンプルプロジェクトをダウンロードするには、Git Bash を使用し、次のように入力します。To download the sample project, use Git Bash and type the following:

git clone https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect  

AD FS OpenID

アプリを変更するにはTo Modify the app

  1. Visual Studio を使用してサンプルを開きます。Open the sample using Visual Studio.

  2. 不足しているすべての Nuget が復元されるように、アプリをリビルドします。Rebuild the app so that all of the missing NuGets are restored.

  3. Web.config ファイルを開きます。Open the web.config file. 次のように、次の値を変更します。Modify the following values so the look like the following:

    <add key="ida:ClientId" value="[Replace this Client Id from #3 in above section]" />  
    <add key="ida:ADFSDiscoveryDoc" value="https://[Your ADFS hostname]/adfs/.well-known/openid-configuration" />  
    <!--<add key="ida:Tenant" value="[Enter tenant name, e.g. contoso.onmicrosoft.com]" />      
    <add key="ida:AADInstance" value="https://login.microsoftonline.com/{0}" />-->  
    <add key="ida:PostLogoutRedirectUri" value="[Replace this with Redirect URI from #4 in the above section]" />  
    

    AD FS OpenID

  4. Startup.Auth.cs ファイルを開き、次のように変更します。Open the Startup.Auth.cs file and make the following changes:

    • 次のことをコメントアウトします。Comment out the following:

      //string Authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);  
      
    • 次の変更を加えて、OpenId Connect ミドルウェア初期化ロジックを調整します。Tweak the OpenId Connect middleware initialization logic with the following changes:

      private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"];  
      //private static string aadInstance = ConfigurationManager.AppSettings["ida:AADInstance"];  
      //private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"];  
      private static string metadataAddress = ConfigurationManager.AppSettings["ida:ADFSDiscoveryDoc"];  
      private static string postLogoutRedirectUri = ConfigurationManager.AppSettings["ida:PostLogoutRedirectUri"];  
      

      AD FS OpenID

    • さらに、次のように OpenId Connect ミドルウェアのオプションを変更します。Further down, modify the OpenId Connect middleware options as in the following:

      app.UseOpenIdConnectAuthentication(  
          new OpenIdConnectAuthenticationOptions  
          {  
              ClientId = clientId,  
              //Authority = authority,  
              MetadataAddress = metadataAddress,  
              PostLogoutRedirectUri = postLogoutRedirectUri,
              RedirectUri = postLogoutRedirectUri
      

      AD FS OpenID

      上記を変更することで、次の操作を実行します。By changing the above we are doing the following:

      • 信頼された発行者に関するデータの通信に証明機関を使用する代わりに、MetadataAddress を使用して探索ドキュメントの場所を直接指定します。Instead of using the Authority for communicating data about the trusted issuer, we specify the discovery doc location directly via MetadataAddress

      • Azure AD では、要求に redirect_uri が存在するかどうかは強制されませんが、ADFS では実行されます。Azure AD does not enforce the presence of a redirect_uri in the request, but ADFS does. そのため、ここに追加する必要があります。So, we need to add it here

アプリが動作していることを確認するVerify the app is working

上記の変更が加えられたら、F5 キーを押します。Once the above changes have been made, hit F5. これにより、サンプルページが表示されます。This will bring up the sample page. [サインイン] をクリックします。Click on sign in.

AD FS OpenID

AD FS サインインページにリダイレクトされます。You will be re-directed to the AD FS sign-in page. さあ、サインインします。Go ahead and sign in.

AD FS OpenID

これが成功すると、サインインしたことがわかります。Once this is successful you should see that you are now signed in.

AD FS OpenID

次の手順Next Steps

AD FS の開発AD FS Development