セキュリティ トークンを生成する

この記事では、サービス プリンシパル認証トークン、ユーザーの認証トークン、およびユーザーの更新トークンを生成する方法について説明します。

Microsoft Entra ID でアプリを登録する

  1. Azure Data Manager for Energy プラットフォームをプロビジョニングするには、Azure portal アプリ登録ページでアプリを登録する必要があります。 Microsoft アカウントか、職場または学校アカウントを使って、アプリを登録できます。 構成方法の手順については、アプリの登録に関するドキュメントを参照してください。

  2. アプリの概要セクションで、リダイレクト URI が指定されていない場合は、[プラットフォームの追加]>[Web] の順に選択し、http://localhost:8080 を追加して [保存] を選択します。

    アプリへの URI の追加を示すスクリーンショット。

パラメーターをフェッチする

Azure portal でアプリを登録した後に、パラメーターを見つけることもできます。

テナント ID を検索する

  1. 組織の Microsoft Entra アカウントに移動します。 Azure portal の検索バーで Microsoft Entra ID を検索できます。

  2. [概要] タブの [基本情報] セクションでテナント ID を見つけます。

  3. tenant-ID 値をコピーし、後で使用するためにエディターに貼り付けます。

    Microsoft Entra ID の検索を示すスクリーンショット。

    テナント ID の検索を示すスクリーンショット。

client-id を検索する

client-id は、Azure Data Manager for Energy インスタンスのプロビジョニング中にアプリケーションを登録するために使用する値と同じです。 これは多くの場合、app-idと呼ばれます。

  1. Microsoft Azure Data Manager for Energy の概要ページに移動します。 [Essentials] ウィンドウで、クライアント ID を見つけます。

  2. client-id 値をコピーし、後で使用するためにエディターに貼り付けます。

  3. 現在、1 つの Azure Data Manager for Energy インスタンスを使用すると、1 つの app-id を 1 つのインスタンスに関連付けることができます。

    重要

    Entitlement API 呼び出しで値として渡される client-id は、Azure Data Manager for Energy インスタンスのプロビジョニングに使用されたものと同じである必要があります。

    登録済みアプリのクライアント ID の検索を示すスクリーンショット。

client-secret を検索する

client-secret は、アプリが自身の身元を示すために証明書の代わりに使用できる文字列値です。 アプリケーション パスワードと呼ばれることもあります。

  1. アプリ登録 に移動します。

  2. [管理] セクションで、[証明書とシークレット] を選びます。

  3. [新しいクライアント シークレット] を選択して、Azure Data Manager for Energy インスタンスの作成に使用したクライアント ID のクライアント シークレットを作成します。

  4. 後でクライアント アプリケーションのコードで使用できるように、シークレットのを記録します。

    app-idclient-secret のアクセス トークンには、インスタンスへのインフラストラクチャ管理者アクセス権があります。

    注意

    シークレットの値を記録することを忘れないでください。 クライアント シークレットの作成でこのページを閉じた後は、このシークレット値は二度と表示されません。

    クライアント シークレットの検索を示すスクリーンショット。

redirect-uri を検索する

アプリの redirect-uri。アプリが認証応答を送受信します。 ポータルで登録したいずれかのリダイレクト URI と完全に一致させる必要があります (ただし、URL エンコードが必要)。

  1. アプリ登録 に移動します。
  2. [管理] セクションで、[認証] を選択します。
  3. アプリが Microsoft Entra ID から応答を受信するための redirect-uri (または応答 URL) を取得します。

redirect-uri を示すスクリーンショット。

Azure Data Manager for Energy インスタンスの adme-url を検索する

  1. 上記で生成した client-id を使用して、Azure Data Manager for Energy インスタンス を作成します。

  2. Azure Portal の Azure Data Manager for Energy の概要ページに移動します。

  3. [要点] ウィンドウで、URI をコピーします。

    Azure Data Manager for Energy インスタンスの URI の検索を示すスクリーンショット。

data-partition-id を検索する

Azure Data Manager for Energy インスタンスでデータ パーティションの一覧を取得するには、2 つの方法があります。

  • オプション 1: Azure Data Manager for Energy UI の [詳細] セクションで、[データ パーティション] メニュー項目に移動します。

    Azure Data Manager for Energy インスタンスからの data-partition-id の検索を示すスクリーンショット。

  • オプション 2: Azure Data Manager for Energy の概要 ページの [要点] ペインの [データ パーティション] フィールドの下で、[ビュー] を選択します。

    Azure Data Manager for Energy インスタンスの [概要] ページからの data-partition-id の検索を示すスクリーンショット。

    データ パーティションを含む Azure Data Manager for Energy インスタンスの [概要] ページからの data-partition-id の検索を示すスクリーンショット。

ドメインを見つける

既定では、すべての Azure Data Manager for Energy インスタンスの domain は dataservices.energy となります。

client-id 認証トークンを生成する

プレースホルダーの値を、先ほど前提条件の手順で検出した対応する値に置き換えた後、Azure Cloud Bash で次の curl コマンドを実行します。 応答のアクセス トークンは、client-id 認証トークンです。

要求の形式

curl --location --request POST 'https://login.microsoftonline.com/<tenant-id>/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'scope=<client-id>.default' \
--data-urlencode 'client_id=<client-id>' \
--data-urlencode 'client_secret=<client-secret>' \
--data-urlencode 'resource=<client-id>'

サンプル応答

    {
        "token_type": "Bearer",
        "expires_in": 86399,
        "ext_expires_in": 86399,
        "access_token": "abcdefgh123456............."
    }

ユーザーの認証トークンを生成する

ユーザーの認証トークンの生成は、2 段階のプロセスです。

承認コードを取得する

OpenID Connect (OIDC) と OAuth 2.0 のフローの多くでアクセス トークンを取得するための最初のステップは、ユーザーを Microsoft Identity プラットフォームの /authorize エンドポイントにリダイレクトすることです。 ユーザーは、Microsoft Entra ID によってサインインされ、アプリが要求するアクセス許可への同意を求められます。 認可コード許可フローでは、同意が得られた後、Microsoft Entra ID からアプリに認可コードが返され、Microsoft Identity プラットフォームの /token エンドポイントでそれをアクセス トークンと引き換えることができます。

  1. パラメーターを使用して要求形式を準備します。

    https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize?client_id=<client-id>
    &response_type=code
    &redirect_uri=<redirect-uri>
    &response_mode=query
    &scope=<client-id>%2f.default&state=12345&sso_reload=true
    
  2. パラメーターを置き換えた後は、任意のブラウザーの URL に要求を貼り付けて、Enter キーを押します。

  3. まだサインインしていない場合は、Azure portal にサインインします。

  4. "Hmmm...can't reach this page (このページに到達できません)" というエラー メッセージがブラウザに表示されます。 これは無視できます。

    localhost リダイレクトのスクリーンショット。

  5. 認証が成功すると、ブラウザーは http://localhost:8080/?code={authorization code}&state=... にリダイレクトされます。

  6. ブラウザーの URL バーから応答をコピーし、code=&state の間のテキストをフェッチします。

    http://localhost:8080/?code=0.BRoAv4j5cvGGr0...au78f&state=12345&session....
    
  7. この authorization-code を保持しておけば将来の使用に便利です。

    パラメーター 説明
    code アプリが要求した承認コード。 アプリは承認コードを使用して、対象リソースのアクセス トークンを要求します。 認可コードの有効期間は短時間です。 通常、約 10 分で期限が切れます。
    要求に state パラメーターが含まれている場合、同じ値が応答にも含まれることになります。 アプリは、要求と応答の state 値が同じであることを検証します。 このチェックは、クライアントに対する CSRF 攻撃を検出するのに役立ちます。
    session_state 現在のユーザー セッションを識別する一意の値。 この値は GUID ですが、検査なしで渡される不透明な値として扱う必要があります。

警告

Postman で URL を実行すると、トークンを取得するために追加の構成が必要なため、機能しません。

認証トークンと更新トークンを取得する

2 番目の手順は、認証トークンと更新トークンを取得することです。 アプリで、前のステップで受け取った認可コードを使って、POST 要求を /token エンドポイントに送信することによりアクセス トークンを要求します。

要求の形式

  curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=<client-id>
  &scope=<client-id>%2f.default openid profile offline_access
  &code=<authorization-code>
  &redirect_uri=<redirect-uri>
  &grant_type=authorization_code
  &client_secret=<client-secret>' 'https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token'

サンプル応答

{
  "token_type": "Bearer",
  "scope": "User.Read profile openid email",
  "expires_in": 4557,
  "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IkJuUXdJd0ZFc...",
  "refresh_token": "0.ARoAv4j5cvGGr0GRqy180BHbR8lB8cvIWGtHpawGN..."
}
パラメーター 説明
token_type トークンの種類の値を示します。 Microsoft Entra ID でサポートされる種類はベアラーのみです。
scope access_token が有効な Microsoft Graph アクセス許可のスペース区切りリスト。
expires_in アクセス トークンの有効期間 (秒)。
access_token 要求されたアクセス トークン。 アプリでこのトークンを使って、Microsoft Graph を呼び出すことができます。
refresh_token OAuth 2.0 更新トークン。 現在のアクセス トークンの有効期限が切れた後、アプリでこのトークンを使って、追加のアクセス トークンを取得できます。 更新トークンは有効期間が長いため、リソースへのアクセスを長時間にわたって保持するために使用できます。

ユーザー アクセス トークンを生成し、更新トークンを使用して新しいアクセス トークンを生成する方法の詳細については、「更新トークンを生成する」を参照してください。

OSDU® は The Open Group の商標です。

次のステップ

生成された更新トークンの使い方について詳しくは、以下を参照してください。