OAuth を使用し、Power BI Report Server と SSRS に接続する

OAuth を使用して Power BI Report Server と Reporting Services に接続し、モバイル レポートまたは KPI を表示できます。 Power BI Report Server と SQL Server Reporting Services 2016 以降に接続する目的で、Power BI モバイル アプリで OAuth 認証をサポートするように環境を構成する方法について説明します。

注意

WAP 認証を使用した Power BI Report Server でホストされている Power BI レポートの表示が、現在 iOS と Android アプリでサポートされるようになりました。

要件

Web アプリケーション プロキシ (WAP) および Active Directory フェデレーション サービス (ADFS) サーバーには、Windows Server 2016 が必要です。 Windows 2016 の機能レベル ドメインは必要ありません。

ユーザーが Power BI モバイル アプリへのレポート サーバーの接続を追加できるようにするには、レポート サーバーのホーム フォルダーへのアクセス権を付与する必要があります。

ドメイン ネーム サービス (DNS) の構成

パブリック URL は Power BI モバイル アプリの接続先です。 次に例を示します。

https://reports.contoso.com

reports の DNS レコードでは、Web アプリケーション プロキシ (WAP) サーバーのパブリック IP アドレスを指定します。 また、ADFS サーバーのパブリック DNS レコードを構成する必要もあります。 たとえば、次の URL で ADFS サーバーを構成してあるものとします。

https://fs.contoso.com

fs の DNS レコードでは、Web アプリケーション プロキシ (WAP) サーバーのパブリック IP アドレスを指定します。この IP アドレスは、WAP アプリケーションの一部として発行されます。

証明書

WAP アプリケーションと ADFS サーバー両方の証明書を構成する必要があります。 これらの証明書はどちらも、モバイル デバイスが認識する有効な証明機関に含まれる必要があります。

Reporting Services の構成

Reporting Services 側での構成はあまりありません。 必要なのは、以下を確認することだけです。

サービス プリンシパル名 (SPN)

SPN は、Kerberos 認証を使うサービスの一意の識別子です。 レポート サーバーに対して適切な HTTP SPN があることを確認する必要があります。

レポート サーバーの適切なサービス プリンシパル名 (SPN) の構成方法については、「レポート サーバーのサービス プリンシパル名 (SPN) の登録」をご覧ください。

ネゴシエート認証を有効にする

レポート サーバーが Kerberos 認証を使用できるようにするには、レポート サーバーの認証の種類を RSWindowsNegotiate として構成する必要があります。 これは、rsreportserver.config ファイルで行います。

<AuthenticationTypes>  
    <RSWindowsNegotiate />  
    <RSWindowsKerberos />  
    <RSWindowsNTLM />  
</AuthenticationTypes>

詳しくは、「Modify a Reporting Services Configuration File」 (Reporting Services 構成ファイルを変更する) および「レポート サーバーで Windows 認証を構成する」をご覧ください。

Active Directory フェデレーション サービス (ADFS) の構成

環境内の Windows 2016 サーバーで ADFS を構成する必要があります。 構成を行うには、サーバー マネージャーで [管理]、[役割と機能の追加] の順に選択します。 詳しくは、「Active Directoryフェデレーション サービス」をご覧ください。

アプリケーション グループを作成する

AD FS 管理画面内で、Power BI Mobile アプリの情報を含む Reporting Services のアプリケーション グループを作成します。

次の手順でアプリケーション グループを作成できます。

  1. AD FS 管理アプリで、 [アプリケーション グループ] を右クリックし、 [アプリケーション グループの追加...] を選びます。

    ADFS Add Application

  2. アプリケーション グループの追加ウィザードで、アプリケーション グループの名前を指定し、Web API にアクセスするネイティブ アプリケーションを選びます。

    ADFS Application Group Wizard 01

  3. [次へ] を選択します。

  4. 追加するアプリケーションの名前を指定します。

  5. クライアント ID が自動生成されるときに、iOS と Android の両方について「484d54fc-b481-4eee-9505-0258a1913020」と入力します。

  6. 次のリダイレクト URL を追加します。

    Power BI モバイルのエントリ – iOS:
    msauth://code/mspbi-adal://com.microsoft.powerbimobile
    msauth://code/mspbi-adalms://com.microsoft.powerbimobilems
    mspbi-adal://com.microsoft.powerbimobile
    mspbi-adalms://com.microsoft.powerbimobilems

    Android アプリに必要なのは次の手順だけです。
    urn:ietf:wg:oauth:2.0:oob

    ADFS Application Group Wizard 02

  7. [次へ] を選択します。

  8. レポート サーバーの URL を指定します。 これは、Web アプリケーション プロキシにアクセスする外部 URL です。 次の形式でなければなりません。

    注意

    この URL は、大文字と小文字が区別されます。

    https://<report server url>/reports

    ADFS Application Group Wizard 03

  9. [次へ] を選択します。

  10. 組織のニーズに合った [アクセス制御ポリシー] を選びます。

    ADFS Application Group Wizard 04

  11. [次へ] を選択します。

  12. [次へ] を選択します。

  13. [次へ] を選択します。

  14. [閉じる] を選びます。

完了すると、次のようなアプリケーション グループのプロパティが表示されます。

ADFS Application Group Wizard

Web アプリケーション プロキシ (WAP) の構成

環境内のサーバーで、Web アプリケーション プロキシ (役割) の Windows の役割を有効にします。 これは、Windows 2016 サーバー上になければなりません。 詳しくは、「Web Application Proxy in Windows Server 2016」 (Windows Server 2016 での Web アプリケーション プロキシ) および「Publishing Applications using AD FS Preauthentication」 (AD FS の事前認証を使用したアプリケーションの公開) をご覧ください。

制約付き委任の構成

OAuth 認証から Windows 認証に切り替えるには、プロトコルの切り替えで制約付き委任を使う必要があります。 これは、Kerberos の構成の一部です。 Reporting Services の SPN は、Reporting Services の構成で既に定義してあります。

Active Directory 内の WAP サーバー コンピューター アカウントで制約付き委任を構成する必要があります。 Active Directory に対する権限を持っていない場合は、ドメイン管理者に頼む必要があります。

制約付き委任を構成するには次のようにします。

  1. Active Directory ツールがインストールされているコンピューターで、Active Directory ユーザーとコンピューターを起動します。

  2. WAP サーバーのコンピューター アカウントを検索します。 既定では、コンピューター コンテナー内にあります。

  3. WAP サーバーを右クリックし、 [プロパティ] に移動します。

  4. [委任] タブを選びます。

  5. [指定されたサービスへの委任でのみこのコンピューターを信頼する][任意の認証プロトコルを使う] をオンにします。

    WAP Constrained

    これにより、この WAP サーバー コンピューター アカウントに制約付き委任が設定されます。 次に、このコンピューターが委任を許可されるサービスを指定する必要があります。

  6. サービス ボックスの下の [追加…] を選択します。

    WAP Constrained 02

  7. [ユーザーまたはコンピューター] を選びます。

  8. Reporting Services に使っているサービス アカウントを入力します。 このアカウントは、Reporting Services の構成で SPN を追加したアカウントです。

  9. Reporting Services の SPN を選び、 [OK] を選びます。

    注意

    NetBIOS の SPN だけが表示される場合があります。 NetBIOS と FQDN の両方の SPN が存在する場合は、実際に両方が選択されます。

    WAP Constrained 03

  10. [展開済み] チェック ボックスがオンになっていると、結果は次のようになります。

    WAP Constrained 04

  11. [OK] を選択します。

WAP アプリケーションを追加する

レポート アクセス管理コンソールでアプリケーションを発行できますが、ここでは PowerShell でアプリケーションを作成します。 アプリケーションを追加するコマンドは次のとおりです。

Add-WebApplicationProxyApplication -Name "Contoso Reports" -ExternalPreauthentication ADFS -ExternalUrl https://reports.contoso.com/ -ExternalCertificateThumbprint "0ff79c75a725e6f67e3e2db55bdb103efc9acb12" -BackendServerUrl https://ContosoSSRS/ -ADFSRelyingPartyName "Reporting Services - Web API" -BackendServerAuthenticationSPN "http/ContosoSSRS.contoso.com" -UseOAuthAuthentication
パラメーター コメント
ADFSRelyingPartyName ADFS 内のアプリケーション グループの一部として作成した Web API の名前です。
ExternalCertificateThumbprint 外部ユーザーに使う証明書です。 この証明書がモバイル デバイスで有効であり、信頼された証明機関から発行されていることが重要です。
BackendServerUrl WAP サーバーからレポート サーバーへの URL です。 WAP サーバーが DMZ 内にある場合は、完全修飾ドメイン名を使うことが必要な場合があります。 WAP サーバー上の Web ブラウザーからこの URL にアクセスできることを確認します。
BackendServerAuthenticationSPN Reporting Services の構成の一部として作成した SPN です。

WAP アプリケーションの統合認証の設定

WAP アプリケーションを追加した後は、IntegratedWindowsAuthentication を使うように BackendServerAuthenticationMode を設定する必要があります。 それを設定するには、WAP アプリケーションからの ID が必要です。

Get-WebApplicationProxyApplication "Contoso Reports" | fl

Add Application Group

次のコマンドを実行し、WAP アプリケーションの ID を使って BackendServerAuthenticationMode を設定します。

Set-WebApplicationProxyApplication -id 30198C7F-DDE4-0D82-E654-D369A47B1EE5 -BackendServerAuthenticationMode IntegratedWindowsAuthentication

Add Application Group wizard

Power BI モバイル アプリとの接続

Power BI モバイル アプリ内で、Reporting Services インスタンスに接続します。 そのためには、WAP アプリケーションの外部 URL を指定します。

Type the server address

[接続] を選ぶと、ADFS サインイン ページに移動します。 ドメインの有効な資格情報を入力します。

Sign-in to ADFS

[サインイン] を選択すると、Reporting Services サーバーからの要素が表示されます。

多要素認証

多要素認証を有効にして、環境のセキュリティを強化できます。 詳細については、「AD FS で Azure MFA を認証プロバイダーとして構成する」を参照してください。

トラブルシューティング

「SSRS サーバーにログインできませんでした」というエラーが表示される

モバイル デバイスのプロキシとして動作するように Fiddler を設定し、要求がどこまで行われているかを確認できます。 電話デバイスの Fiddler プロキシを有効にするには、Fiddler を実行しているコンピューターで iOS および Android 用の CertMaker をセットアップする必要があります。 Telerik for Fiddler からのアドインです。

Fiddler を使うとサインインが正常に行われる場合は、WAP アプリケーションまたは ADFS サーバーでの証明書の問題である可能性があります。