OAuth 2.0 クライアント認証情報を使用して Google Workspace API の認証を行う

このドキュメントでは、OAuth 2.0 クライアント認証情報を使用して Google Workspace API にアクセスするための認証を設定する方法について説明します。OAuth 2.0 クライアント認証情報を使用すると、Google スプレッドシートへのアクセスに必要なトークンなど、エンドユーザーのコンテキストでトークンを取得できます。SAP システムがホストされている場所を問わず、システムが OAuth 2.0 をサポートしている限り、Google Workspace API に対する認証に OAuth 2.0 クライアント認証情報を使用できます。

OAuth 2.0 クライアント認証情報を使用して Google Workspace API の認証を行うには、Google Cloud プロジェクトと SAP 環境で次の構成を完了する必要があります。

Google Cloud コンソールでの構成

SAP 環境での構成

ABAP SDK for Google Cloud には、OAuth 2.0 クライアントの認証情報を使用した認証に必要なコア コンポーネントが含まれています。

  • OAuth 2.0 クライアント プロファイルの構成に指定した OAuth 2.0 サービス プロバイダ タイプ /GOOG/ABAP_SDK
  • クライアント鍵の構成に指定する認可クラス /GOOG/CL_OAUTH_GOOGLE
  • エンドポイントや必要なパラメータ設定など、Google 固有の OAuth パラメータが事前入力される SAP ビジネス アドイン(BAdI)の実装。

ただし、SAP 環境で次の構成も完了する必要があります。

OAuth 同意画面は、誰がデータへのアクセスをリクエストしているのかと、どのような種類のデータへのアクセスがアプリに許可されるのかをユーザーに示すプロンプトです。

  1. Google Cloud コンソールで、メニュー > [API とサービス] > [OAuth 同意画面] に移動します。

    OAuth 同意画面に移動

  2. アプリのユーザータイプに [外部] を選択し、[作成] をクリックします。

  3. アプリ登録フォームで、次の情報を入力します。

    • アプリ名: 同意が必要なアプリケーションの名前。
    • ユーザー サポートメール: ユーザーが同意について問い合わせる際に使用するサポートのメールアドレス。
    • 承認済みドメイン: OAuth の同意時に使用されるドメイン。
    • デベロッパーの連絡先情報: Google はプロジェクトの変更通知に使用するメールアドレス。
  4. [保存して次へ] をクリックします。

OAuth 2.0 クライアント ID を作成する

エンドユーザーとして認証を行い、アプリ内でユーザーデータにアクセスするには、1 つ以上の OAuth 2.0 クライアント ID を作成する必要があります。クライアント ID は、Google の OAuth サーバーで個々のアプリを識別するために使用します。

  1. Google Cloud コンソールで、メニュー > [API とサービス] > [認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成] > [OAuth クライアント ID] をクリックします。

  3. [アプリケーションの種類] フィールドで、[ウェブ アプリケーション] を選択します。

  4. [名前] フィールドに、認証情報の名前を入力します。この名前は Google Cloud コンソールにのみ表示されます。

  5. [承認済みのリダイレクト URI] の下の [URI を追加] をクリックします。次に、OAuth 2.0 サーバーがレスポンスを送信する SAP リダイレクト URI を入力します。

    SAP リダイレクト URI は、SICF トランザクションの OAuth 2.0 設定から取得できます。

  6. [作成] をクリックします。

  7. クライアント IDクライアント シークレットをメモします。

OAuth 2.0 クライアント プロファイルを作成する

ABAP デベロッパーは、ビジネス要件に必要な OAuth 2.0 スコープを使用して OAuth クライアント プロファイルを作成する必要があります。Google API の OAuth 2.0 スコープについては、Google API の OAuth 2.0 スコープをご覧ください。

SDK に付属しているサンプルの OAuth クライアント プロファイル /GOOG/OAUTH_PROFILE_SAMPLE には、Google Sheets API 用に OAuth 2.0 スコープが構成されています。

  1. SAP GUI で、トランザクション コード SE80 を入力します。
  2. プルダウン リストから [Development Object] を選択します。
  3. カスタム名前空間に開発オブジェクトを作成するには、オブジェクト名のコンテキスト メニューで、[Create] > [Others] > [OAuth 2.0 Client Profile] の順に選択します。
  4. 次の詳細情報を入力します。

    • [Client Profile] フィールドに、クライアント プロファイルの名前を入力します。
    • [Type] フィールドで /GOOG/ABAP_SDK を選択します。これは、ABAP SDK for Google Cloud に付属のデフォルトのプロバイダ タイプです。
  5. クライアント プロファイルに必要なスコープを追加します。OAuth 2.0 スコープについては、Google API の OAuth 2.0 スコープをご覧ください。

  6. クライアント プロファイルを開発パッケージに保存します。上位環境に転送される転送リクエストにクライアント プロファイルを含めます。

OAuth 2.0 クライアントを構成する

SAP 管理者は、OAuth クライアント プロファイルを Google Cloud クライアント認証情報に関連付ける必要があります。

これは、SAP 環境(開発、テスト、本番環境)のすべての SAP システムで実行する 1 回限りのアクティビティです。

  1. SAP GUI で、トランザクション コード OA2C_CONFIG を入力します。デフォルトのブラウザで SAP のログインページが開きます。
  2. SAP 認証情報でログインします。
  3. OAuth 2.0 クライアントを作成するには、[Create] をクリックします。
  4. [Create a new OAuth 2.0 client] ダイアログ ボックスで、次の操作を行います。
    1. 前に SAP システムで OAuth 2.0 クライアント プロファイルを作成するで作成した OAuth 2.0 クライアント プロファイルを選択します。
    2. 構成の名前を入力します。
    3. 前に OAuth 2.0 クライアント ID 認証情報を作成するで作成した Google Cloud 認証情報の OAuth 2.0 クライアント ID を入力します。
    4. [OK] をクリックします。
  5. [Administration] タブの [General Settings] セクションで、OAuth 2.0 クライアント ID を作成するで作成した Google Cloud 認証情報のクライアント シークレットを入力します。
  6. プロキシ サーバーを使用して SAP システムからの送信 HTTP/HTTPS トラフィックを転送する場合は、[Access Settings] セクションで、次のプロキシホストの詳細を維持する必要があります。

    • プロキシホスト
    • プロキシポート
    • プロキシ ユーザー
    • プロキシ パスワード
  7. [Save] をクリックします。

クライアント キーを構成する

  1. SAP GUI で、トランザクション コード /GOOG/SDK_IMG を実行します。

    または、トランザクション コード SPRO を実行して、[SAP Reference IMG] をクリックします。

  2. [ABAP SDK for Google Cloud] > [Basic Settings] > [Configure Client Key] をクリックします。
  3. [New Entries] をクリックします。
  4. 次のフィールドに値を入力します。

    項目 説明
    Google Cloud キー名 クライアント キー構成の名前を指定します。
    Google Cloud サービス アカウント名 このフィールドは空白のままにしておきます。
    Google Cloud のスコープ このフィールドは空白のままにしておきます。
    Google Cloud プロジェクト ID ターゲット API を含む Google Cloud プロジェクトの ID を指定します。
    コマンド名 このフィールドは空白のままにしておきます。
    認可クラス 認可クラス /GOOG/CL_OAUTH_GOOGLE を指定します。
    トークンのキャッシュ保存 このフィールドは空白のままにしておきます。
    トークンの更新期限(秒) このフィールドは空白のままにしておきます。
    認可パラメータ 1 前に SAP システムで OAuth 2.0 クライアント プロファイルを作成するで作成した OAuth クライアント プロファイルの名前を指定します。
    認可パラメータ 2

    OAuth 2.0 クライアントでクライアント ID に定義した構成名を指定します。

    1 つの OAuth クライアント プロファイルに複数のクライアント ID を関連付けている場合、このフィールドは必須です。

    詳細については、複数の Google Cloud プロジェクトがある場合をご覧ください。

  5. 新しいエントリを保存します。

OAuth 2.0 アクセス トークンをリクエストする

エンドユーザーは、API リソースへのアクセスを許可するために OAuth 2.0 アクセス トークンをリクエストする必要があります。

これは、各ユーザーが SAP 環境(開発、テスト、本番環境)内のすべての SAP システムで実行する 1 回限りのアクティビティです。OAuth スコープが変更された場合、ユーザーはこのアクティビティを繰り返す必要があります。

  1. SAP GUI で、トランザクション コード OA2C_GRANT を入力します。デフォルトのブラウザで SAP のログインページが開きます。
  2. SAP 認証情報でログインします。
  3. API へのアクセスに使用するクライアント ID を選択します。
  4. [Request OAuth 2.0 Tokens] をクリックします。
  5. [Sign in with Google] 同意画面で Google アカウントの認証情報を入力し、[Allow] をクリックします。

    [Access Status] 列の緑色のインジケーターは、API リソースへのアクセスが OAuth 2.0 クライアント プロファイルで許可されていることを示します。

複数の Google Cloud プロジェクトがある場合

複数の Google Cloud プロジェクトで Google Cloud APIs を有効にしている場合は、次のガイダンスに従って、OAuth 2.0 クライアント認証情報を使用して認証を設定します。

認証構成を検証する

認証構成を検証するには、次の操作を行います。

  1. SAP GUI で、トランザクション コード /GOOG/SDK_IMG を実行します。

    または、トランザクション コード SPRO を実行して、[SAP Reference IMG] をクリックします。

  2. [ABAP SDK for Google Cloud] > [Utilities] > [Validate Authentication Configuration] をクリックします。

  3. クライアント キー名を入力します。

  4. [Execute] をクリックして、フロー全体が正しく構成されているかどうかを確認します。

    [Result] 列に緑色のチェックマークが表示されていれば、すべての構成ステップが正常に完了しています。

サポートを利用する

ABAP SDK for Google Cloud の問題を解決するには、次の操作を行います。