NO IMAGE

【徹底解説】Logic AppsのAPI接続リソースと資格情報の保存について

“API 接続” リソースの概要

まず前提として、Logic Apps には「組み込みコネクタ」と「マネージド コネクタ」が存在します。

Azure Logic Apps では、コネクタは”組み込み”と”マネージド”のいずれかです。

Azure Logic Apps の コネクタとは # 組み込みコネクタとマネージド コネクタの比較

基本的に組み込みコネクタは “Recurrence (繰り返し)” トリガーや “For each” アクションといった Logic Apps 内部で動作するコネクタとなっているのに対して、マネージド コネクタは “SharePoint” や “Teams” といった外部サービスに接続する際に用いられるコネクタになっています。

当然、マネージド コネクタでは外部に接続するために API が必要となりますが、当該 API でしたり、接続に必要な資格 (認証) 情報が格納されているのが “API 接続” リソースになります。

上記画像では「googledrive」という “API 接続” リソースがあるかと思いますが、こちらは下記 “ファイルの作成” アクションの作成により、自動生成されたリソースになります。

“API 接続” リソースを詳細に理解する

“API 接続” リソースの概要は先述しましたが、公式情報としては下記部分に該当します。

ワークフローでコネクタの操作を使用するには、多くのコネクタの場合、まずターゲット サービスまたはシステムへの“接続”を作成しておく必要があります。 ワークフロー デザイナー内からの接続を作成するには、アカウントの資格情報、および場合によっては他の接続情報を使用してご自分の ID を認証する必要があります。

Azure Logic Apps の コネクタとは # 接続の作成、構成、認証

また、Logic Apps の接続については、Azure が分かりやすい情報を用意してくれています。

  • 認証情報とメタデータ ストア: コネクタ メタデータ (スワッガー、接続、ACL など)、および接続に関連付けられた資格情報を格納するサービス。
  • コネクタ:
    • コネクタ webapps をホストするための App Service Environment。
    • すべての Swagger とポリシーをホストする Azure APIM (API マネージャー)。 Azure APIM は、コネクタ呼び出しとやり取りするすべての呼び出しのエントリ ポイントであることに加えて、キー、トークン、証明書、その他の資格情報を検証します。
  • ランタイム フロー:

接続アーキテクチャ # アーキテクチャ コンポーネント

上記の図でいう「Credential and metadata store」という箇所が “API 接続” リソースに該当します。

簡単に説明すると、Logic Apps から外部サービスへの接続の流れとして、まず Logic Apps が APIM に対して利用したいコネクタの情報を渡し、APIM が要求されたコネクタに関する資格情報 (“API 接続” リソース) があるかどうかを確認しに行き、資格情報があれば外部サービスと接続するという感じです。

ただし、より正確にいうなら、アーキテクチャ図を見る感じだと APIM が資格情報を使ってどうこうする訳ではなくて、あくまで metadata store から接続に使うトークン (connection token) が返される?ので、それを使って外部サービスと接続なりするって感じだと思ってます。

資格情報についての詳細

資格情報 (“API 接続” リソース) は Logic Apps でのみ使用されます。

サーバー アドレス、ユーザー名、パスワード、資格情報、シークレットなどの接続構成の詳細は暗号化され、セキュリティで保護された Azure 環境に格納されます。 この情報は、ロジック アプリ リソースでのみ使用することができ、リンクされたアクセス確認を使用して適用される接続リソースに対するアクセス許可を持つクライアントによってのみ使用できます。

Azure Logic Apps の コネクタとは # 接続のセキュリティと暗号化

OAuth 以外の認証では、上記のようにユーザー名やパスワードなどが格納されます。

OAuth の場合は最初だけサインインを行うものの、サインインの資格情報自体は metadata store に保存されずに、アクセス トークンと更新トークンが格納されます。

また、これは私の理解が合っていればですが、OAuth ではトークンの期限はなく無制限、それ以外の認証方法を採用するサービスだとトークンの利用期間に制限が設けられていることもあるようです。

Office 365、Salesforce、GitHub など、Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth) を使用する接続では、サインインが必要ですが、Azure Logic Apps ではアクセス トークンと更新トークンだけがシークレットとして格納され、サインイン資格情報は格納されません。

サービスまたはシステムが許可する限り、確立された接続から、対象のサービスまたはシステムにアクセスできます。 Office 365 や Dynamics など、Microsoft Entra ID OAuth 接続を使用するサービスについては、アクセス トークンは Azure Logic Apps によって無制限に更新されます。 その他のサービスでは、Logic Apps が更新なしでトークンを使用できる期間が制限されることがあります。 一部のアクション (パスワードの変更など) では、すべてのアクセス トークンが無効になります。

Azure Logic Apps の コネクタとは # 接続のセキュリティと暗号化

OAuth (または Open Authorization) とは、アプリケーションがリソースへのアクセスを承認できるよ…

一応、こちらの有効期限については下記の公式情報が該当するかな?って思ってます。

非永続的なセッション トークンの最大非アクティブ時間は 24 時間です。それに対し、永続的なセッション トークンの最大非アクティブ時間は 90 日です。 有効期間内に SSO セッション トークンを使用した時点で、有効期間はさらに 24 時間または 90 日間延長されます。

Microsoft ID プラットフォームでの構成可能なトークンの有効期間 (プレビュー) # 更新トークンとセッション トークンの有効期間ポリシーのプロパティ

どうやら 90 日間でトークンが失効するらしいので、その前に更新しましょう。
もしもトークンの有効期限を超過してしまったら、以前執筆した下記記事を参考にしてください。

関連記事

コネクタの接続 (有効期限) が切れるという内容 従量課金制、Standard 問わず Logic Apps ではコネクタの再認証が必要な場合があります。原因としては複数あり、例えば Logic Apps ワークフローを 90 日[…]

IMG
NO IMAGE
Follow Me
>「IT」で繋がるコミュニティ

「IT」で繋がるコミュニティ

IT の普及でコミュニケーションは容易になりましたが、技術的な質問には壁があると私は考えています。本コミュニティは、プログラミングやインフラを問わず、幅広い分野の専門家が互いに助け合う場です。実務未経験含めてどなたでも参加可能です。

CTR IMG