主な概念 - AD FS での条件付きアクセス制御
AD FS の全体的な機能は、クレームのセットを含むアクセス トークンを発行することです。 AD FS が受け入れる要求とその後の問題に関する決定は、要求規則によって管理されます。
AD FS のアクセス制御は、ユーザーまたはユーザーのグループが AD FS で保護されたリソースへのアクセスを許可するかどうかを決定する許可または拒否要求を発行するために使用される発行承認要求規則を使用して実装されます。 認証規則は信頼済みパーティーにのみ設定できます。
規則のオプション | ルール ロジック |
---|---|
すべてのユーザーを許可する | 受信要求の種類が任意の要求の種類と等しく、値が任意の値と等しい場合は、値が Permit と等しい要求を発行します |
この受信クレームを持つユーザーにアクセスを許可する | 受信要求の種類が指定された要求の種類と値が指定された要求値と等しい場合は、値が Permit と等しい要求を発行します |
この受信クレームを持つユーザーへのアクセスを拒否する | 受信要求の種類が指定された要求の種類と値が指定された要求値と等しい場合は、値が Deny と等しい要求を発行します |
これらの規則のオプションとロジックの詳細については、「 承認要求規則を使用するタイミング」を参照してください。
Windows Server 2012 R2 の AD FS では、ユーザー、デバイス、場所、認証データなど、複数の要素でアクセス制御が強化されています。 これは、承認要求規則で使用できるさまざまな種類の要求によって可能になります。 言い換えると、Windows Server 2012 R2 の AD FS では、ユーザー ID またはグループ メンバーシップ、ネットワークの場所、デバイスに基づいて条件付きアクセス制御を適用できます (ワークプレースに参加しているかどうか、詳細については、「 SSO と会社のアプリケーション間のシームレスな第 2 要素認証のために任意のデバイスから Workplace に参加する」を参照してください)。認証状態 (多要素認証 (MFA) が実行されたかどうか)。
Windows Server 2012 R2 の AD FS での条件付きアクセス制御には、次の利点があります。
柔軟で表現力のあるアプリケーションごとの承認ポリシー。ユーザー、デバイス、ネットワークの場所、認証の状態に基づいてアクセスを許可または拒否できます
証明書利用者アプリケーションに関する発行承認規則の作成。
一般的な条件付きアクセス制御シナリオの豊富な UI エクスペリエンス
高度な条件付きアクセス制御シナリオに対するリッチ クレーム言語と Windows PowerShell のサポート
カスタム (証明書利用者アプリケーションごと) 'アクセス拒否' メッセージ。 詳細については、「 AD FS サインイン ページのカスタマイズ」を参照してください。 これらのメッセージをカスタマイズすることで、ユーザーがアクセスを拒否されている理由を説明し、可能な場合はセルフサービスによる修復を容易にすることができます。たとえば、ユーザーにデバイスへの職場参加を促すなどです。 詳細については、「 会社のアプリケーション間での SSO とシームレスな Second Factor Authentication のために、任意のデバイスから Workplace に参加する」を参照してください。
次の表には、条件付きアクセス制御の実装に使用する Windows Server 2012 R2 の AD FS で使用できるすべての要求の種類が含まれています。
要求の種類 | 説明 |
---|---|
メール アドレス | ユーザーの電子メール アドレス。 |
名前 | ユーザーの指定された名前。 |
名前 | ユーザーの一意の名前。 |
UPNの | ユーザーのユーザー プリンシパル名 (UPN)。 |
共通名 | ユーザーの共通名。 |
AD FS 1 x 電子メール アドレス | AD FS 1.1 または AD FS 1.0 と相互運用するときのユーザーの電子メール アドレス。 |
グループ | ユーザーが属するグループ。 |
AD FS 1 x UPN | AD FS 1.1 または AD FS 1.0 と相互運用するときのユーザーの UPN。 |
役割 | ユーザーが持っているロール。 |
名字 | ユーザーの姓 |
PPIDの | ユーザーのプライベート識別子。 |
名前 ID | ユーザーの SAML 名識別子。 |
認証タイムスタンプ | ユーザーが認証された日時を表示するために使用します。 |
認証方法 | ユーザーの認証に使用するメソッド。 |
拒否専用グループ SID | ユーザーの拒否専用グループ SID。 |
プライマリ SID のみを拒否する | ユーザーの拒否専用プライマリ SID。 |
拒否専用プライマリ グループ SID | ユーザーの拒否専用プライマリ グループ SID。 |
グループ SID | ユーザーのグループ SID。 |
プライマリ グループ SID | ユーザーのプライマリ グループ SID。 |
プライマリ SID | ユーザーのプライマリ SID。 |
Windows アカウント名 | ___domain\user の形式のユーザーのドメイン アカウント名。 |
登録済みユーザー | ユーザーはこのデバイスを使用するように登録されています。 |
デバイス識別子 | デバイスの識別子。 |
デバイス登録識別子 | デバイス登録の識別子。 |
デバイス登録表示名 | デバイス登録の表示名。 |
デバイス OS の種類 | デバイスのオペレーティング システムの種類。 |
デバイス OS のバージョン | デバイスのオペレーティング システムのバージョン。 |
マネージド デバイス | デバイスは管理サービスによって管理されます。 |
転送されたクライアント IP | ユーザーの IP アドレス。 |
クライアント アプリケーション | クライアント アプリケーションの種類。 |
クライアント ユーザー エージェント | クライアントがアプリケーションへのアクセスに使用しているデバイスの種類。 |
クライアント IP | クライアントの IP アドレス。 |
エンドポイント パス | アクティブクライアントとパッシブ クライアントを決定するために使用できる絶対エンドポイント パス。 |
プロキシ | 要求に合格したフェデレーション サーバー プロキシの DNS 名。 |
アプリケーション識別子 | 依存当事者の識別子。 |
アプリケーション ポリシー | 証明書のアプリケーション ポリシー。 |
認証機関キー識別子 | 発行された証明書への署名に使用した証明書の機関キー識別子 (拡張子)。 |
基本制約 | 証明書の基本的な制約の 1 つ。 |
拡張キー使用法 | 証明書の拡張キー使用法の 1 つについて説明します。 |
発行者 | X.509 証明書を発行した証明機関の名前。 |
発行者名 | 証明書発行者の識別名。 |
キー使用法 | 証明書のキー使用法の 1 つ。 |
それ以降は不可 | 証明書が有効でなくなった現地時刻の日付。 |
期間の開始時刻 | 証明書が有効になる現地時刻の日付。 |
証明書ポリシー | 証明書が発行されたポリシー。 |
公開キー | 証明書の公開キー。 |
証明書の元データ | 証明書の未処理データ。 |
サブジェクトの別名 | 証明書の別名の 1 つ。 |
シリアル番号 | 証明書のシリアル番号。 |
署名アルゴリズム | 証明書の署名を作成するために使用されるアルゴリズム。 |
サブジェクト | 証明書のサブジェクト。 |
サブジェクト キー識別子 | 証明書のサブジェクト キー識別子。 |
サブジェクト名 | 証明書のサブジェクトの識別名。 |
V2 テンプレート名 | 証明書の発行または更新に使用されたバージョン 2 証明書テンプレートの名前。 これは Microsoft 固有の値です。 |
V1 テンプレート名 | 証明書を発行または更新するときに使用されるバージョン 1 証明書テンプレートの名前。 これは Microsoft 固有の値です。 |
拇印 | 証明書の拇印。 |
X 509 バージョン | 証明書の X.509 形式のバージョン。 |
企業ネットワーク内 | 企業ネットワーク内から要求が発生したかどうかを示すために使用されます。 |
パスワードの有効期限 | パスワードの有効期限が切れる時刻を表示するために使用します。 |
パスワードの有効期限日 | パスワードの有効期限までの日数を表示するために使用します。 |
パスワード URL の更新 | 更新パスワード サービスの Web アドレスを表示するために使用します。 |
認証方法の参照 | ユーザーの認証に使用される認証方法を示すために使用されます。 |
条件付きアクセス制御によるリスクの管理
使用可能な設定を使用して、条件付きアクセス制御を実装することでリスクを管理する方法は多数あります。
一般的なシナリオ
たとえば、特定のアプリケーション (証明書利用者信頼) のユーザーのグループ メンバーシップ データに基づいて条件付きアクセス制御を実装する単純なシナリオを考えてみましょう。 つまり、フェデレーション サーバーで発行承認規則を設定して、AD ドメイン内の特定のグループに属するユーザーが、AD FS によってセキュリティ保護された特定のアプリケーションにアクセスすることを許可できます。 このシナリオを実装するための詳細な手順 (UI と Windows PowerShell を使用) については、「 チュートリアル ガイド: 条件付きアクセス制御によるリスクの管理」を参照してください。 このチュートリアルの手順を完了するには、ラボ環境を設定し、「 Windows Server 2012 R2 で AD FS のラボ環境を設定する」の手順に従う必要があります。
高度なシナリオ
Windows Server 2012 R2 の AD FS で条件付きアクセス制御を実装するその他の例を次に示します。
このユーザーの ID が MFA で検証された場合にのみ、AD FS によってセキュリティ保護されたアプリケーションへのアクセスを許可する
次のコードを使用できます。
@RuleTemplate = "Authorization" @RuleName = "PermitAccessWithMFA" c:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)https://schemas\.microsoft\.com/claims/multipleauthn$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
アクセス要求が、ユーザーに登録されている職場に参加しているデバイスから送信されている場合にのみ、AD FS によってセキュリティ保護されたアプリケーションへのアクセスを許可する
次のコードを使用できます。
@RuleTemplate = "Authorization" @RuleName = "PermitAccessFromRegisteredWorkplaceJoinedDevice" c:[Type == "https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser", Value =~ "^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
アクセス要求が、MFA で検証されたユーザーに登録されている職場に参加しているデバイスからのアクセス要求である場合にのみ、AD FS によってセキュリティ保護されたアプリケーションへのアクセスを許可する
次のコードを使用できます。
@RuleTemplate = "Authorization" @RuleName = "RequireMFAOnRegisteredWorkplaceJoinedDevice" c1:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$"] && c2:[Type == "https://schemas.microsoft.com/2012/01/devicecontext/claims/isregistereduser", Value =~ "^(?i)true$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
アクセス要求が MFA で検証されたユーザーからのアクセス要求である場合にのみ、AD FS によってセキュリティ保護されたアプリケーションへのエクストラネット アクセスを許可します。
次のコードを使用できます。
@RuleTemplate = "Authorization" @RuleName = "RequireMFAForExtranetAccess" c1:[Type == "https://schemas.microsoft.com/claims/authnmethodsreferences", Value =~ "^(?i)http://schemas\.microsoft\.com/claims/multipleauthn$"] && c2:[Type == "https://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value =~ "^(?i)false$"] => issue(Type = "https://schemas.microsoft.com/authorization/claims/permit", Value = "PermitUsersWithClaim");
こちらもご覧ください
チュートリアル ガイド: 条件付きアクセス制御を使用してリスクを管理する Windows Server 2012 R2 で AD FS のラボ環境を設定する