次の方法で共有


セキュリティ認可の追加 <add>

概要

<authorization> コレクションの <add> 要素は、指定されたユーザー、グループ、匿名ユーザー、またはすべてのユーザーへのアクセスを許可または拒否する認可規則を定義します。

accessType 属性は、次の 2 種類の認可規則のいずれかを指定します。

  • 許可規則を使用すると、サイト、アプリケーション、またはサーバー上のすべてのサイトにアクセスできるユーザー アカウントまたはユーザー グループを定義できます。
  • 拒否規則を使用すると、サイト、アプリケーション、またはサーバー上のすべてのサイトにアクセスできないユーザー アカウントまたはユーザー グループを定義できます。

認可規則は、HTTP 動詞の一覧と、特定のユーザーまたはグループを対象にすることができます。

互換性

バージョン メモ
IIS 10.0 <add> 要素は IIS 10.0 では変更されませんでした。
IIS 8.5 <add> 要素は IIS 8.5 では変更されませんでした。
IIS 8.0 <add> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <add> 要素は IIS 7.5 では変更されませんでした。
IIS 7.0 <authorization> コレクションの <add> 要素は IIS 7.0 で導入されました。
IIS 6.0 <authorization> コレクションは、IIS 6.0 AzEnableAzStoreNameAzScopeNameAzImpersonationLevel の各メタベース プロパティを置き換えます。

段取り

Web サーバー上のサイトとアプリケーションの認可をサポートして構成するには、URL 認可モジュールをインストールする必要があります。 そのためには、次のステップに従います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。 - [サーバー マネージャー] で、[管理] メニューをクリックし、[役割と機能の追加] をクリックします。 - 役割と機能の追加ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] を選択します。 - [サーバーの役割] ページで、[Web サーバー (IIS)][Web サーバー] の順に展開し、[セキュリティ] を展開して、[URL 認証] を選択します。 次へ をクリックします。
    Windows Server 2012 で選択された U R L 承認を示すスクリーンショット。 . - [機能の選択] ページで、[次へ] を選択します。 - [インストール オプションの確認] ページで、[インストール] をクリックします。 - [結果] ページで、[閉じる] をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] を選択します。 - [コントロール パネル][プログラムと機能] を選択し、[Windows の機能の有効化または無効化] を選択します。 - [インターネット インフォメーション サービス]を展開し、[World Wide Web サービス] を展開し、[セキュリティ] を展開して、[URL 認証] を選択します。
    Windows 8 で選択された U R L 承認を示すスクリーンショット。- [OK] を選択します。
  2. [閉じる] をクリックします。

Windows Server 2008 または Windows Server 2008 R2

  1. タスク バーで [スタート] を選択し、[管理ツール] をポイントして、[サーバー マネージャー] を選択します。 - [サーバー マネージャー] 階層ウィンドウで [ロール] を展開し、[Web サーバー (IIS)] を選択します。 - [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] を選択します。 - 役割サービスの追加ウィザード[役割サービスの選択] ページで、[URL 認証] を選択し、[次へ] を選択します。
    Windows Server 2008 で選択された U R L 承認を示すスクリーンショット。- [インストール オプションの確認] ページで、[インストール] を選択します。 - [結果] ページで、[閉じる] をクリックします。

Windows Vista または Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順に選択します。 - [コントロール パネル][プログラムと機能] を選択し、[Windows の機能の有効化または無効化] を選択します。 - [インターネット インフォメーション サービス] を展開し、[URL 認証] を選択し、[OK] を選択します。
    Windows Windows Vista または Windows 7 で選択されている U R L 承認を示すスクリーンショット。

操作方法

認可規則を追加する方法

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーで、[スタート] ボタンをクリックし、[管理ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウで、サーバー名を展開して [サイト] を展開し、認可を構成するサイトまたはアプリケーションに移動します。

  3. [ホーム] ウィンドウで、[認可規則] をダブルクリックします。
    [承認規則] が選択されている [既定の Web サイト ホーム] ウィンドウを示すスクリーンショット。

  4. 新しい認可規則を追加するには、[操作] ウィンドウで [許可規則の追加][拒否規則の追加] の順に選択します

  5. サイトまたはアプリケーションに必要な認可設定を適用し、[OK] を選択します。 次に例を示します。

    • 例 1: 特定の HTTP 動詞についてのすべてのユーザーへの許可規則の追加:
      [拒否承認規則の追加] ダイアログ ボックスを示すスクリーンショット。[特定の動詞にこの規則を適用する] が選択されています。

    • 例 2: すべての HTTP 動詞に対する特定のユーザーの拒否規則の追加:
      [拒否承認規則の追加] ダイアログ ボックスを示すスクリーンショット。[指定した規則] が選択されています。

      Note

      既存の規則を編集または削除するには、[認可規則] ウィンドウで規則を選択し、[編集] または [削除][操作] ウィンドウで選択します。 [編集] をクリックすると、規則を編集できるダイアログ ボックスが表示されます。このダイアログ ボックスは、認可の [許可規則の追加] ダイアログ ボックスと [拒否規則の追加] ダイアログ ボックスに似ています。

構成

属性

属性 説明
accessType 必須の列挙型属性。

accessType 属性には、次のいずれかの値を指定できます。
Value 説明
Allow 認可を許可する規則を指定します。

数値は 0 です。
Deny 認可を拒否する規則を指定します。

数値は 1 です。
roles 省略可能な文字列属性。

認可規則のロールを指定します。
users 省略可能な文字列属性。

認可規則のユーザーを指定します。 複数のユーザーをコンマ区切りの一覧に追加できます。 さらに、次の特殊な識別子が定義されています。
Value 説明
* 規則がすべてのユーザーに適用されることを指定します。
? 規則が匿名ユーザーに適用されることを指定します。
verbs 省略可能な文字列属性。

認可規則の HTTP 動詞を指定します。

この値を空白のままにするか、指定しない場合、規則はすべての HTTP 動詞に適用されます。

子要素

なし。

構成サンプル

次の構成例は、Web.config ファイルに含まれている場合、既定の IIS 認可設定を削除します。これにより、すべてのユーザーが Web サイトまたはアプリケーション コンテンツにアクセスできるようになります。 次に、管理者特権を持つユーザーのみがコンテンツにアクセスできるようにする認可規則を構成します。

<configuration>
   <system.webServer>
      <security>
         <authorization>
            <remove users="*" roles="" verbs="" />
            <add accessType="Allow" users="" roles="Administrators" />
         </authorization>
      </security>
   </system.webServer>
</configuration>

サンプル コード

次の例では、管理者グループのユーザーが Contoso という名前の Web サイトにアクセスできるようにする認可規則の許可を追加します。

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authorization /+"[accessType='Allow',roles='administrators']"

Note

AppCmd.exe を使用してこれらの設定を構成するときに、必要に応じて commit パラメーターを apphost に設定できます。 これにより、Web.config ファイルでなく、ApplicationHost.config ファイル内の適切な場所のセクションに構成設定がコミットされます。

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Contoso");
         ConfigurationSection authorizationSection = config.GetSection("system.webServer/security/authorization");
         ConfigurationElementCollection authorizationCollection = authorizationSection.GetCollection();

         ConfigurationElement addElement = authorizationCollection.CreateElement("add");
         addElement["accessType"] = @"Allow";
         addElement["roles"] = @"administrators";
         authorizationCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Contoso")
      Dim authorizationSection As ConfigurationSection = config.GetSection("system.webServer/security/authorization")
      Dim authorizationCollection As ConfigurationElementCollection = authorizationSection.GetCollection
      Dim addElement As ConfigurationElement = authorizationCollection.CreateElement("add")
      addElement("accessType") = "Allow"
      addElement("roles") = "administrators"
      authorizationCollection.Add(addElement)
      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso");
var authorizationCollection = authorizationSection.Collection;

var addElement = authorizationCollection.CreateNewElement("add");
addElement.Properties.Item("accessType").Value = "Allow";
addElement.Properties.Item("roles").Value = "administrators";
authorizationCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set authorizationSection = adminManager.GetAdminSection("system.webServer/security/authorization", "MACHINE/WEBROOT/APPHOST/Contoso")
Set authorizationCollection = authorizationSection.Collection

Set addElement = authorizationCollection.CreateNewElement("add")
addElement.Properties.Item("accessType").Value = "Allow"
addElement.Properties.Item("roles").Value = "administrators"
authorizationCollection.AddElement(addElement)

adminManager.CommitChanges()