メインコンテンツまでスキップ

認証

Reveal SDK では、ユーザー名とパスワード、あるいはベアラー トークンのいずれも、認証資格情報としてデータ ソースに提供できます。

手順 1 - 認証情報をデータ ソースに提供するには、最初に IRVAuthenticationProvider インターフェイスを実装するクラスを作成し、ResolveCredentialsAsync メソッドを実装する必要があります。

public class AuthenticationProvider : IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(RVDashboardDataSource dataSource)
{
...
}
}

手順 2 - ResolveCredentialsAsync メソッドは、RVDashboardDataSource を引数として受け取ります。この引数により、資格情報を要求しているデータ ソースを特定できます。この例では、RVSqlServerDataSource オブジェクトを使用して、RVDashboardDataSource が SQL Server データ ソースかどうかを確認しています。

public class AuthenticationProvider : IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVSqlServerDataSource)
{
userCredential = new RVUsernamePasswordDataSourceCredential("sqlserveruser", "password");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}
}

手順 3 - 最後に、RevealSdkSettings.AuthenticationProvider プロパティに認証プロバイダーのインスタンスを設定する必要があります。

RevealSdkSettings.AuthenticationProvider = new AuthenticationProvider();

ユーザー名/パスワード認証

データ ソースがユーザー名とパスワードの使用を要求する場合、RVUsernamePasswordDataSourceCredential クラスのインスタンスを返す必要があります。RVUsernamePasswordDataSourceCredential クラスは、ユーザー名パスワード、およびオプションでドメインを定義するコンストラクターのオーバーロードを提供します。

public Task<IRVDataSourceCredential> ResolveCredentialsAsync(RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVPostgresDataSource)
{
userCredential = new RVUsernamePasswordDataSourceCredential("postgresuser", "password");
}
else if (dataSource is RVSqlServerDataSource)
{
userCredential = new RVUsernamePasswordDataSourceCredential("sqlserveruser", "password", "domain");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}

データ ソースが認証なしで匿名ログインを使用している場合、空のコンストラクターで RVUsernamePasswordDataSourceCredential を使用できます。

if (dataSource is RVRESTDataSource)
{
userCredential = new RVUsernamePasswordDataSourceCredential();
}

RVUsernamePasswordDataSourceCredential は、以下のデータ ソースでサポートされます。

  • Microsoft Analysis Services サーバー
  • Microsoft Dynamics CRM (オンプレミスおよびオンライン)
  • Microsoft SQL Server
  • MySQL
  • OData サービス
  • Oracle
  • PostgreSQL
  • REST サービス
  • Sybase
  • ウェブ リソース

ベアラー トークン認証

データ ソースがベアラー トークンの使用を要求する場合、RVBearerTokenDataSourceCredential クラスのインスタンスを返す必要があります。RVBearerTokenDataSourceCredential クラスは、トークンユーザー ID を定義するコンストラクターのオーバーロードを提供します。

public Task<IRVDataSourceCredential> ResolveCredentialsAsync(RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVGoogleDriveDataSource)
{
userCredential = new RVBearerTokenDataSourceCredential("fhJhbUci0mJSUzi1nIiSint....", "user@company.com");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}

RVBearerTokenDataSourceCredential は、以下のデータ ソースでサポートされます。

  • Box
  • Dropbox
  • Google アナリティクス
  • Google Drive
  • OData サービス
  • OneDrive
  • REST サービス
  • SharePoint オンライン
  • ウェブ リソース