Oracle Cloud Infrastructureドキュメント

バックエンド認証

カスタム・コンポーネントを使用してバックエンド・サービスにアクセスし、その多くに認証が必要です。 OAuthをサポートするAPIをコールするカスタム・コンポーネントを使用すると、組込みセキュリティ・コンポーネントのいずれかを使用して、カスタム・コンポーネントに必要なアクセス情報を取得できます。 認証されたユーザーIDを使用してモバイル・ユーザーを特定する、アプリケーション開始の会話にセキュリティ・コンポーネントを使用することもできます。

組込みセキュリティ・コンポーネント

Oracle Digital Assistantには、次のセキュリティ・コンポーネントが用意されています:

  • System.OAuth2Client: カスタム・コンポーネントが、Oracle Identity Cloud ServiceまたはOracle Access Manager (OAM)で保護されているクライアント・リソースにアクセスする際に使用できるクライアント資格証明タイプのOAuth2アクセス・トークンを取得します。 このコンポーネントを使用する前に、「認証サービス」ページでクライアントのサービスを追加するよう管理者に依頼します。
  • System.OAuth2AccountLink: Oracle Identity Cloud ServiceまたはOracle Access Manager (OAM)で保護されているリソースにアクセスするためにカスタム・コンポーネントが使用できる認証タイプのOAuth2アクセス・トークンを取得します。 このコンポーネントを使用する前に、「認証サービス」ページでアイデンティティ・プロバイダのサービスの追加を管理者に依頼します。

    このコンポーネントは、「外部アプリケーションのチャネルの作成」の説明に従って、ユーザー名でモバイル・ユーザーを特定するアプリケーション対応の会話についてユーザーを認証するためにも使用できます。

  • System.OAuth2ResetTokens: ログインしているすべてのユーザー・リフレッシュを取り消し、指定された認証サービスからアクセス・トークンを削除します。 これは、System.OAuth2AccountLinkコンポーネントを使用するダイアログ・フロー用です。

  • System.OAuthAccountLink: OAuth2プロトコルをサポートするアイデンティティ・プロバイダの認可コードを取得します。 カスタム・コンポーネントは、アクセス・トークンのためにこのコードを交換する必要があります。 このコンポーネントでは認証サービスを使用しません。

アイデンティティ・プロバイダ登録

OAuth2ClientOAuth2AccountLinkまたはOAuth2Linkをスキルで使用するには、管理者がアプリケーション(OAuthクライアントとも呼ばれる)をアイデンティティ・プロバイダ(IDP)に登録する必要があります。

アプリケーションの登録時に、次の情報を指定する必要があります:

  • 許可される権限付与タイプ:アプリケーションでは、許可コード権限付与タイプまたはクライアント資格証明権限付与タイプのいずれかを使用する必要があります。

  • スコープまたはロール:カスタム・コンポーネントがアクセスするために必要なリソースが含まれます。 リフレッシュ・トークン権限付与タイプを含めると、IDCS用のoffline_accessである対応するスコープも追加する必要があります。

  • リダイレクトまたはコールバックURL: IDPが認可コードを返信するために使用するURLを指定する必要があります。 一部のアイデンティティ・プロバイダは、これをリダイレクトURLまたはコールバックURIとして参照します。 リダイレクトURLに何を使用するかを調べるには、チャネル・ページに移動して、FacebookまたはWebフック・チャネルを開きます(どちらもない場合は、架空のものを作成します)。 チャネルWebフックURL (例:https://<domain>:<port>/connectors/v1/tenants/<tenantId>/listeners/facebook/channels/<channelId>)からドメインとポートを使用してリダイレクトURLを作成すると、https://<domain>:<port>/connectors/v1/callbackの形式である必要があります。 たとえば、https://example.com:443/connectors/v1/callbackなどです。

IDPでの認証にOAuth2ClientまたはOAuth2AccountLinkを使用している場合は、アプリケーション(OAuthクライアント)の作成後、クライアント資格証明、IDPトークンおよび認可URLをノートします。 この情報は、IDPの認証サービスを作成するときに必要になります。

認証サービス

System.OAuth2ClientおよびSystem.OAuth2AccountLinkのセキュリティ・コンポーネントを使用するには、管理者がまず「認証サービス」ページでIDPのサービスを追加する必要があります。 許可コードおよびクライアント資格証明権限付与タイプのサービスを作成できます。 認証サービスは、IDCSおよびOAM R2PS3アイデンティティ・プロバイダをサポートします。

サービスを作成する前に、サービスを追加するために必要な情報の指定をIDP管理者に依頼します。

認可コード・サービスの追加

権限タイプ許可コードの認証サービスを作成する方法を次に示します。 この権限タイプは、ユーザー名およびパスワードに対して認証を行います。

  1. サイド・メニューを開き、「設定>認証サービス」をクリックします。
  2. 「+サービス」をクリックします。
  3. 「承認コード」権限付与タイプを選択します。
  4. 次の値を入力します。
    • アイデンティティ・プロバイダ: 使用しているアイデンティティ・プロバイダ(IDP)のタイプ。

    • 名前: 認証サービスを識別する名前。

    • トークン・エンドポイントURL: アクセス・トークンをリクエストするためのIDP URL。

    • 認可エンドポイント: ユーザーのユーザー名とパスワードを入力して認証するページのIDP URL。

    • 短縮承認コード・リクエストURL: (オプション)短縮版の認可URL。これは、URL短縮サービス(問合せパラメータを送信できるサービス)から取得できます。 これが必要になるのは、生成された認証コード-リクエストURLがSMSおよび古いスマートフォンでは長すぎる可能性があるためです。

      デフォルトで、認可コード・リクエストURLは次のように作成されます:

      {Authorization Endpoint
            URL}?client_id={clientId}&response_type=code&scope={scope}&redirect_uri={redirectUri}&state={state}

      テキスト・メッセージに表示されるURLの例を次に示します:

      long-url.pngの説明は以下のとおりです
      「図long-url.pngの説明」

      たとえば、このURLを短縮バージョンで取得できます:

      {Authorization Endpoint
            URL}?client_id={clientId}&response_type=code&scope={scope}&redirect_uri={redirectUri}&state={state}

      Oracle Digital Assistantでは、短縮承認コード・リクエストURLを使用して、次のような認可コード・リクエストURLを作成します:

      {Short Authorization Code Request URL}?state={state}
    • トークン・エンドポイントURLの取消: (オプション)ダイアログ・フローからログイン・ユーザーのすべてのリフレッシュ・トークンおよびアクセス・トークンを取り消す場合は、IDP取消リフレッシュ・トークンURLが必要です。 このURLを指定した場合は、System.OAuth2ResetTokensコンポーネントを使用して、このサービスのユーザー・トークンを取り消すことができます。

    • クライアントIDクライアント・シークレット: アイデンティティ・プロバイダ登録で説明されているように登録されたIDPアプリケーション(OAuth Client)のクライアントIDおよびシークレット。

    • スコープ: Digital Assistantがプロバイダからアクセス・トークンをリクエストする際に含める必要のあるスコープ。 リソースへのアクセスに必要なすべてのスコープを含めます。 リフレッシュ・トークンが有効になっている場合は、リフレッシュ・トークン(通常はoffline_access)を取得するために必要なスコープを指定します。

    • サブジェクト請求: ユーザーの識別に使用するアクセス・トークン・プロファイル要求。 通常、これはsub (サブジェクト)の要求です。 ただし、一部のIDPでは、内部ユーザーIDがsub要求に格納されますが、これはDigital Assistantには役立たないためです。 このような場合は、Digital Assistantがユーザーを識別するのに役立つプロファイル要求(emailnameなど)を指定します。

    • リフレッシュ・トークン保存期間: リフレッシュ・トークンをDigital Assistantキャッシュに保持する日数。 空白のままにすると、デフォルトで7に設定されます。
    auth-service-ac.pngの説明が続きます
    「図auth-service-ac.pngの説明」
  5. 「作成」(コールバック)をクリックします。

クライアント資格証明サービスの追加

次に、権限タイプ資格証明の認証サービスを作成する方法を示します。 この権限タイプは、クライアントIDおよびクライアント・シークレットに対して認証します。

  1. サイド・メニューを開き、「設定>認証サービス」をクリックします。
  2. 「+サービス」をクリックします。
  3. 「クライアントの資格証明」権限付与タイプを選択します。
  4. 次の値を入力します。
    • アイデンティティ・プロバイダ: 使用しているアイデンティティ・プロバイダ(IDP)のタイプ。

    • 名前: 認証サービスを識別する名前。

    • トークン・エンドポイントURL: アクセス・トークンをリクエストするためのIDP URL。

    • クライアントIDクライアント・シークレット: アイデンティティ・プロバイダ登録で説明されているように登録されたIDPアプリケーション(OAuth Client)のクライアントIDおよびシークレット。

    • スコープ: Digital Assistantがプロバイダからアクセス・トークンをリクエストする際に含める必要のあるスコープ。 リソースへのアクセスに必要なすべてのスコープを含めます。



  5. 「作成」(コールバック)をクリックします。