【Datasphere】OAuth Clientのアクセストークン取得方法

この記事を書いたメンバー:

生島 健大

【Datasphere】OAuth Clientのアクセストークン取得方法

目次

■はじめに

こんにちは。VAC本部の生島です。
普段はSAP Analytics CloudのBI・Planning機能の導入支援を行っています。

ビジネスユーザのためのデータ活用プラットフォームとしてリリースされたDatasphere(旧Data Warehouse Cloud)が登場してから数年が経過し、日本でも少しずつ導入・移行されるお客様が増えてきた印象があります。

Datasphereのデータを活用するには、SAPのBIツールであるSAP Analytics Cloud以外にも、
TableauやPower BIなどのサードパーティのBIツールをご利用いただくことが可能です。

その際、接続タイプにはODataやODBCをご使用いただけますが、OData接続の場合はOAuth2.0での認証が必須となります。

OData サービスを介したサードパーティクライアント、ツール、およびアプリでの公開データの利用には、タイプ authorization_code の 3-legged OAuth2.0 フローが必要です。

https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/3f92b46fe0314e8ba60720e409c219fc.html

今回は、OData接続時に必須となるOAuth Client設定の手順と、
設定したOAuthからアクセストークンを取得する方法をご紹介したいと思います。

■事前準備

事前に以下のツールのインストールが必要です。
・Postman

以下の手順に沿ってインストールを行ってください。
https://developers.sap.com/tutorials/api-tools-postman-install..html

■OAuth Clientの設定

まず初めに、認証に使用するためのOAuth Clientの設定を行います。

Datasphereにアクセスし、左上のメニューから「システム」→「管理」を開きます。

「アプリ統合」タブを選択し、「新規OAuthクライアントを追加」を選択してください。

「名称」欄を入力し、「目的」欄は「インタラクティブ用途」を選択してください。
「リダイレクトURI」欄は、接続先のツールの仕様をご確認の上、既定のURIをご入力ください。

入力が完了したら、「追加」ボタンを押下してください。

追加が完了すると、OAuthの「クライアントID」「シークレット」が自動生成されます。
後のPostmanでのアクセストークン取得時に使用するため、両方とも控えておいてください。
また、シークレットを控えることがこのタイミングのみとなります。
一度画面を閉じてしまうと確認できなくなりますので、ご注意ください。

OAuth Client設定が完了したら、Clientが追加されたことを確認し、OAuthの「権限URL」「トークンURL」を控えてください。

これでOAuth Clientの設定は完了です。

■一時パスコードの取得

Postmanを実行する前に、一時パスコードを取得します。

先程取得したOAuth Clientの「クライアントID」をURIエンコードしてください。
※セキュリティのため、できるだけオフラインで行うことを推奨しますが、以下のリンク先から実施することも可能です。
https://www.urlencoder.org/

エンコードした「クライアントID」と、OAuthの「権限URL」を使用して、以下の文字列に当てはめ、作成したURLをブラウザで実行してください。

「権限URL」?response_type=code&client_id=「クライアントID」

作成したURLにブラウザでアクセスし、表示されたページのURLの「code=」以降の文字列が「一時パスコード」となりますので、控えておいてください。
※セッションが切れた場合はDSPへのログインが求められます。

■Postmanの実行

事前にインストールしたPostmanを開き、新規リクエストを追加します。

GETからPOSTメソッドへ変更し、URLにはOAuth画面で取得した「トークンURL」を入力します。

「認可」タブを開き、Auth Typeを「Basic認証」に変更し、ユーザ名、パスワードには、それぞれ「クライアントID」と「シークレット」を設定します。

「ヘッダー」タブを選択し、カスタムヘッダ「x-sap-sac-custom-auth」を追加し、値を「true」としてください。

「ボディ」タブを選択し、ラジオボタンは「x-www-form-urlencoded」を選択し、以下を追加してください。
〇 KEY:response_type / VALUE:token
〇 KEY:code / VALUE:「一時パスコード」
〇 KEY:grant_type / VALUE:authorization_code

送信ボタンを押すと、レスポンスからアクセストークンとリフレッシュトークンの値を取得することができます。

■さいごに

いかがでしたか。特にSAC以外のサードパーティのBIツールを利用した場合、
OAuthの認証設定を求められる場合がありますので、上記の手順が問題解決の一助になると幸いです。

今後もDatasphereに関する情報を随時発信していきますので、ぜひ今後もBeeXブログにご注目ください。

■参考資料

https://community.sap.com/t5/technology-blogs-by-sap/sap-datasphere-cli-getting-rid-of-passcodes-thanks-to-oauth-client-support/ba-p/13543718

カテゴリー
タグ

この記事を書いたメンバー

SAPシステムや基幹システムのクラウド移行・構築・保守、
DXに関して
お気軽にご相談ください

03-6260-6240 (受付時間 平日9:30〜18:00)