バックエンド認証
アイデンティティ・プロバイダとの認証が必要なスキルがある場合は、デジタル・アシスタントとそのアイデンティティ・プロバイダ間の対話を有効にする認証サービスを設定できます。
たとえば、Microsoft Teamsチャネルのスキル、GoogleまたはOutlookカレンダにアクセスするスキル、または認証されたユーザーIDを使用してユーザーを識別するアプリケーション開始の会話によって起動されるスキルを構築している場合、認証サービスの設定が必要になる場合があります。
また、スキルでOAuth 2.0クライアント、OAuth 2.0アカウント・リンクまたはOAuth2トークンのリセット組込みコンポーネントを使用する場合は、認証サービスを設定する必要があります。
FusionベースのOracle Cloud Applicationsサービス(Oracle Sales AutomationやOracle Fusion Cloud Human Capital Managementなど)のサブスクリプションとペアになっているデジタル・アシスタント・インスタンスがある場合、提供されたスキルのバックエンド認証を構成するために何もする必要はありません。これは自動的に処理されています。
組込みセキュリティ・コンポーネント
Oracle Digital Assistantには、次のセキュリティ・コンポーネントがあります:
- OAuth 2.0クライアント : OCI IAMまたはOracle Access Manager (OAM)によって保護されているクライアント・リソースにアクセスするためにカスタム・コンポーネントが使用できる、付与タイプがクライアント資格証明のOAuth2アクセス・トークンを取得します。
(ダイアログ・フローがYAMLモードで開発されている場合は、
System.OAuth2Client
を使用します。)スキルでこのコンポーネントを使用する前に、アイデンティティ・プロバイダ登録の説明に従ってアプリケーションを登録し、認証サービスの説明に従ってクライアントのサービスを追加するよう管理者に依頼します。FusionベースのOracle Cloud Applicationsサービス(Oracle Sales CloudやOracle Human Capital Management Cloudなど)のサブスクリプションと組み合されたデジタル・アシスタント・インスタンスがある場合、OCI IAMアイデンティティ・ドメインには登録済アプリケーションおよび認証サービスが作成済ですでにあります。
- OAuth 2.0アカウント・リンク : 次のアイデンティティ・プロバイダのいずれかによって保護されているリソースにアクセスするためにカスタム・コンポーネントで使用できる、付与タイプ「認可コード」のOAuth2アクセス・トークンを取得します:
- OCI IAM
- Oracle Access Manager (OAM)
- Microsoft IDプラットフォーム
- Google Identity Platform
(ダイアログ・フローがYAMLモードで開発されている場合は、
System.OAuth2AccountLink
を使用します。)このコンポーネントのもう1つの用途は、外部アプリケーションのチャネルの作成で説明されているように、ユーザー名によってモバイル・ユーザーを特定するアプリケーション対応の会話についてユーザーを認証することです。
スキルでこのコンポーネントを使用する前に、アイデンティティ・プロバイダ登録の説明に従ってアプリケーションを登録し、認証サービスの説明に従ってクライアントのサービスを追加するよう管理者に依頼します。FusionベースのOracle Cloud Applicationsサービス(Oracle Sales CloudやOracle Human Capital Management Cloudなど)のサブスクリプションとペアになっているデジタル・アシスタント・インスタンスがある場合、OCI IAMアイデンティティ・ドメインには登録済アプリケーションがすでに存在し、認証サービスがすでに存在します。
-
OAuth 2.0トークンのリセット : 指定した認証サービスから、ログイン・ユーザーのすべてのリフレッシュ・トークンおよびアクセス・トークンを取り消します。これは、OAuth 2.0アカウント・リンク・コンポーネントを使用するダイアログ・フロー用です。
(ダイアログ・フローがYAMLモードで開発されている場合は、
System.OAuth2ResetTokens
を使用します。)このコンポーネントは、RESTコールを介したアクセス・トークンの取消しをサポートしておらず、コマンドライン・インタフェースを介したアクセス・トークンの取消しのみをサポートしているため、Microsoft IDプラットフォームでは使用できません。
-
OAuthアカウント・リンク : OAuth2プロトコルをサポートするアイデンティティ・プロバイダの認可コードを取得します。カスタム・コンポーネントは、このコードをアクセス・トークンと交換する必要があります。このコンポーネントは認証サービスを使用しません。
(ダイアログ・フローがYAMLモードで開発されている場合は、
System.OAuthAccountLink
を使用します。)
アイデンティティ・プロバイダ登録
スキルでOAuth2Client
、OAuth2AccountLink
またはOAuthAccountLink
コンポーネントを使用する前に、管理者がアプリケーション(OAuthクライアントとも呼ばれる)をアイデンティティ・プロバイダ(IDP)に登録する必要があります。
OCI IAMまたはOAMへのアプリケーションの登録
スキルでOAuth2Client
、OAuth2AccountLink
またはOAuthAccountLink
コンポーネントを使用するには、事前に管理者が機密アプリケーション(OAuthクライアントとも呼ばれる)をOCI IAMまたはOAMに登録する必要があります。
FusionベースのOracle Cloud Applicationsサービス(Oracle Sales CloudやOracle Human Capital Management Cloudなど)のサブスクリプションと組み合されたデジタル・アシスタント・インスタンスがある場合、OCI IAMアイデンティティ・ドメインには、そのサービスの登録済アプリケーションがすでに存在します。
OCI IAMへのアプリケーションの登録方法を学習するには、Oracle Cloud Infrastructureドキュメントの機密アプリケーションの追加を参照してください。OAMへのアプリケーションの登録の詳細は、『Oracle Access Managementの管理』のOAuthサービスの構成を参照してください。
OCI IAMまたはOAMにアプリケーション(クライアント)を登録する際に、次の情報を指定する必要があります:
-
許可される権限付与タイプ: アプリケーションは、認可コード権限付与タイプまたはクライアント資格証明権限付与タイプのいずれかを使用する必要があります。
-
スコープまたはロール: カスタム・コンポーネントがアクセスする必要があるリソースを含めます。リフレッシュ・トークン権限を付与する場合は、対応するスコープ(OCI IAMの場合は
offline_access
)も追加する必要があります。 -
リダイレクトまたはコールバックURL: IDPが認可コードの返信に使用するURLを指定する必要があります。一部のアイデンティティ・プロバイダでは、これはリダイレクトURLまたはコールバックURIと呼ばれます。リダイレクトURLに何を使用するかを調べるには、「チャネル」ページに移動して、FacebookまたはWebフック・チャネルを開きます(どちらもない場合は、架空のものを作成します)。チャネルのWebフックURL (たとえば、
https://<domain>:<port>/connectors/v2/tenants/<tenantId>/listeners/facebook/channels/<channelId>
)のドメインとポートを使用してリダイレクトURLを作成します。これは、https://<domain>:<port>/connectors/v2/callback
のフォーマットである必要があります。たとえば、https://example.com:443/connectors/v2/callback
です。インスタンスがOracle Cloud Platformにプロビジョニングされている場合(バージョン19.4.1のすべてのインスタンスと同様に)、
v2
ではなくv1
を使用します。
IDPでの認証にOAuth2Client
またはOAuth2AccountLink
を使用する場合は、アプリケーション(OAuthクライアント)の作成後、クライアント資格証明、IDPトークンおよび認可URLを書き留めます。この情報は、認証サービスの説明に従って認証サービスを作成するときに必要になります。
Microsoft IDプラットフォームへのアプリケーションの登録
Microsoft IDプラットフォームにアプリケーションを登録するには、『Quickstart: Register an application with the Microsoft identity platform』のMicrosoft社の説明に従います。
アプリケーション・タイプを「Web」に設定します。
認可コードを送り返すためにプラットフォームで使用されるURLを指定する必要があります。URLに何を使用するかを調べるには、デジタル・アシスタントの「チャネル」ページに移動して、FacebookまたはWebフック・チャネルを開きます(どちらもない場合は、架空のものを作成します)。チャネルのWebフックURL (たとえば、https://<domain>:<port>/connectors/v2/tenants/<tenantId>/listeners/facebook/channels/<channelId>
)のドメインとポートを使用してリダイレクトURLを作成します。これは、https://<domain>:<port>/connectors/v2/callback
のフォーマットである必要があります。たとえば、https://example.com:443/connectors/v2/callback
です。
アプリケーションを登録したら、Microsoftトピック『Create a new application secret』の説明に従ってクライアント・シークレットを作成する必要があります。このシークレットは、アプリケーションの認証サービスを作成するときに使用します。
Google OAuth2 Authorizationへのアプリケーションの登録
Google OAuth2にアプリケーションを登録するには、Googleトピック『Enable APIs for your project』に示すように、プロジェクトを作成し、必要なAPIを有効にします。カレンダ・コンポーネントを使用する予定がある場合は、Google Calendar APIとCalDAV APIの両方を有効にしてください。
次に、Googleトピック『Create authorization credentials』の説明に従って、アプリケーションのクライアントIDおよびシークレットを取得します。
OAuth承認画面で、アプリケーションがアクセス権限を必要とするスコープを指定します。詳細は、Googleトピック『Identify access scopes』を参照してください。
認証サービス
OAuth 2.0クライアントおよびOAuth 2.0 AccountLinkセキュリティ・コンポーネントを使用するには、管理者が最初に「認証サービス」ページでIDPのサービスを追加する必要があります。認可コードおよびクライアント資格証明権限付与タイプのサービスを作成できます。認証サービスは、OCI IAMおよびOAM R2PS3アイデンティティ・プロバイダをサポートします。
FusionベースのOracle Cloud Applicationsサービス(Oracle Sales CloudやOracle Human Capital Management Cloudなど)のサブスクリプションと組み合されたデジタル・アシスタント・インスタンスがある場合、デジタル・アシスタント・インスタンスに関連付けられたOCI IAMアイデンティティ・ドメインに対して認証サービスがすでに作成されています。
サービスを作成する前に、サービスの追加に必要な情報を提供するようIDP管理者に依頼する必要があります。
認可コード・サービスの追加
OCI IAM、OAM、Microsoft IDプラットフォームおよびGoogle Identity Platformの「認可コード」権限付与タイプの認証サービスを作成する方法を次に示します。この権限付与タイプは、ユーザー名およびパスワードに対して認証します。
ヒント:
OCI IAMの場合、ユーザーがOAuth 2アカウント・リンク・コンポーネント(Visual Flow Designer)またはSystem.OAuth2AccountLink
コンポーネント(YAMLモード)を使用してサインインすると、セッション中にIAMユーザーのプロファイル情報を自動的に格納できます。Store User Profile for the Duration of the Sessionを参照してください。
デジタル・アシスタントのユーザー・アイデンティティ
Oracle Digital Assistantには、特定のスキルのユーザーのアイデンティティを管理するための2つの主なオプションがあります:
- デジタル・アシスタントは、ユーザーのチャネルおよび任意のユーザー詳細(ある場合)に基づいて、そのチャネルのプロバイダによって提供される一時的で暫定的なユーザー・プロファイルを組み立てます。このような場合、異なるチャネルを介して同じスキルにアクセスする個人は、チャネルごとに異なるプロファイルを持ちます。このプロファイルの詳細は14日間保存されます。これはデフォルトの動作です。
- 複数のチャネルで認識され、より長い(または短い)期間保持できるユーザーごとに統合ユーザー・アイデンティティを作成します。このモードでは、統合ユーザー・アイデンティティを使用してアイデンティティ詳細のリンクに同意またはオプトアウトするオプションをユーザーに付与できます。このアプローチは、Twilio、SlackおよびMS Teamsチャネルで使用できます。
統合ユーザーとの関連付けは、プッシュ通知にも役立ちます。通知サービスにより、通知を受信できるユーザーのチャネルのうちどれが通知サービスによって決定され、そのチャネルにメッセージが転送されます。
統合ユーザー・アイデンティティの構成
次の一般的なステップを使用して、統合ユーザーIDのスキルを構成できます。
- デジタル・アシスタント・インスタンスでチャネル・アカウント・リンクを有効化します。
- デジタル・アシスタント・インスタンスに認可コード・サービスを追加します。
- スキルのダイアログ・フローで、OAuth 2.0アカウント・リンク・コンポーネント(ビジュアル・ダイアログ・モードの場合)またはSystem.OAuth2AccountLink (YAMLモードの場合)を追加します。
- コンポーネントで、統合ユーザー・アイデンティティ・データを格納するためのユーザー同意の処理を構成します。
特定のユーザーの統合ユーザーIDは、ユーザーがデジタル・アシスタントに初めてアクセスし、OAuth 2.0コンポーネントを使用して認可で認証されるときに設定されます。つまり、最初に認証されたアイデンティティが「真実の点」になります。同じOAuth 2.0認証済ユーザーのチャネル・アカウントIDはすべて、統合ユーザーIDに関連付けられます。
チャネル・アカウント・リンクの有効化
チャネル・アカウント・リンクを有効にして、スキルの複数のチャネルでユーザー・アイデンティティを認識できるようにします。たとえば、あるチャネルで会話を開始し、レスポンスを待機している場合、そのレスポンスの通知を他のチャネルで受信することもできます。
チャネル・リンクを有効にするには:
をクリックしてサイド・メニューを開き、「設定」→「統合アイデンティティ・サービス」を選択します。
- 「チャネル・アカウント・リンク」スイッチを「オン」に設定します。
22.12リリースより前のリリースでは、スキルにOAuth 2.0アカウント・リンク・コンポーネントを含め、その
associateWithUnifiedUser
プロパティをtrue
に設定することで、個々のスキルのチャネル・アカウント・リンクを有効にできました。22.12以降、このプロパティは非推奨になり、コンポーネントのYAMLに残っていても効果はありません。
エンド・ユーザー・プライバシ: ユーザー承諾オプション
チャネル・アカウント・リンクをアクティブ化したら、スキルのOAuth 2.0アカウント・リンク・コンポーネントのrequiresAssociationConsent
プロパティを使用して、各スキルのユーザー同意を個別に処理する方法を構成できます。オプションは次のとおりです。
Yes
: チャネル・アカウント・データを統合ユーザーIDに関連付けるための次の同意選択肢をユーザーに提示します。- アカウントの関連付け。ユーザーが現在のチャネル・アイデンティティと一元化された統合ユーザーIDのリンクを承認したことを確認します。
- このアカウントをリンクしない。この特定のチャネル・アカウントを統合ユーザーIDに関連付けないことを示します。ユーザーは今後このアカウントをリンクするかどうかを尋ねられません(ただし、ユーザーは後でその決定を取り消すことができます)。
- この時点では実行しません。現在のセッションのアカウントをリンクしませんが、後続のセッションでユーザーが承認を要求されるのを防ぐことはできません。同意プロンプトは、ユーザーがこのオプションを選択すると一時的に抑制されますが、ユーザーが24時間以上後に再度認証されると再表示される場合があります。
No
.ユーザー・チャネル・アカウントは、ユーザーが同意を求められることなく、統合ユーザーIDに自動的にリンクされます。Notify
.ユーザー・チャネル・アカウントは統合ユーザーIDに自動的にリンクされ、その事実がユーザーに通知されます。
このプロパティのデフォルト値はYes
です。
ユーザー同意プロンプトおよびメッセージのカスタマイズ
チャネル・アカウント・アイデンティティ情報が統合ユーザー・アイデンティティにリンクされていることをユーザーに通知したとき、または同意オプションが与えられている場合に、会話に表示されるプロンプトとメッセージのセットがあります。スキルのリソース・バンドルのメッセージでこれらのプロンプトのフレーズを調整できます。
リソース・バンドル内のこれらの特定のプロンプトとメッセージにアクセスするには:
- スキルで、
をクリックしてリソース・バンドルを開きます。
- 「構成」タブを選択します。
- 「フィルタ」フィールドに
OAuthAccount2Link - consent
と入力して、同意関連のバンドル・エントリを表示します。
統合ユーザー・データの保持
統合ユーザー・アイデンティティ・データが格納される時間の長さは、インスタンス・レベルで設定されます。
そのようなデータが格納される時間を構成するには:
をクリックしてサイド・メニューを開き、「設定」→「統合アイデンティティ・サービス」を選択します。
- 「指定した保存期間後にユーザーのチャネル・アカウント・データを削除」スイッチを「オン」に設定します。
オンにしないと、ユーザーのチャネル・アカウント・データは無期限に保持されます。
- チャネル・アカウント・ユーザー・データの保持期間(日数)に、データを格納する日数を入力します。
最小値は7、最大値は1100です。
ノート
データをパージするジョブは、24時間から48時間ごとに1回のみ実行されます。そのため、ジョブの時間によっては、指定した保存期間より最大48時間長くデータが保持される場合があります。
指定された保持期間後にユーザーのチャネル・アカウント・データを削除は、統合ユーザー・アイデンティティの一部として格納されているチャネル関連データにのみ影響します。チャネル・アカウント・リンクが有効になっていない場合、チャネルからのユーザーのプロファイル・データは14日間保持されます。
チャネル・リンクがサポートされていないチャネルでは、チャネル・アカウント・リンクがグローバルに有効化されている場合でも、14日間の期間が適用されます。