認証
Reveal SDK を使用すると、認証プロバイダーを使用し、そのプロバイダーを Reveal SDK に登録することで、ユーザー名 / パスワードおよびベアラー トークン認証資格情報などのさまざまな認証方法をデータ ソースに提供できます。
認証プロバイダーは、認証資格情報を要求しているデータ ソースを確認し、その特定のデータ ソースの正しい認証資格情報を返すために使用されます。
手順 1 - 認証プロバイダーを作成します。
- ASP.NET
- Java
- Node.js
- Node.js - TS
public class AuthenticationProvider: IRVAuthenticationProvider
{
public Task<IRVDataSourceCredential> ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
{
...
}
}
public class AuthenticationProvider implements IRVAuthenticationProvider {
@Override
public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
...
}
}
const authenticationProvider = async (userContext, dataSource) => {
...
}
const authenticationProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
...
}
手順 2 - 認証プロバイダーを Reveal SDK に登録します。
- ASP.NET
- Java
- Node.js
- Node.js - TS
builder.Services.AddControllers().AddReveal( builder =>
{
builder.AddAuthenticationProvider<AuthenticationProvider>();
});
RevealEngineInitializer.initialize(new InitializeParameterBuilder().
setAuthProvider(new AuthenticationProvider()).
build());
const revealOptions = {
authenticationProvider: authenticationProvider
};
app.use('/', reveal(revealOptions));
const revealOptions: RevealOptions = {
authenticationProvider: authenticationProvider
};
app.use('/', reveal(revealOptions));
ユーザー名/パスワード認証
データ ソースがユーザー名とパスワードの使用を要求する場合、RVUsernamePasswordDataSourceCredential
クラスのインスタンスを返す必要があります。RVUsernamePasswordDataSourceCredential
クラスは、ユーザー名、パスワード、およびオプションでドメインを定義するコンストラクターのオーバーロードを提供します。
- ASP.NET
- Java
- Node.js
- Node.js - TS
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);
}
}
public class AuthenticationProvider implements IRVAuthenticationProvider {
@Override
public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
if (dataSource instanceof RVPostgresDataSource) {
return new RVUsernamePasswordDataSourceCredential("username", "password");
}
else if (dataSource instanceof RVSqlServerDataSource) {
return new RVUsernamePasswordDataSourceCredential("username", "password", "domain");
}
return null;
}
}
const authenticationProvider = async (userContext, dataSource) => {
if (dataSource instanceof reveal.RVPostgresDataSource) {
return new reveal.RVUsernamePasswordDataSourceCredential("username", "password");
} else if (dataSource instanceof reveal.RVSqlServerDataSource) {
return new reveal.RVUsernamePasswordDataSourceCredential("username", "password", "domain");
}
return null;
}
const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
if (dataSource instanceof RVPostgresDataSource) {
return new RVUsernamePasswordDataSourceCredential("username", "password");
} else if (dataSource instanceof RVSqlServerDataSource) {
return new RVUsernamePasswordDataSourceCredential("username", "password", "domain");
}
return null;
}
データ ソースが認証なしで匿名ログインを使用している場合、空のコンストラクターで RVUsernamePasswordDataSourceCredential
を使用できます。
- ASP.NET
- Java
- Node.js
- Node.js - TS
if (dataSource is RVSqlServerDataSource)
{
userCredential = new RVUsernamePasswordDataSourceCredential();
}
if (dataSource instanceof RVSqlServerDataSource) {
return new RVUsernamePasswordDataSourceCredential();
}
if (dataSource instanceof reveal.RVSqlServerDataSource) {
return new reveal.RVUsernamePasswordDataSourceCredential();
}
if (dataSource instanceof RVSqlServerDataSource) {
return new RVUsernamePasswordDataSourceCredential();
}
RVUsernamePasswordDataSourceCredential
は、以下のデータ ソースでサポートされます。
- Amazon Redshift
- Microsoft Analysis Services サーバー
- Microsoft Dynamics CRM (オンプレミスおよびオンライン)
- Microsoft SQL Server
- MySQL
- OData サービス
- Oracle
- PostgreSQL
- REST サービス
- Sybase
- ウェブ リソース
ベアラー トークン認証
データ ソースがセキュリティ トークンの使用を要求する場合、RVBearerTokenDataSourceCredential
クラスのインスタンスを返す必要があります。RVBearerTokenDataSourceCredential
クラスは、トークンとユーザー ID を定義するコンストラクターのオーバーロードを提供します。
- ASP.NET
- Java
- Node.js
- Node.js - TS
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);
}
}