Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

REST API、PowerShell、SCCLIを使用して多要素認証(MFA)を管理

共同作成者

MFAログインは、ブラウザ、REST API、PowerShell、およびSCCLIからサポートされます。MFAは、AD FSアイデンティティマネージャを介してサポートされます。GUI、REST API、PowerShell、SCCLIを使用して、MFAの有効化、MFAの無効化、およびMFAの設定を行うことができます。

AD FSをOAuth/OIDCとしてセットアップします

  • Windows GUIウィザードを使用してAD FSを構成します*

    1. Server Manager Dashboard > Tools > ADFS Management *に移動します。

    2. >[アプリケーショングループ]*に移動します。

      1. [アプリケーショングループ]を右クリックします。

      2. を選択し、[アプリケーション名]*と入力します。

      3. [サーバーアプリケーション]*を選択します。

      4. 「 * 次へ * 」をクリックします。

    3. コピー*クライアントID *。

      これはクライアントIDです。..リダイレクトURLにコールバックURL(SnapCenterサーバURL)を追加します。..「 * 次へ * 」をクリックします。

    4. [Generate shared secret]*を選択します。

      シークレット値をコピーします。これはクライアントの秘密です。..「 * 次へ * 」をクリックします。

    5. [概要]ページで、*[次へ]*をクリックします。

      1. [完了]ページで、*[閉じる]*をクリックします。

    6. 新しく追加した*アプリケーショングループ*を右クリックし、*プロパティ*を選択します。

    7. [アプリケーションのプロパティ]から*[アプリケーションの追加]*を選択します。

    8. [アプリケーションの追加]*をクリックします。

      [Web API]を選択し、*[Next]*をクリックします。

    9. [Web APIの構成]ページで、前の手順で作成したSnapCenterサーバのURLとクライアント識別子を[識別子]セクションに入力します。

      1. [追加]*をクリックします。

      2. 「 * 次へ * 」をクリックします。

    10. [Choose Access Control Policy]ページで、要件に基づいて制御ポリシーを選択し([Permit Everyone and Require MFA]など)、*[Next]*をクリックします。

    11. [アプリケーション権限の設定]ページでは、デフォルトでOpenIDがスコープとして選択されており、*[次へ]*をクリックします。

    12. [概要]ページで、*[次へ]*をクリックします。

      [完了]ページで、*[閉じる]*をクリックします。

    13. [サンプルアプリケーションのプロパティ]ページで、*[OK]*をクリックします。

    14. 承認サーバー(AD FS)によって発行され、リソースによって消費されることを意図したJWTトークン。

      このトークンの「AUD」またはオーディエンス要求は、リソースまたはWeb APIの識別子と一致している必要があります。

    15. 選択したWebAPIを編集し、コールバックURL(SnapCenterサーバURL)とクライアント識別子が正しく追加されていることを確認します。

      ユーザー名を要求として提供するようにOpenID Connectを設定します。

    16. サーバーマネージャの右上にある* Tools メニューの下にある AD FS Management *ツールを開きます。

      1. 左側のサイドバーから* Application Groups *フォルダを選択します。

      2. Web APIを選択し、* edit *をクリックします。

      3. [発行トランスフォームルール]タブに移動します

    17. [ * ルールの追加 * ] をクリックします。

      1. [Claim rule template]ドロップダウンで、*[Send LDAP Attributes as Claims]*を選択します。

      2. 「 * 次へ * 」をクリックします。

    18. [Claim rule]*の名前を入力します。

      1. [属性ストア]ドロップダウンで*[Active Directory]*を選択します。

      2. [LDAP Attribute]ドロップダウンで*を選択し、[O*utgoing Claim Type]*ドロップダウンで[UPN]*を選択します。

      3. [ 完了 ] をクリックします。

PowerShellコマンドを使用してアプリケーショングループを作成します

PowerShellコマンドを使用して、アプリケーショングループ、Web APIを作成し、スコープと要求を追加できます。これらのコマンドは、自動スクリプト形式で使用できます。詳細については、<link to KB article>を参照してください。

  1. 次のコマンドを使用して、AD FSに新しいアプリケーショングループを作成します。

    New-AdfsApplicationGroup -Name $ClientRoleIdentifier -ApplicationGroupIdentifier $ClientRoleIdentifier

    ClientRoleIdentifier アプリケーショングループの名前

    redirectURL 許可後のリダイレクションの有効なURL

  2. AD FSサーバアプリケーションを作成し、クライアントシークレットを生成します。

    Add-AdfsServerApplication -Name "$ClientRoleIdentifier - Server app" -ApplicationGroupIdentifier $ClientRoleIdentifier -RedirectUri $redirectURL -Identifier $identifier -GenerateClientSecret

  3. ADFS Web APIアプリケーションを作成し、使用するポリシー名を設定します。

    $identifier = (New-Guid).Guid

    Add-AdfsWebApiApplication -ApplicationGroupIdentifier $ClientRoleIdentifier -Name "App Web API"

    -Identifier $identifier -AccessControlPolicyName "Permit everyone"

  4. クライアントIDとクライアントシークレットは1回しか表示されないため、次のコマンドの出力から取得します。

    "client_id = $identifier"

    "client_secret: "$($ADFSApp.ClientSecret)

  5. AD FSアプリケーションにallatclaims権限とOpenID権限を付与します。

    Grant-AdfsApplicationPermission -ClientRoleIdentifier $identifier -ServerRoleIdentifier $identifier -ScopeNames @('openid')

    $transformrule = @"

    @RuleTemplate = "LdapClaims"

    @RuleName = "AD User properties and Groups"

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer ==

    "AD AUTHORITY"]

    ⇒ issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"), query = ";userPrincipalName;{0}", param = c.Value);

    "@

  6. 変換ルールファイルを書き出します。

    $transformrule |Out-File -FilePath .\issueancetransformrules.tmp -force -Encoding ascii $relativePath = Get-Item .\issueancetransformrules.tmp

  7. Web APIアプリケーションに名前を付け、外部ファイルを使用してその発行トランスフォームルールを定義します。

    Set-AdfsWebApiApplication -Name "$ClientRoleIdentifier - Web API" -TargetIdentifier

    $identifier -Identifier $identifier,$redirectURL -IssuanceTransformRulesFile

    $relativePath

アクセストークンの有効期限を更新します

アクセストークンの有効期限は、PowerShellコマンドを使用して更新できます。

  • このタスクについて *

  • アクセストークンは、ユーザー、クライアント、およびリソースの特定の組み合わせに対してのみ使用できます。アクセストークンは無効にすることはできず、有効期限が切れるまで有効です。

  • デフォルトでは、アクセストークンの有効期限は60分です。この最小限の有効期限は十分であり、拡張されています。ビジネスクリティカルなジョブが継続的に発生しないように、十分な価値を提供する必要があります。

  • ステップ *

アプリケーショングループWebAPIのアクセストークンの有効期限を更新するには、AD FSサーバで次のコマンドを使用します。

+ Set-AdfsWebApiApplication -TokenLifetime 3600 -TargetName "<Web API>"

AD FSからBearerトークンを取得します

RESTクライアント(Postmanなど)で以下のパラメータを入力する必要があり、ユーザクレデンシャルを入力するように求められます。さらに、ベアラートークンを取得するには、第2要素認証(あなたが持っているものとあなたがいるもの)を入力する必要があります。

+ベアラートークンの有効期間は、アプリケーションごとにAD FSサーバから設定できます。デフォルトの有効期間は60分です。

フィールド

付与タイプ

承認コード

コールバックURL

コールバックURLがない場合は、アプリケーションのベースURLを入力します。

認証URL

[ADFS-domain-name]/ADFS/OAuth2/authorize

アクセストークンURL

[ADFS-domain-name]/ADFS/OAuth2/token

クライアントID

AD FSクライアントIDを入力します

クライアントシークレット

AD FSクライアントシークレットを入力します

適用範囲

OpenID

クライアント認証

基本認証ヘッダーとして送信します

リソース

[詳細オプション]タブで、[コールバックURL]と同じ値を持つ[リソース]フィールドを追加します。この値は、JWTトークンでは「AUD」値として表示されます。