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

認証

Reveal SDK を使用すると、認証プロバイダーを使用し、そのプロバイダーを Reveal SDK に登録することで、ユーザー名 / パスワードおよびベアラー トークン認証資格情報などのさまざまな認証方法をデータ ソースに提供できます。

認証プロバイダーは、認証資格情報を要求しているデータ ソースを確認し、その特定のデータ ソースの正しい認証資格情報を返すために使用されます。

手順 1 - 認証プロバイダーを作成します。

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

手順 2 - 認証プロバイダーを Reveal SDK に登録します。

builder.Services.AddControllers().AddReveal( builder =>
{
builder.AddAuthenticationProvider<AuthenticationProvider>();
});

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

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

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

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

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

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

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

ベアラー トークン認証

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

public class AuthenticationProvider: IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVGoogleDriveDataSource)
{
userCredential = new RVBearerTokenDataSourceCredential("token", "userid");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}
}

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

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

Amazon Web Services

データ ソースが Amazon Web Services (AWS) を使用している場合は、RVAmazonWebServicesCredentials クラスのインスタンスを返す必要があります。RVAmazonWebServicesCredentials クラスは、keysecret を定義するためのコンストラクターのオーバーロードを提供します。

public class AuthenticationProvider: IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
IRVDataSourceCredential userCredential = null;
if (dataSource is RVS3DataSource)
{
userCredential = new RVAmazonWebServicesCredentials("key", "secret");
}
return Task.FromResult<IRVDataSourceCredential>(userCredential);
}
}

RVAmazonWebServicesCredentials は、次のデータ ソースでサポートされています。

  • Amazon Athena
  • Amazon S3