7. ADFSを使用している環境でID/パスワード入力による認証の要求機能を利用する場合の作業

SmartRoomsの「ID/パスワード入力による認証の要求」は、各端末から「予約の登録」「今すぐ利用」「予約の中止」などの操作の際、Exchangeのメールアドレスとパスワードの入力を求める機能です。認証に成功すると各操作が実行できます。
ADFSを使用している環境の場合、本手順の実行が必要です。

_ninsho_Image_02

SmartRoomsの「ID/パスワード入力による認証の要求」機能の詳細については、Exchange連携版 管理マニュアルをご参照ください。

重要

ADFSを利用している場合、SmartRoomsの「ID/パスワード入力による認証の要求」を利用するにはオンプレミスのActive DirectoryとMicrosoft Entraの間でユーザーのパスワードのハッシュを同期する必要があります。
同期を有効にする方法は、Microsoftで公開している以下のリンクからご確認ください。

7.1. Microsoft Graph APIへの接続

PowerShellで以下の手順を実行します。

=手順=

  1. PowerShell実行ポリシーを変更します。

    PowerShell実行ポリシーの変更 」を参照してください。

  2. Microsoft Graph APIに接続します。

    Microsoft Graph APIへの接続 」を参照してください。

7.2. ADFSを利用している環境でID/パスワード入力による認証の要求機能を使えるようにする

Microsoft Graph APIへの接続後、以下のコマンドを実行します。

=手順=

  1. ユーザー名とパスワードを使用してフェデレーションユーザーを直接認証できるポリシーを作成し、IDを取得します。

    以下のコマンドを実行します(ポリシー名は任意の値)。

    $params1 = @{Definition = @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}"); DisplayName = "ポリシー名"}
    $policy = New-MgPolicyHomeRealmDiscoveryPolicy -BodyParameter $params1
    
  2. アプリケーションの登録 」で登録したアプリケーションIDを取得します。

    以下のコマンドを実行します。

    Get-MgServicePrincipal -All -Filter "(displayName eq 'アプリケーションの表示名') or (startswith(displayName,'アプリケーションの表示名'))"
    
  3. アプリケーションの登録 」で登録したアプリケーションに対して、手順1で作成したポリシーを付与します。

    以下のコマンドを実行します。

    $params2 = @{"@odata.id" = "https://graph.microsoft.com/v1.0/policies/homeRealmDiscoveryPolicies/$($policy.id)"}
    New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef -ServicePrincipalId "手順2で取得したID" -BodyParameter $params2
    
  4. ポリシーが正しく付与されているか確認します。

    以下のコマンドを実行します。

    $results = (Invoke-MgGraphRequest -Method GET -Uri https://graph.microsoft.com/v1.0/policies/homeRealmDiscoveryPolicies/$($policy.id)/appliesTo).value
    $results[0].id
    

    →出力されたIDに、手順2で取得したアプリケーションIDが含まれているか確認します。

  5. Microsoft Graph APIへの接続を切断します。

    以下のコマンドを実行します。

    Disconnect-MgGraph
    

=例=

  1. ユーザー名とパスワードを使用してフェデレーションユーザーを直接認証できるポリシーを作成し、IDを取得します。
    以下のコマンドを実行します。
    ※ポリシー名はここでは「example1234」とします
    $params1 = @{Definition = @("{`"HomeRealmDiscoveryPolicy`":{`"AllowCloudPasswordValidation`":true}}"); DisplayName = "example1234"}
    $policy = New-MgPolicyHomeRealmDiscoveryPolicy -BodyParameter $params1
    
  2. アプリケーションの登録 」で登録したアプリケーションIDを取得します。
    以下のコマンドを実行します。
    ※アプリケーション名はここでは「SmartRoomsOAuth2.0」とします。
    Get-MgServicePrincipal -All -Filter "(displayName eq 'SmartRoomsOAuth2.0') or (startswith(displayName,'SmartRoomsOAuth2.0'))"
    
  3. アプリケーションの登録 」で登録したアプリケーションに対して、手順1で作成したポリシーを付与します。
    以下のコマンドを実行します。
    ※手順2で取得したIDを「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」とします。
    $params2 = @{"@odata.id" = "https://graph.microsoft.com/v1.0/policies/homeRealmDiscoveryPolicies/$($policy.id)"}
    New-MgServicePrincipalHomeRealmDiscoveryPolicyByRef -ServicePrincipalId "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" -BodyParameter $params2
    
  4. ポリシーが正しく付与されているか確認します。

    以下のコマンドを実行します。

    $results = (Invoke-MgGraphRequest -Method GET -Uri https://graph.microsoft.com/v1.0/policies/homeRealmDiscoveryPolicies/$($policy.id)/appliesTo).value
    $results[0].id
    

    →出力されたIDに、手順2で取得したID「XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」が含まれているか確認します。

  5. Microsoft Graph APIへの接続を切断します。

    以下のコマンドを実行します。

    Disconnect-MgGraph