認証

HTTP Basic認証またはOAuth 2認可(クラウド・デプロイメントで使用可能)のいずれかを使用して、HTTPSを介してOracle Essbase RESTリソースにアクセスします。

HTTP Basic認証

HTTP Basic認証を使用してユーザーを検証するには、Authorizationヘッダーで自分のEssbaseアカウントのユーザー名およびパスワードを指定します。Authorizationヘッダーの値は、次の書式で指定した、<username>:<password>のBase64エンコーディングである必要があります。

Basic <base64-encoded-username-colon-password>

cURLなどの多くのクライアント・アプリケーションでは、自分用にこのAuthorizationヘッダーを作成する方法が用意されています。

たとえば、cURLを使用して認証するには、

  • cURL環境変数CURL_CA_BUNDLEを自分のローカルCA証明書バンドルの場所に設定します。cURLを使用したCA証明書検証の詳細は、http://curl.haxx.se/docs/sslcerts.htmlを参照してください。
  • -uオプションを指定して自分のEssbaseアカウントのユーザー名およびパスワードを渡します。送信時にcURLによってそのAuthorizationヘッダーがリクエストに追加されます。

次のcURLコマンドの例では、HTTP Basic認証を使用してEssbaseインスタンスに関する詳細を取得します。

curl -i -X GET -u username:password https://myserver.example.com:9001/essbase/rest/v1/about

OAuth 2認可

EssbaseインスタンスがMarketplaceを介したOracle Cloud Infrastructure (OCI)にスタックとしてデプロイされている場合は、OAuth 2認可を使用してOracle Essbase RESTリソースにアクセスできます。これを実行するには、まず、Identity and Access Management (IAM) REST APIにREST API呼出しを発行して、OCIアイデンティティ・ドメインからアクセス・トークンを生成します。次に、認可ヘッダーのアクセス・トークンを使用してEssbaseまたはSmart View REST API呼出しを実行します。

前提条件の完了

  1. OAuth 2を使用したREST APIへのアクセスを確認します。

  2. OCIコンソールにログインします。

  3. Essbase REST APIユーザーが、機密/統合アイデンティティ・ドメイン・アプリケーションのOAuth構成で、アプリケーション役割アイデンティティ・ドメイン管理者およびアプリケーション管理者を使用してプロビジョニングされていることを確認します。

  4. アイデンティティ・ドメインおよび統合クライアント機密アプリケーションから次の固定値を見つけます。

    パラメータ
    アイデンティティ・ドメインURL アイデンティティ・ドメインの「概要」ページのドメインURL値。
    クライアントID 統合機密アイデンティティ・アプリケーションにあるOAuth認可のクライアント識別子。
    クライアント・シークレット 統合機密アイデンティティ・アプリケーションにあるOAuth認可のクライアント・シークレット。
    プライマリ・オーディエンス 統合機密アプリケーションのリソース・サーバー構成で定義されたプライマリ・オーディエンス。アイデンティティ・ドメインURLと同じにできますが、:portが含まれます。次のノートを参照してください。
    スコープ 統合機密アプリケーションのリソース・サーバー構成で定義した許容されるスコープ。次のノートを参照してください。

    ノート:

    リソース・サーバー構成が有効になっていないためにプライマリ・オーディエンスまたはスコープがない場合は、機密アプリケーションをリソース・サーバーとして構成する必要があります。
    1. アイデンティティ・ドメインの「概要」ページから、ドメインURLをクリップボードにコピーします。
    2. 「統合アプリケーション」をクリックし、Essbase用に構成された機密アプリケーションの名前をクリックします。
    3. 「OAuth構成の編集」をクリックします。
    4. 「このアプリケーションをリソース・サーバーとして今すぐ構成します」をクリックします。
    5. アイデンティティ・ドメインのURLをプライマリ・オーディエンスとして入力します(最後にポート:443を含む)。
    6. 「スコープ」で、/essbaseと入力し、「追加」ボタンをクリックします。
    7. 「変更の保存」をクリックします。
  5. Base 64は、<clientid>:<clientsecret>ペアをエンコードし、返されるエンコード済の文字列をコピーします。トークンを生成するには、次のステップ3でこれを使用します。

    Linuxの例

    echo -n "clientid:clientsecret" | base64 -w 0

トークンの生成

  1. ユーザーopcとしてEssbaseインスタンスにSSH接続します。

    ssh -v -i MPOCI_KEY.pem opc@192.0xx.xxx.xxx
  2. oracleユーザーに変更します。

    sudo su oracle
  3. エクスポート・コマンド(またはACCESS_TOKEN変数を作成するための同様のシェル・コマンド)内に、アイデンティティ・ドメインのRESTエンドポイント/oauth2/v1/tokenを呼び出してトークンを取得するcURL文を埋め込みます。<inputs>を収集した値に置き換えます。

    構文

    export ACCESS_TOKEN=`curl -k -i -H "Authorization: Basic <base64encoded_clientID:clientSecret>" -H 'Conset=UTF-8' --request POST <Identity_Domain_URL>/oauth2/v1/token -d 'grant_type=password&username=<OCI_username>&password=<OCI_password>&scope=<Primary_Audience><Scope>'| sed -rn 's/(\{"access_token":")([^"]+)(.*)/\2/p'`

    ノート:

    OCIユーザー・パスワードに特殊文字が含まれている場合は、URLによってREST呼出しでエンコードされます。(たとえば、URLエンコーディングの後にa_!p@$$w0rDa_%21p%40%24%24w0rDになります。)

    export ACCESS_TOKEN=`curl -k -i -H "Authorization: Basic base64EncodedLongAlphanumericString9" -H 'Conset=UTF-8' --request POST https://idcs-0alphanumericstring8.identity.oraclecloud.com/oauth2/v1/token -d 'grant_type=password&username=sampleOCIUserName&password=a_%21p%40%24%24w0rD&scope=https://idcs-0alphanumericstring8.identity.oraclecloud.com:443/essbase'| sed -rn 's/(\{"access_token":")([^"]+)(.*)/\2/p'`
  4. アクセス・トークンをエコーして、トークンを返すことをテストします。長い文字列を返します。

    echo $ACCESS_TOKEN

    トークンのデフォルトの有効期限は、リクエストの時点から3600秒であるため、期限切れになる前に認可に使用するか、別のトークンをリクエストする必要があります。

EssbaseまたはSmart Viewの認可

前の項で取得したOAuthトークンを使用して、EssbaseまたはSmart ViewのRESTを呼び出すことができます。

Essbase構文

curl -H "Authorization: Bearer $ACCESS_TOKEN" https://<essbase_instance_host>/essbase/rest/v1/applications

Smart Viewの構文

curl -H "Authorization: Bearer $ACCESS_TOKEN" https://<instance_host>/essbase/smartview