はじめに
こんにちは、Identity チームのすかんくです。
先日、Japan Azure Identity Support Blog にて、「Azure AD に連携している各種証明書、クライアント シークレットの有効期限の抽出方法」というタイトルのブログが発信されました。
内容としてはタイトルの通り、”Azure AD に連携している各種証明書、クライアント シークレットの有効期限の抽出方法” なのですが、手法が Microsoft Graph PowerShell を用いたものでしたので、本記事では補足編として Graph Exploler(Microsfot Graph API)の手順を確認していこうと思います。
コラム:なぜ API でやりたいのか
PowerAutomateやLogicApps、弊社で言えば Workato ような iPaaS にカテゴリされる製品を用いて「クライアントシークレットやSAML証明書の有効期限を定期確認したり、期限が近いものをSlackやTeams等に通知したい」といったユースケースに応じる場合、API を用いて情報を取得するのが一番エコに実装できるかと思います。
手順A(アプリの登録)
Azure Protal の [アプリの登録] に表示される一覧から、クライアント シークレットおよび証明書の有効期限を取得する場合は以下の手順をご確認ください。
①Graph Exploler にアクセスし、管理者ユーザーでサインインを行う
②要求タイプが “GET” になっていることを確認し、アドレスバーに以下を入力しますhttps://graph.microsoft.com/beta/applications?$select=id,appId,displayName,passwordCredentials,keyCredentials
③[Modify permission] タブに遷移し、[Status] 列 [Consent] になっている Permission の付与作業を行います
④[Run query] をクリックします
⑤200 応答が返ってきて、[Response preview] にアプリケーションの一覧が出力されていることを確認します
※ここでは zoom rooms アプリにpasswordCredentials(クライアント シークレット)が登録されていることが分かります(有効期限切れですねw)
手順は以上となります。
後は iPaaS 側で同等のリクエスト処理を実装してあげてください。
応答を parse したり、passwordCredentials や certification に値が入っていないものを除外する、といった処理も iPaaS であれば容易かと思いますので、それぞれの要件に沿った実装をしていただければと思います!
手順B(エンタープライズ アプリケーション)
Azure Protal の [エンタープライズ アプリケーション] に表示される一覧から、SAML 構成済みのアプリケーションから SAML 署名証明書の有効期限を取得したい場合は以下の手順をご確認ください。
①Graph Exploler にアクセスし、管理者ユーザーでサインインを行う
②要求タイプが “GET” になっていることを確認し、アドレスバーに以下を入力します https://graph.microsoft.com/beta/servicePrincipals?$filter=preferredSingleSignOnMode eq 'saml'&$select=id,appId,displayName,keyCredentials
※有効期限を確認するだけであれば、keyCredentials の代わりに passwordCredentials でも問題ありません(取得できる情報に違いはあります)
③[Modify permission] タブに遷移し、[Status] 列 [Consent] になっている Permission の付与作業を行います
※[手順A] 実施後であれば、基本全ての権限が付与された状態になっています
④[Run query] をクリックします <画像>
⑤200 応答が返ってきて、[Response preview] にアプリケーションの一覧が出力されていることを確認します
※ここでは LINE WORKS アプリのSAML トークン署名証明書の有効期限が確認できています
手順は以上となります。
こちらも [手順A] と同様に、iPaaS 側で要件に沿った後続処理を実装をしていただければと思います。
おわりに
いかがだったでしょうか?
クライアントシークレットや証明書の有効期限を管理することは、それらを用いて行われている業務を停止させないためにも不可欠な作業になるかと思います。
Japan Azure Identity Support Blog 様のブログで紹介されている Microsoft Graph PowerShell による手順も含め、各社それぞれのやり方でご対応いただければと思います!
ではまた!





