認証
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 オンライン
- ウェブ リソース